diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3046d7e..676b8ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,10 +9,10 @@ name: CI on: push: - branches: [master] + branches: [master, output-error-work] tags: ["v*"] pull_request: - branches: [master] + branches: [master, output-error-work] permissions: contents: read @@ -31,7 +31,7 @@ jobs: - name: Setup Node uses: actions/setup-node@v4 with: - node-version: "20" + node-version: "22.13" cache: "npm" - name: Install dependencies diff --git a/.guardrails/prevention-rules/pattern-rules.json b/.guardrails/prevention-rules/pattern-rules.json index d9c5686..e34c094 100755 --- a/.guardrails/prevention-rules/pattern-rules.json +++ b/.guardrails/prevention-rules/pattern-rules.json @@ -462,7 +462,7 @@ "rule_id": "PREVENT-PI-004", "name": "Network calls in extension (must stay local)", "enabled": true, - "pattern": "(fetch\\(|https?://|new (WebSocket|net\\.)|XMLHttpRequest|child_process)", + "pattern": "(fetch\\(|https?://|new (WebSocket|net\\.)|XMLHttpRequest|child_process|https?\\.request|http\\.get|net\\.connect|undici|new\\s+Agent\\(|from\\s+[\"']node:https?[\"']|from\\s+[\"']https?[\"'])", "forbidden_context": null, "message": "pi-mega-compact must run fully local — no remote MCP server or network calls at runtime.", "severity": "critical", diff --git a/docs/BRANCH_GAP_ANALYSIS.md b/docs/BRANCH_GAP_ANALYSIS.md new file mode 100644 index 0000000..30c8bab --- /dev/null +++ b/docs/BRANCH_GAP_ANALYSIS.md @@ -0,0 +1,129 @@ +# Remote Branch Gap Analysis — 2026-07-29 + +**Base:** `origin/master` @ v0.11.0 (`f79d7ca`, S49–S52 per-turn memory platform shipped) +**Remote analyzed:** `origin` = github.com/TheArchitectit/pi-mega-compact +**Companion spec:** [specs/s53-prompt-cache-memory-program.md](specs/s53-prompt-cache-memory-program.md) + +--- + +## 1. TL;DR + +| Branch | Ahead | Behind | Content | Verdict | +| -------- | ------ | -------- | --------- | --------- | +| `feat/memory-system-enhancements` | 0 | 0 | **Nothing** — pointer at master tip | Empty placeholder; fill with S53B work or delete | +| `feature/promptcache-stats` | 1 | 0 | 3 docs, 887 lines (findings / gap analysis / plan v2) | Cherry-pick docs to master; implement via S53 program (plan v2 has 4 blocking issues, §3.2) | +| `s49-turn-db-foundation` | 2 | 29 | Prettier pass + map/CLAUDE.md updates | Superseded by the v0.11.0 reconcile merge; cherry-pick `25cd374` at most, then close | +| `worktree-benchmark-suite` | 1 | 148 | Synthetic TS benchmark suite (1,380 LOC) | Superseded by `worktree-real-repo-bench`; do not merge | +| `worktree-real-repo-bench` | 2 | 148 | Real-repo head-to-head bench vs pi-vcc + fair-comparison protocol | Valuable; merge after rebase; rerun one repo before quoting results | + +**Net unshipped code across all five branches: ~750 LOC of benchmark tooling and zero feature code.** The prompt-cache branch is documentation only. The memory-system-enhancements branch has no commits at all. + +**The empty Cache tab (user-reported) is fully explained by `feature/promptcache-stats`'s findings doc** and verified against master in §3.2: provider cache data is captured but never surfaced; the tab reads the wrong API. + +--- + +## 2. Inventory + +| Branch | Branch-only commits | Last commit | Author | Merge-base | +| -------- | -------------------- | ------------ | -------- | ------------ | +| `feat/memory-system-enhancements` | — | `f79d7ca` (= master tip) 2026-07-29 | TheArchitectit | master tip | +| `feature/promptcache-stats` | `b9a9519` | 2026-07-29 20:48 | TheArchitectit | master tip | +| `s49-turn-db-foundation` | `25cd374`, `a13676b` | 2026-07-29 14:49 | TheArchitectit | pre-v0.11.0 reconcile | +| `worktree-benchmark-suite` | `437f105` | 2026-07-23 20:38 | Claude | `af03d65` (v0.8.15 era) | +| `worktree-real-repo-bench` | `67351fc`, `0ebf58d` | 2026-07-23 23:13 | Claude | `af03d65` (v0.8.15 era) | + +The two `worktree-*` branches **diverged from each other** (same v0.8.15-era base; one adds a TS suite, the other adds an `.mjs` real-repo suite — neither contains the other's files). Merging both would create a pointless add/delete history. + +--- + +## 3. Per-Branch Findings + +### 3.1 `feat/memory-system-enhancements` — EMPTY + +- `git log master..branch` → ∅. The branch is a tag on the master tip, pushed ~1h before this analysis. +- **Gap:** whatever "memory system enhancements" were intended never left the working tree. There is nothing to review. +- **Action:** treat as a task slot, not a work product. The S53B sub-sprint in the companion spec (memory-aware cache stability + memory effectiveness surfacing) is scoped to land **on this branch**. Otherwise delete it — an empty feature branch lies to the branch list. + +### 3.2 `feature/promptcache-stats` — docs only, high value, 4 blocking issues + +One commit (`b9a9519`), three docs: + +| Doc | Lines | Content | +| --- | ------ | --------- | +| `docs/PROMPTCACHE_FINDINGS.md` | 56 | Root-cause of the empty Cache tab: capture works (43 `cache_hit_pct` samples, 60–98% hits in `perf_samples`), but `CacheTab.tsx` reads `/api/snapshot` (dedup stats), and `/api/perf`'s 30-min rolling window hides the data — latest sample was 68 min old | +| `docs/PROMPTCACHE_FULL_GAP_ANALYSIS.md` | 344 | Competitive matrix (Claude Code, VS Code Cache Explorer, Aider, Helicone, LangSmith, Portkey, LiteLLM), P0–P3 gap list, phased plan, cost math | +| `docs/PROMPTCACHE_PLAN_V2.md` | 487 | "Vertical cache striping" draft: message separation + vector-aware stripes, schemas, prompt builders, 4 implementation phases | + +**Verified against master — every claim in FINDINGS checks out:** + +- `extensions/mega-events/perf-handler.ts:70-76` captures `{input, cacheRead, cacheWrite}` per turn as `cache_hit_pct` samples. ✔ +- `extensions/dashboard-client/src/tabs/CacheTab.tsx:17-28` fetches only `/api/snapshot` → dedup/compaction stats → zeros when no compaction has fired (threshold 50%). ✔ +- `/api/perf` (`routes-game.ts:202-309`) is rolling-window only (default 30 min, clamped [1, 1440]) and returns `avg/latest/n` — **no token totals**. ✔ +- TUI widget `cachePct = st.dedupHitRate * 100` (`mega-runtime/snapshot.ts:180`) — mislabeled source confirmed. ✔ +- React `PerfCards.tsx:67` / `PerfChart.tsx:93-97` and the legacy HTML dashboard (`dashboard-client-game.ts:193-205`) do render provider `cache_hit_pct`, but only inside the 30-min window on other tabs — nothing on the Cache tab itself. ✔ + +**Blocking issues in PLAN_V2 (the implementing spec must fix these):** + +1. **PREVENT-PI-002 violation (fatal for its Phase 2 as written).** The plan restructures the message array to append tool results "at the END" of the prompt. That separates each `tool_use`/`tool_result` pair from its conversation position — splitting a toolCall/toolResult pair is a scanner-enforced **error**, and every provider contract requires a `tool_result` to directly follow its `tool_use`. Needs a pair-atomic redesign (see S54 in the companion spec). +2. **Duplicates shipped tables.** Its new `conversation_thread` / `tool_results` tables re-implement what v0.11.0 already stores: `raw_transcript` (S27: role, tool_name, tool_call_id, content_hash, seq per message) and `turns` / `turn_recall` (S48–S52). New message tables are forbidden; read existing ones. +3. **PREVENT-002 violations in sample code.** Template-literal SQL bodies and mixed `?`/`$1` placeholder styles. Implementation must use existing store helpers with parameterized queries only (scanner-enforced). +4. **Stale paths.** `extensions/perf-handler.ts` → actual `extensions/mega-events/perf-handler.ts`; `routes-game.ts` is at 385 lines (400 soft limit) → new handlers go in a new `routes-cache.ts`; `api-contracts/endpoints.ts` is at 556 lines (over the 500 hard limit) → new contract types go in `api-contracts/cache.ts`. + +**Action:** cherry-pick `b9a9519` onto master as the analysis-of-record; implement via the S53 program spec, which supersedes PLAN_V2 Phases 2–4. + +### 3.3 `s49-turn-db-foundation` — superseded + +- 27 of its 29 historical commits reached master via the `s49-master-reconcile` merge (v0.10.x–v0.11.0). +- Remaining 2 branch-only commits: `a13676b` (prettier pass on turns store + tests — formatting-only vs master's identical logic) and `25cd374` (docs: S49A entries in HEADER_MAP / INDEX_MAP / CLAUDE.md). +- **Action:** check whether master's maps already carry the S49A entries (v0.10.1/v0.11.0 shipped doc refreshes — likely yes); if not, cherry-pick `25cd374` only. Close the branch. A wholesale merge would re-import 29 behind-commits of divergence for a prettier diff. + +### 3.4 `worktree-benchmark-suite` — superseded + +- `437f105` adds a synthetic TS suite under `scripts/benchmark/` (compactors/corpus/extract/facts/run/score, 1,380 LOC) + `docs/BENCHMARKS.md`. +- Branched at v0.8.15 — predates the S49–S52 platform, the PGlite index, and multiple engine changes it claims to measure. +- **Action:** do not merge. The real-repo suite (§3.5) is the better instrument; neither master nor the other branch contains these TS files. + +### 3.5 `worktree-real-repo-bench` — valuable, needs rebase + +- `67351fc` adds `scripts/benchmark/{bench-mega.mjs, bench-vcc.mjs, README.md}` — 1M-token real-repo head-to-head mega-compact vs pi-vcc across 3 repos (rad-gateway, game04, pi-ithacus-agent-framework): compact output 35–64k tokens vs pi-vcc 1–4k (mega keeps ~15–40× more context at the same input scale — that delta is the marketing number, but see rerun caveats). +- `0ebf58d` adds `docs/REAL_REPO_BENCHMARKS.md` + fair-comparison protocol + BENCHMARKS.md/INDEX_MAP entries. +- **Gaps:** (a) `.gitignore` +5 lines and `docs/INDEX_MAP.md` +1 will conflict trivially on rebase; (b) **doc/code drift inside the branch** — repro commands say `npx tsx scripts/benchmark/real-repo-benchmark.ts`, but the branch ships `bench-mega.mjs`/`bench-vcc.mjs` (no such `.ts` file); fix commands to `node scripts/benchmark/bench-mega.mjs` style during rebase; (c) results predate v0.11.0 — rerun at least one repo before quoting in release notes; (d) not wired into the regression gate (fine — manual benchmark by design). +- **Action:** rebase onto master, fix repro commands, rerun one repo, merge, close both `worktree-*` branches. + +### 3.6 Local (not remote): `fix-turnstore-divergence` — uncommitted, 16 files, +174/−18 + +In-flight on this machine: `DuplicateTurnError` typed error unified across `SqliteTurnStore` / `InMemoryTurnStore` (ISSUE #9 — SQLite stores threw raw `ERR_SQLITE_ERROR`, memory store silently appended duplicates), `disposePendingTimers` for the durable-trim recheck timer (RT2), l1-minhash / vectorStore tweaks, CI yaml touch. **Action:** finish, gate (build+test+lint+regression), land before branching S53 work. + +--- + +## 4. Feature Gaps the Branches Expose (why the Cache tab is empty) + +Cross-cutting state on master, independent of any branch: + +| Layer | Provider prompt cache | Internal dedup cache | Gap | +| ------ | ---------------------- | --------------------- | ----- | +| Capture | ✅ `cache_hit_pct` + `{input,cacheRead,cacheWrite}` per turn | ✅ hit counters | none | +| Storage | ✅ `perf_samples` (kind, value, meta JSON, ts) | ✅ turns/context tables | none | +| Query | ⚠️ rolling-window only (≤24 h), avg/latest/n — **no lifetime totals, no token sums** | ✅ | `readProviderCacheStats()` missing | +| API | ⚠️ `/api/perf` only | ✅ `/api/snapshot` | aggregate endpoint missing | +| Cache tab | ❌ not rendered at all | ✅ (wrong tab identity — shows dedup under the name "Cache") | tab shows the wrong system's data | +| TUI footer | ❌ shows dedup rate labeled as cache % | ✅ (source of the mislabel) | swap source | +| Cost | ❌ all "$ saved" from caching = — | ⚠️ freed-tokens heuristic only | no pricing constants, no 10×/1.25× cache math | +| Per-repo | ❌ `perf_samples` has no `repo_id` column | ✅ per-repo elsewhere | provider cache is machine-wide only | +| Memory effectiveness | n/a | ⚠️ stored, no recall hit-rate/stability surfaced | the empty `feat/memory-system-enhancements` remit | + +--- + +## 5. Landing Order (recommended) + +1. Land local `fix-turnstore-divergence` (gate: build + test + lint + regression). +2. Cherry-pick `b9a9519` (prompt-cache docs) onto master — docs only, zero risk. +3. Verify master's maps vs `25cd374`; cherry-pick if needed; close `s49-turn-db-foundation`. +4. Rebase + fix repro commands + merge `worktree-real-repo-bench`; close both `worktree-*` branches. +5. Execute the S53 program on two branch slots: S53A/S53C (visibility + TUI) on `feature/promptcache-stats`-follow-up, S53B (memory) on `feat/memory-system-enhancements` — finally giving that branch content. +6. Release only via `./scripts/deploy.sh ` (PREVENT-DIST-001). + +--- + +**Authored by:** analysis pass 2026-07-29 +**Status:** findings verified against `origin/master` @ `f79d7ca` diff --git a/docs/BRANCH_GAP_ANALYSIS_REFRESH.md b/docs/BRANCH_GAP_ANALYSIS_REFRESH.md new file mode 100644 index 0000000..186b338 --- /dev/null +++ b/docs/BRANCH_GAP_ANALYSIS_REFRESH.md @@ -0,0 +1,123 @@ +# Branch Gap Analysis — Refresh (2026-07-30) + +**Base:** `origin/master` @ v0.11.0 (`f79d7ca`) +**Refreshes:** `docs/BRANCH_GAP_ANALYSIS.md` (2026-07-29) — branches have moved since. +**Scope:** (1) re-verify branch state, (2) assess the in-flight **S53 prompt-cache/memory** +implementation on `fix-turnstore-divergence` against the upstream spec, (3) what remains +to actually fill the empty Cache tab + improve cache stability. + +> **Headline:** the empty Cache tab is **already fixed** on the local S53 branch +> (`CacheTab.tsx` now fetches `/api/provider-cache`). Sub-sprints A (query+API) and B +> (pricing+card) are **done**. C is partial; **D (the actual cache-stability hit-rate fix) +> is mostly NOT done** — that's where the cost savings live. + +--- + +## 1. Branch state vs the 07-29 analysis (what changed) + +| Branch | 07-29 | Now (07-30) | Delta | +|--------|-------|-------------|-------| +| `feat/memory-system-enhancements` | empty (0/0) | **still empty (0/0)** | unchanged — still a bare pointer at master tip | +| `feature/promptcache-stats` | 1 commit (`b9a9519`, docs only) | **2 commits** — added `f2c085f`: 642-line sprint spec v2 + 233-line S53 recall-tail-injection spec | upstream evolved the plan; still **docs only, no impl code** | +| `s49-turn-db-foundation` | 2/29 (superseded) | unchanged (2/29) | superseded by v0.11.0 reconcile | +| `worktree-benchmark-suite` | 1/148 (superseded) | unchanged (1/148) | superseded by real-repo bench | +| `worktree-real-repo-bench` | 2/148 (valuable, needs rebase) | unchanged (2/148) | still valuable; still needs rebase + rerun | + +**Net:** the only branch that moved is `feature/promptcache-stats`, and only with **more +planning docs** — zero feature code has shipped to any remote branch since the 07-29 +analysis. The actual S53 implementation exists **only on the local `fix-turnstore-divergence` +branch** (commits `b672d7a` + `4f8d003`). + +**The 07-29 analysis's verified claims STILL hold on master** (re-checked): +- `CacheTab.tsx` (master) fetches only `/api/snapshot` → dedup stats → zeros. ✔ +- `perf-handler.ts` captures `{input, cacheRead, cacheWrite}` per turn. ✔ +- `/api/perf` is rolling-window only, no lifetime token totals. ✔ +- `mega-runtime/snapshot.ts` `cachePct = dedupHitRate * 100` (mislabeled). ✔ + +So master still has the empty-Cache-tab bug; the local S53 branch fixes it. + +--- + +## 2. S53 implementation assessment (local branch vs the upstream spec) + +The upstream spec (`docs/specs/sprint-promptcache-stats.md` on `feature/promptcache-stats`) +defines 4 sub-sprints. Status on the local branch: + +### Sub-sprint A — Query + API layer ✅ DONE +- `/api/provider-cache[?minutes=N]` route exists (`extensions/dashboard-server/routes-cache.ts`). ✔ +- `readProviderCacheStats()` query exists (`src/store/sqlite/perf-samples.ts:191`). ✔ + (Spec named it `readProviderCacheLifetime`; impl named it `readProviderCacheStats` — + functionally equivalent, minor naming drift.) +- Wired into the server dispatch chain. ✔ + +### Sub-sprint B — Pricing + dashboard cards ✅ DONE +- `ProviderCacheCard.tsx` exists. ✔ +- `MemoryEffectivenessCard.tsx` exists (the S53B memory-side card). ✔ +- `src/pricing.ts` implements `$ saved` from `inputRatePerToken` (cacheRead×0.9 save, + cacheWrite×0.25 premium — matches spec D3). ✔ + - **Deviation:** the spec struck `pricing.ts` ("pricing comes from model_snapshots, no new + module"). A `pricing.ts` was built anyway. Functionally fine; just wider than spec. + +### Sub-sprint C — TUI snapshot fix ⚠️ PARTIAL +- `mega-runtime/snapshot.ts:189-192`: `cachePct` now **conditionally** reads the provider hit pct: + `(p.lastProviderCacheHitPct ?? st.dedupHitRate * 100)` — falls back to dedup rate when no + provider sample. ✔ (better than spec — spec said always-provider; impl degrades gracefully) +- **D5 (MEGA CACHE flare gate) ❌ NOT FIXED.** `widget.ts:79` and `:103` still gate the flare + on `cachePct >= 100`. After sub-sprint C, `cachePct` is the provider hit pct (bounded 0–100), + so the dedup flare (which legitimately exceeds 100%) is **silently dead**. Spec D5 says gate + on `wd.megaCacheFlare && wd.megaCacheFlarePct >= 100` instead. One-line fix, two sites. + +### Sub-sprint D — Cache-stability (the hit-rate fix) ❌ MOSTLY NOT DONE +This is the sub-sprint that actually raises the cache hit rate (and thus the cost savings). +Of the 3 verified bugs: +- **Bug #4 (`RECOMPACT_PCT_DELTA` 10→50) ❌ NOT FIXED.** `context-handler.ts:316` still hardcodes + `const RECOMPACT_PCT_DELTA = 10`. Every 10% window growth triggers a full prefix rebuild. + Spec: env-overridable (`MEGACOMPACT_RECOMPACT_PCT_DELTA`, default 50). +- **Bug #5 (debounce before replay) ✅ ALREADY CORRECT.** The replay check at + `context-handler.ts:312` sits *above* where a debounce would gate fresh compaction — the + ordering the spec wants. (Either the codebase already had it right, or an earlier fix landed.) +- **Bug #6 (skip paths revert to full transcript) ❌ NOT VERIFIED FIXED.** The `ran.skipped` + fallback path needs an audit against spec D7 ("fall back to replay when trimCache valid, + never to the full transcript"). + +### Also landed (beyond the spec): S53B memory +- `memoryStats()` + `/api/memory-status` endpoint + `embedder-cache.ts` (FIFO 256, `MEGACOMPACT_EMBED_CACHE`). + This is the work intended for the (still-empty) `feat/memory-system-enhancements` branch. + +--- + +## 3. What remains to fill the Cache tab + improve cache stability + +Ordered by impact (cost/visibility first): + +| # | Item | Where | Effort | Impact | +|---|------|-------|--------|--------| +| 1 | **Fix `RECOMPACT_PCT_DELTA` 10→50** (env-overridable) | `context-handler.ts:316` + `mega-config.ts` | S | **High** — the actual cache-stability fix; raises hit rate toward the 80% target | +| 2 | **Fix MEGA CACHE flare gate** (D5) | `widget.ts:79,103` → `megaCacheFlarePct` | XS | Medium — restores the dedup flare game-mode reward | +| 3 | **Audit skip-path fallback** (D7) | `context-handler.ts` `ran.skipped` branch | S | Medium — prevents full-transcript cache misses on skipped compactions | +| 4 | **Verify the Cache tab end-to-end** | manual: run extension, open dashboard, confirm provider card populates | S | confirms items A/B actually render live data | +| 5 | Land S53 on a branch off master + open PR | git | S | unblocks merge | + +**Out of scope (per spec, future sprints):** +- Recall injection relocation (systemPrompt → tail user-role message) — 2 cache misses per recall; needs its own sprint (the `s53-recall-tail-injection.md` spec on the remote branch is the planning doc). +- DB-mirror high-water mark (O(n²) hot path). +- PLAN_V2 Phases 2–4 (message separation / vector-aware striping). + +--- + +## 4. Recommended next actions + +1. **Land issue #9 + #10 + S53A/B/C-partial** as a PR off master (the local branch is green: + 902 tests, build, lint). The Cache tab will render real provider-cache data + $ savings. +2. **Implement S53 sub-sprint D** (item #1 above) as the immediate follow-up — it's the + highest-value remaining work (real cost reduction, ~S effort). +3. **Refresh + supersede** `docs/BRANCH_GAP_ANALYSIS.md` with this doc (or fold it in). +4. Cherry-pick the `feature/promptcache-stats` planning docs (`b9a9519`, `f2c085f`) onto + master as analysis-of-record — they're docs only, zero risk. +5. The `feat/memory-system-enhancements` branch is still empty; either land the S53B memory + work there or delete it (an empty feature branch misleads). + +--- + +**Authored:** 2026-07-30 · **Verified against:** `origin/master` @ `f79d7ca` + local +`fix-turnstore-divergence` @ `641199e` · **Status:** findings verified by reading current code diff --git a/docs/HEADER_MAP.md b/docs/HEADER_MAP.md index b2b07b5..f8a2ed4 100644 --- a/docs/HEADER_MAP.md +++ b/docs/HEADER_MAP.md @@ -888,3 +888,27 @@ | Component + state | 30 | 0 | | Conversation list | 90 | 0 | | TurnDetail (per-turn viz + recall) | 150 | 0 | + +## docs/BRANCH_GAP_ANALYSIS.md + +| Section | Line | Offset | +| --------- | ------ | -------- | +| TL;DR (branch verdict table) | 9 | 0 | +| Inventory | 25 | 0 | +| Per-Branch Findings (3.2 promptcache = empty-Cache-tab root cause) | 39 | 0 | +| Feature Gaps matrix (why the Cache tab is empty) | 99 | 0 | +| Landing Order | 117 | 0 | + +## docs/specs/s53-prompt-cache-memory-program.md + +| Section | Line | Offset | +| --------- | ------ | -------- | +| Problem Statement | 11 | 0 | +| Program map (S53A/B/C, S54, S55) | 19 | 0 | +| S53A Provider Cache Visibility | 31 | 0 | +| S53C TUI + Cost Accounting | 85 | 0 | +| S53B Memory Enhancements | 95 | 0 | +| S54 Prefix-Stability Telemetry | 106 | 0 | +| S55 Cache-Stable Prompt Layout (contingent) | 114 | 0 | +| Open Questions | 136 | 0 | +| Gates & Flags | 143 | 0 | diff --git a/docs/INDEX_MAP.md b/docs/INDEX_MAP.md index 393dd5a..c85e728 100644 --- a/docs/INDEX_MAP.md +++ b/docs/INDEX_MAP.md @@ -76,6 +76,8 @@ | **S51 spec (auto-categorizing wiki — k-means topic clustering, TF-IDF labels, extractive wiki pages; replaces S47)** | [specs/s51-auto-categorizing-wiki.md](specs/s51-auto-categorizing-wiki.md) | docs/specs/ | | **S52 spec (dashboard management + rewind — capability-gated turns tab, wiki polish, fork button, rewind-intent queue)** | [specs/s52-dashboard-management-rewind.md](specs/s52-dashboard-management-rewind.md) | docs/specs/ | | **S39 spec (real-time multi-pi stacked memory graph — shared `session_heartbeats` + `token_samples` tables in `~/.mega-compact-index`, runtime snapshot hook, `/api/sessions` + `/api/sessions/timeseries`, recharts Sessions tab; PREVENT-PI-004 safe)** | [specs/s39-multi-pi-memory-graph.md](specs/s39-multi-pi-memory-graph.md) | docs/specs/ | +| **S53–S55 program (prompt cache + memory — provider cache visibility S53A, memory enhancements S53B, TUI+cost S53C, prefix-stability telemetry S54, pair-atomic prompt layout S55; supersedes PROMPTCACHE_PLAN_V2 Phases 2–4)** | [specs/s53-prompt-cache-memory-program.md](specs/s53-prompt-cache-memory-program.md) | docs/specs/ | +| **remote-branch gap analysis 2026-07-29 (5 origin branches inventoried; promptcache docs verified; empty memory branch; worktree-bench merge guidance; empty Cache tab root-cause)** | [BRANCH_GAP_ANALYSIS.md](BRANCH_GAP_ANALYSIS.md) | docs/ | | **game-mode design spec v0.2 (gamified stats: per-metric leaderboards, MEGA CACHE, 6 themes, 3-toggle panel, minimalist TUI)** | [game-mode-design.md](game-mode-design.md) | docs/ | | **game-mode QA review + sprint plan S30–S35 (guardrail adherence, 12 QA findings, 52 pre-defined TODOs; S31 ✅ DONE)** | [specs/game-mode-sprint-plan.md](specs/game-mode-sprint-plan.md) | docs/specs/ | | **S41 spec (db mirror: byte-stable prompt cache via raw transcript mirror + deterministic epoch nonce)** | [specs/sprint-27-db-mirror-cache-stability.md](specs/sprint-27-db-mirror-cache-stability.md) | docs/ | diff --git a/docs/specs/s53-prompt-cache-memory-program.md b/docs/specs/s53-prompt-cache-memory-program.md new file mode 100644 index 0000000..3435a72 --- /dev/null +++ b/docs/specs/s53-prompt-cache-memory-program.md @@ -0,0 +1,157 @@ +# Prompt Cache + Memory Program — Multi-Sprint Spec (S53–S55) + +**Date:** 2026-07-29 +**Owner:** pi-mega-compact +**Status:** IN PROGRESS — S53A (provider cache visibility: `readProviderCacheStats`, `GET /api/provider-cache`, Cache tab Provider Prompt Cache card) and S53C-core (TUI `cachePct` source swap behind `MEGACOMPACT_TUI_CACHE_SOURCE`, `src/pricing.ts`) implemented 2026-07-29, gate green (872 tests). Supersedes `docs/PROMPTCACHE_PLAN_V2.md` Phases 2–4 (see [BRANCH_GAP_ANALYSIS](../BRANCH_GAP_ANALYSIS.md) §3.2 for the four blocking issues this spec corrects) +**Branch slots:** S53A/S53C on a `feature/promptcache-stats` follow-up; S53B on `feat/memory-system-enhancements` (currently an empty placeholder) +**Reuse target:** all aggregation/scoring logic lives in `src/` (pi-agnostic, sync, parameterized SQL); `extensions/` holds wiring only. + +--- + +## 1. Problem Statement + +1. **The dashboard Cache tab is empty in normal operation.** It renders only mega-compact's internal dedup cache (`/api/snapshot`), which reads zeros until compaction fires (threshold ≈ tier % of window). The provider prompt cache — the user's single biggest cost lever (cache reads ≈ 10% of input price; observed 60–98% hit rates in `perf_samples`) — is captured but displayed nowhere on that tab, and everywhere else only inside a ≤24 h rolling window. +2. **The TUI footer cache % is mislabeled**: `mega-runtime/snapshot.ts:180` sets `cachePct = st.dedupHitRate * 100` (internal dedup rate), not the provider cache hit rate. +3. **No lifetime/token aggregates**: `/api/perf` returns `{avg, latest, n}` over a rolling window. There is no total `cacheRead` / `cacheWrite` / `input`, no per-model breakdown, no "$ saved by caching". +4. **Memory effectiveness is invisible** and `feat/memory-system-enhancements` shipped **zero commits**: memory is stored and recalled, but there is no recall hit-rate, stability, or promotion signal surfaced anywhere — so memory cannot feed prompt-cache stability. +5. **No prefix-stability telemetry**: we cannot say *why* hit rate is 56% instead of 85%+ (tool-result insertion, epoch re-compaction, recall injection position) because no boundary-prefix hash is recorded. + +## 2. Why a program (not one sprint) + +| Sprint | Capability | Depends on | Risk profile | +| ------ | ---------- | ---------- | ------------- | +| **S53A — Provider cache visibility** | Lifetime + per-model provider cache aggregates → API → Cache tab | none | read-only queries + UI; zero runtime behavior change | +| **S53B — Memory enhancements** (fills the empty branch) | Memory recall hit-rate/stability surfaced; embedding reuse for memory ops | S53A (shares aggregate-query pattern) | read-only + flags | +| **S53C — TUI + cost accounting** | `cachePct` source swap, per-turn TUI cache line, pricing module, "$ saved" | S53A | widget-only; pricing is pure math | +| **S54 — Prefix-stability telemetry** | Boundary-prefix hashing over `raw_transcript`; break-cause classification; dashboard readout | none (parallel with S53) | measurement only; no prompt surgery | +| **S55 — Cache-stable prompt layout** *(contingent on S54 data)* | Pair-atomic segment layout inside the LIVE trimmed view | S54 metrics proving the lever | touches the `context` event return — highest scrutiny | + +Ship order: **S53A → S53C → S53B → S54**. S55 starts only if S54 shows prefix breaks from volatile insertion dominate (§7.2). + +## 3. S53A — Provider Cache Visibility (P0) + +### 3.1 Data path (all local; PREVENT-PI-004 unaffected) + +``` +turn_end → perf-handler (already captures cache_hit_pct + meta{input,cacheRead,cacheWrite}) + → perf_samples(kind,value,meta,ts) [exists] + → readProviderCacheStats() NEW in src/store/sqlite/perf-samples.ts + → GET /api/provider-cache NEW in extensions/dashboard-server/routes-cache.ts (new file) + → api-client fetchProviderCacheStats() NEW + → CacheTab "Provider Prompt Cache" card + CacheStatusPerModel columns + SavingsByModel columns +``` + +### 3.2 `readProviderCacheStats(stateDir?, sinceTs?)` — `src/store/sqlite/perf-samples.ts` (125 lines today; grows ~60) + +Scan `kind='cache_hit_pct'` rows (no time window by default); `meta` is JSON — **parse with null check** (PREVENT-001). Return: + +```ts +export interface ProviderCacheStats { + readonly sampleCount: number; + readonly totalInput: number; // Σ meta.input + readonly totalCacheRead: number; // Σ meta.cacheRead + readonly totalCacheWrite: number; // Σ meta.cacheWrite + readonly avgHitPct: number; // Σ value / n (value already 0–100) + readonly latestHitPct: number; // value of max(ts) row + readonly oldestTs: number | null; + readonly newestTs: number | null; +} +``` + +Per-model variant `readProviderCacheStatsByModel(stateDir?)`: joins nothing — model is **not** in `perf_samples` today. S53A adds an optional `model` column? **No** — schema change deferred (§8, Q3). S53A groups by nothing; per-model arrives with S53C pricing by re-deriving model from the turn rows the dashboard already has. + +Query stays parameterized; no string concatenation (PREVENT-002). FTS/FTS5 not involved. Linear scan is fine — same scale argument as vector store. + +### 3.3 `GET /api/provider-cache` — new `extensions/dashboard-server/routes-cache.ts` + +- `routes-game.ts` is at 385 lines (400 soft cap) → new file, registered beside it, same `POST→405` / loopback posture as `handlePerf`. Query params: `minutes` (optional; omit = all-time). +- Contract: add `api-contracts/cache.ts` (`ProviderCacheStatsResponse` + `EndpointDef` entry) — `endpoints.ts` is at 556 lines (over hard cap), do not grow it. Re-export from the `api-contracts/index.ts` barrel; extend `api-contracts.test.ts` field assertions. +- Response = `ProviderCacheStats` + `windowMinutes: null | number`. + +### 3.4 Client + +- `api/client.ts`: `fetchProviderCacheStats(minutes?)`. +- `tabs/CacheTab.tsx`: keep dedup card, add **Provider Prompt Cache** card on top: Avg hit % / Latest hit % / Tokens read from cache / Tokens written / Total input / Window label ("all-time" or "last N min"). Loading/empty states mirror existing `tab-stub` pattern. +- `CacheHitsCard.tsx`: unchanged (dedup). New `ProviderCacheCard.tsx`. +- `SavingsByModelTable.tsx` + `CacheStatusPerModel.tsx`: add Cache Read / Cache Write / Hit % columns fed from the same fetch (S53C adds the $ column). + +### 3.5 Acceptance + +- `readProviderCacheStats` unit tests: empty table → zeros; meta null/garbage → skipped rows; window filter; totals math. +- Contract test: response shape asserted; 405 on POST. +- Client smoke: CacheTab renders provider card with fixture data; dedup card unchanged (byte-identical props path). +- Gate: build + test + lint + regression_check green; guardrails-scan green. + +## 4. S53C — TUI + Cost Accounting + +1. **Source swap** — `mega-runtime/snapshot.ts:180`: `cachePct` reads the latest `cache_hit_pct` sample (last-value cache refreshed by perf-handler cadence, **not** a new DB read in the hot path), falling back to `dedupHitRate` when no provider samples exist. Flag `MEGACOMPACT_TUI_CACHE_SOURCE=dedup|provider` (default `provider`; env-OFF restores old behavior byte-identically per feature-flag rule). +2. **Per-turn TUI line** (game/modeline): `↓ 41.0K cache · 96.0% · +939 new` from the same last-value cache. +3. **Pricing** — new `src/pricing.ts` (~80 lines, pure): per-model `{input, output, cacheReadMult: 0.1, cacheWriteMult: 1.25}` constants for the Anthropic + OpenRouter families pi actually serves; `MEGACOMPACT_PRICING_JSON` (path to JSON) overrides. `estimateSavings(stats, model)`: + `withoutCache = totalInput * rate`; + `withCache = (totalInput − totalCacheRead) * rate + totalCacheRead * rate * 0.1 + totalCacheWrite * rate * 1.25`; + `saved = withoutCache − withCache` (floor 0). Unknown model → `null` and UI keeps "—" (no invented numbers). +4. Dashboard "$ Saved" columns consume §3 + §4.3; widget game `megaCacheFlare` semantics unchanged (still dedup-driven) — documented in widget header to avoid re-confusing the two caches. + +## 5. S53B — Memory Enhancements (fills `feat/memory-system-enhancements`) + +Scope kept deliberately tight; reuses S44's latent design where possible. + +1. **Memory effectiveness aggregates** — `src/memoryStats.ts` (new, ~100 lines): recall events with source=`memory` from `turn_recall` (S48) → per-repo **memory recall count, distinct memories recalled, avg score, injected-vs-ignored ratio** (join `markInjectedGlobal`). Served at `GET /api/memory-status`; extend `MemoryStatusCard` to render them. +2. **Memory stability score**(feeds S54/S55 and wiki ranking): per memory `stability = 0.5*recallFrequency(30d) + 0.3*recency + 0.2*avgScore`; persisted as a **derived** view (query-time, no new table) behind `MEGACOMPACT_MEMORY_STABILITY=1` default ON. +3. **Embedding reuse for memory ops** — in-process `Map` LRU (256 entries) in `src/embedder.ts` wrapper for TrigramEmbedder (deterministic → cache is exact); cuts re-embedding cost on consolidate/review cycles. No PGlite dependency; pure `src/`. +4. **Wiki/Topics tab** surfaces stability column (S51 UI exists). + +Non-goals for S53B: memory editing UI, cross-repo memory promotion policy, LLM-authored wiki text. + +## 6. S54 — Prefix-Stability Telemetry (measurement only) + +Goal: decide S55 with data, not vibes. + +1. **Boundary-prefix hash** — in the `context` event (handler already computes `view`): hash the ordered `content_hash` chain (S27 `raw_transcript` already stores per-message `content_hash` + `seq`) at breakpoints `[systemPrepend, summary, stable-prefix end]`; on change vs previous sample, classify: `epoch-change` | `tool-insertion` | `recall-injection` | `other`. Record `perf_samples(kind='cache_prefix_break', value=breakPositionTokens, meta={cause, epochId})`. Flag `MEGACOMPACT_PREFIX_TELEMETRY=1` default ON; OFF removes >handful of branch instructions — OFF path byte-identical. +2. **Readout** — extend `/api/provider-cache` with `prefixBreaks: {cause, count}[]` (same routes-cache.ts file). +3. **Acceptance** — unit: synthetic hash-chain fixtures per cause; handler-level: break logged exactly once per boundary change; zero-log steady state. + +## 7. S55 — Cache-Stable Prompt Layout (contingent) + +### 7.1 Hard constraints (non-negotiable, scanner-enforced) + +- **PREVENT-PI-002**: `tool_use`/`tool_result` pairs are atomic segments; layout code may only reorder **whole segments**, never split a pair, never move a `tool_result` away from its `tool_use`. +- **PREVENT-PI-001**: anchor floor (recent N messages) is never reordered/dropped. +- **PREVENT-PI-003**: summary stays where S16/v0.8.6 trimCache puts it; system-prompt prepend untouched. +- Only the **LIVE trimmed view** returned from the `context` event (`context-handler.ts:487` path and `:255` replay path) may be re-laid-out; the durable transcript pi owns is never rewritten. +- Flat-array fallback on any scoring failure (PLAN_V2 open Q1 — adopted). + +### 7.2 Entry criteria (from S54) + +Start only if `cache_prefix_break` attributes ≥40% of breaks to `tool-insertion`/`recall-injection` over a 7-day sample. If `epoch-change` dominates, fix epoch churn instead (S27 sentinel stability), do not build S55. + +### 7.3 Design (replaces PLAN_V2 Phase 2/3) + +- **No new message tables** (gap-doc issue #2). Sources: `raw_transcript` (segments + hashes + tool linkage), `turns`/`turn_recall` (per-turn), `context_chunks` (recall injections). +- **Segment classifier** `src/prompt/segments.ts`: walk view → `[stable* , anchor]` segment list; stable = every complete segment older than anchor floor whose `content_hash` chain was present in the previous sample (S54 gives us this diff cheaply). +- **Deterministic ordering** for recall injections: sort injected checkpoint/memory blocks by `(source, checkpointId)` and pin them to one fixed slot before the thread tail — removes recall-position churn, which needs no pair-unsafe moves at all and ships first as S55a. +- **Stability score** (from PLAN_V2, corrected): computed over **segments**, not chunks; reuses S53B memory stability for memory segments; pgvector HNSW used only for *topic-shift detection* (existing Slice-2 index), not for hot-path ordering. +- `cache_stripes` table is **dropped**; assignments derive from telemetry + hashes at view-build time (stateless, no migration). + +## 8. Open Questions + +1. `perf_samples` has no `repo_id`/`session_id` column → provider cache aggregates are machine-wide. Add nullable `repo_id` with backfill, or keep machine-wide for S53 and per-repo later? **Proposed:** machine-wide in S53; column add is a one-line migrations follow-up if the per-repo ask materializes. +2. Is 30-min `/api/perf` window plus all-time `/api/provider-cache` the right split, or should `/api/perf` grow `minutes=all`? **Proposed:** separate endpoint (window semantics stay honest; contract grows additively). +3. Pricing source-of-truth: hardcoded table vs pi's own model registry (pi exposes pricing for the active model — `CacheStatusPerModel` already receives rates). **Proposed:** prefer pi-provided rates at runtime; `src/pricing.ts` constants only as fallback table for historical models. +4. Cache-write cost: observed `cacheWrite=0` across 43 samples — confirm pi's adapters actually request caching ( breakpoints live in pi's provider layer, not the extension). S53C surfaces it; enabling writes is out of extension reach (pi-side). + +## 9. Gates & Flags + +- Every sub-sprint exit: `npm run build` + `npm test` + `npm run lint` + `python3 scripts/regression_check.py --all` + guardrails-scan + semantic-scan green (standing gate). +- Flags: `MEGACOMPACT_TUI_CACHE_SOURCE` (S53C), `MEGACOMPACT_MEMORY_STABILITY` (S53B), `MEGACOMPACT_PREFIX_TELEMETRY` (S54) — default ON, env OFF, OFF ≡ byte-identical pre-sprint behavior. +- Structured logging only (`src/log.ts`); no `console.log` in `src/`; no `any` (PREVENT-011); all SQL parameterized (PREVENT-002); all `JSON.parse` null-checked (PREVENT-001). +- `extensions/dashboard-server/routes-*` additions carry the standard `// guardrails-allow PREVENT-PI-004: ` loopback annotations. + +## 10. References + +- [docs/PROMPTCACHE_FINDINGS.md](../PROMPTCACHE_FINDINGS.md), [PROMPTCACHE_FULL_GAP_ANALYSIS.md](../PROMPTCACHE_FULL_GAP_ANALYSIS.md) (branch `feature/promptcache-stats`, commit `b9a9519`) +- [docs/PROMPTCACHE_PLAN_V2.md](../PROMPTCACHE_PLAN_V2.md) — superseded in part; §3.1 of BRANCH_GAP_ANALYSIS lists corrections +- [docs/BRANCH_GAP_ANALYSIS.md](../BRANCH_GAP_ANALYSIS.md) +- [specs/s44-three-tier-latency-routing.md](s44-three-tier-latency-routing.md) (L0 cache + embedding-cache design reused by S53B) +- [specs/s49-program-per-turn-memory-platform.md](s49-program-per-turn-memory-platform.md) (turn_recall provenance used by S53B/S54) +- [specs/sprint-27-db-mirror-cache-stability.md](sprint-27-db-mirror-cache-stability.md) (raw_transcript content_hash + epoch sentinel) diff --git a/extensions/dashboard-client/dist/assets/AchievementTiles-DZp_xQOW.js b/extensions/dashboard-client/dist/assets/AchievementTiles-CPBeKs-w.js similarity index 90% rename from extensions/dashboard-client/dist/assets/AchievementTiles-DZp_xQOW.js rename to extensions/dashboard-client/dist/assets/AchievementTiles-CPBeKs-w.js index c3d8941..18b1149 100644 --- a/extensions/dashboard-client/dist/assets/AchievementTiles-DZp_xQOW.js +++ b/extensions/dashboard-client/dist/assets/AchievementTiles-CPBeKs-w.js @@ -1,2 +1,2 @@ -import{r as o,j as n}from"./index-CqLN7STl.js";function x(s){try{return new Date(s*1e3).toLocaleString()}catch{return"—"}}function f({achievements:s}){const i=o.useRef(0),[r,a]=o.useState(null),l=s.reduce((e,t)=>Math.max(e,t.unlocked_at??0),0),c=i.current;o.useEffect(()=>{l>i.current&&(i.current=l)},[l]),o.useEffect(()=>{if(c>0&&l>c){const e=s.filter(t=>t.unlocked_at!=null&&(t.unlocked_at??0)>c);if(e.length>0){const t=e.map(d=>`${d.icon??""} ${d.title}`.trim()).join(", ")+" unlocked!";a(t);const h=setTimeout(()=>a(null),4e3);return()=>clearTimeout(h)}}},[s,l,c]);const u=s.filter(e=>!(e.hidden===1&&e.unlocked_at==null));return n.jsxs("div",{className:"ach-section",children:[r!=null&&n.jsx("div",{className:"ach-toast show",children:r}),n.jsxs("div",{className:"ach-tiles",children:[u.length===0&&n.jsx("span",{className:"repo-none",children:"no achievements yet"}),u.map(e=>{if(e.unlocked_at!=null){const t=c>0&&(e.unlocked_at??0)>c;return n.jsxs("div",{className:`ach-tile unlocked${t?" just-unlocked":""}`,children:[e.icon??""," ",e.title,n.jsxs("span",{className:"ach-detail",children:["unlocked ",x(e.unlocked_at)]})]},e.id)}return n.jsxs("div",{className:"ach-tile locked",children:["??? ",e.title]},e.id)})]})]})}export{f as A}; -//# sourceMappingURL=AchievementTiles-DZp_xQOW.js.map +import{r as o,j as n}from"./index-CqpO7WrQ.js";function x(s){try{return new Date(s*1e3).toLocaleString()}catch{return"—"}}function f({achievements:s}){const i=o.useRef(0),[r,a]=o.useState(null),l=s.reduce((e,t)=>Math.max(e,t.unlocked_at??0),0),c=i.current;o.useEffect(()=>{l>i.current&&(i.current=l)},[l]),o.useEffect(()=>{if(c>0&&l>c){const e=s.filter(t=>t.unlocked_at!=null&&(t.unlocked_at??0)>c);if(e.length>0){const t=e.map(d=>`${d.icon??""} ${d.title}`.trim()).join(", ")+" unlocked!";a(t);const h=setTimeout(()=>a(null),4e3);return()=>clearTimeout(h)}}},[s,l,c]);const u=s.filter(e=>!(e.hidden===1&&e.unlocked_at==null));return n.jsxs("div",{className:"ach-section",children:[r!=null&&n.jsx("div",{className:"ach-toast show",children:r}),n.jsxs("div",{className:"ach-tiles",children:[u.length===0&&n.jsx("span",{className:"repo-none",children:"no achievements yet"}),u.map(e=>{if(e.unlocked_at!=null){const t=c>0&&(e.unlocked_at??0)>c;return n.jsxs("div",{className:`ach-tile unlocked${t?" just-unlocked":""}`,children:[e.icon??""," ",e.title,n.jsxs("span",{className:"ach-detail",children:["unlocked ",x(e.unlocked_at)]})]},e.id)}return n.jsxs("div",{className:"ach-tile locked",children:["??? ",e.title]},e.id)})]})]})}export{f as A}; +//# sourceMappingURL=AchievementTiles-CPBeKs-w.js.map diff --git a/extensions/dashboard-client/dist/assets/AchievementTiles-DZp_xQOW.js.map b/extensions/dashboard-client/dist/assets/AchievementTiles-CPBeKs-w.js.map similarity index 98% rename from extensions/dashboard-client/dist/assets/AchievementTiles-DZp_xQOW.js.map rename to extensions/dashboard-client/dist/assets/AchievementTiles-CPBeKs-w.js.map index 2b93082..7430884 100644 --- a/extensions/dashboard-client/dist/assets/AchievementTiles-DZp_xQOW.js.map +++ b/extensions/dashboard-client/dist/assets/AchievementTiles-CPBeKs-w.js.map @@ -1 +1 @@ -{"version":3,"file":"AchievementTiles-DZp_xQOW.js","sources":["../../src/components/AchievementTiles.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/AchievementTiles.tsx — shared achievement grid.\n *\n * Renders a grid of achievement tiles from fetchAchievements() data.\n * Tile states: unlocked (icon+title+date), visible-locked (??? teaser),\n * hidden+locked (not rendered). Just-unlocked tiles get a pulse animation.\n * Toast notification fires for newly-unlocked achievements.\n *\n * Used by both GameTab (sub-section) and AchievementsTab (standalone).\n */\n\nimport type React from \"react\";\nimport { useRef, useState, useEffect } from \"react\";\nimport type { AchievementRow } from \"@contracts\";\n\nexport interface AchievementTilesProps {\n\t/** Achievement rows from /api/achievements. */\n\tachievements: AchievementRow[];\n}\n\n/** Format unlock timestamp (seconds → locale string). */\nfunction fmtUnlockDate(ts: number): string {\n\ttry {\n\t\treturn new Date(ts * 1000).toLocaleString();\n\t} catch {\n\t\treturn \"\\u2014\";\n\t}\n}\n\nexport function AchievementTiles({\n\tachievements,\n}: AchievementTilesProps): React.ReactElement {\n\tconst lastMaxTsRef = useRef(0);\n\tconst [toastText, setToastText] = useState(null);\n\n\tconst maxTs = achievements.reduce(\n\t\t(mx, a) => Math.max(mx, a.unlocked_at ?? 0),\n\t\t0,\n\t);\n\tconst prevMaxTs = lastMaxTsRef.current;\n\n\t/* Update ref after render so next poll sees previous baseline. */\n\tuseEffect(() => {\n\t\tif (maxTs > lastMaxTsRef.current) {\n\t\t\tlastMaxTsRef.current = maxTs;\n\t\t}\n\t}, [maxTs]);\n\n\t/* Toast for newly-unlocked achievements. */\n\tuseEffect(() => {\n\t\tif (prevMaxTs > 0 && maxTs > prevMaxTs) {\n\t\t\tconst newly = achievements.filter(\n\t\t\t\t(a) => a.unlocked_at != null && (a.unlocked_at ?? 0) > prevMaxTs,\n\t\t\t);\n\t\t\tif (newly.length > 0) {\n\t\t\t\tconst text =\n\t\t\t\t\tnewly\n\t\t\t\t\t\t.map((a) => `${a.icon ?? \"\"} ${a.title}`.trim())\n\t\t\t\t\t\t.join(\", \") + \" unlocked!\";\n\t\t\t\tsetToastText(text);\n\t\t\t\tconst t = setTimeout(() => setToastText(null), 4000);\n\t\t\t\treturn (): void => clearTimeout(t);\n\t\t\t}\n\t\t}\n\t}, [achievements, maxTs, prevMaxTs]);\n\n\t/* Visible tiles: skip hidden+locked (hidden === 1 && unlocked_at == null). */\n\tconst tiles = achievements.filter(\n\t\t(a) => !(a.hidden === 1 && a.unlocked_at == null),\n\t);\n\n\treturn (\n\t\t
\n\t\t\t{toastText != null && (\n\t\t\t\t
{toastText}
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t{tiles.length === 0 && (\n\t\t\t\t\tno achievements yet\n\t\t\t\t)}\n\t\t\t\t{tiles.map((a) => {\n\t\t\t\t\tif (a.unlocked_at != null) {\n\t\t\t\t\t\tconst isNew = prevMaxTs > 0 && (a.unlocked_at ?? 0) > prevMaxTs;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{a.icon ?? \"\"} {a.title}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tunlocked {fmtUnlockDate(a.unlocked_at)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t??? {a.title}\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t\n\t);\n}\n"],"names":["fmtUnlockDate","ts","AchievementTiles","achievements","lastMaxTsRef","useRef","toastText","setToastText","useState","maxTs","mx","a","prevMaxTs","useEffect","newly","text","t","tiles","jsxs","jsx","isNew"],"mappings":"+CAqBA,SAASA,EAAcC,EAAoB,CAC1C,GAAI,CACH,OAAO,IAAI,KAAKA,EAAK,GAAI,EAAE,eAAA,CAC5B,MAAQ,CACP,MAAO,GACR,CACD,CAEO,SAASC,EAAiB,CAChC,aAAAC,CACD,EAA8C,CAC7C,MAAMC,EAAeC,EAAAA,OAAO,CAAC,EACvB,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAwB,IAAI,EAExDC,EAAQN,EAAa,OAC1B,CAACO,EAAIC,IAAM,KAAK,IAAID,EAAIC,EAAE,aAAe,CAAC,EAC1C,CAAA,EAEKC,EAAYR,EAAa,QAG/BS,EAAAA,UAAU,IAAM,CACXJ,EAAQL,EAAa,UACxBA,EAAa,QAAUK,EAEzB,EAAG,CAACA,CAAK,CAAC,EAGVI,EAAAA,UAAU,IAAM,CACf,GAAID,EAAY,GAAKH,EAAQG,EAAW,CACvC,MAAME,EAAQX,EAAa,OACzBQ,GAAMA,EAAE,aAAe,OAASA,EAAE,aAAe,GAAKC,CAAA,EAExD,GAAIE,EAAM,OAAS,EAAG,CACrB,MAAMC,EACLD,EACE,IAAKH,GAAM,GAAGA,EAAE,MAAQ,EAAE,IAAIA,EAAE,KAAK,GAAG,KAAA,CAAM,EAC9C,KAAK,IAAI,EAAI,aAChBJ,EAAaQ,CAAI,EACjB,MAAMC,EAAI,WAAW,IAAMT,EAAa,IAAI,EAAG,GAAI,EACnD,MAAO,IAAY,aAAaS,CAAC,CAClC,CACD,CACD,EAAG,CAACb,EAAcM,EAAOG,CAAS,CAAC,EAGnC,MAAMK,EAAQd,EAAa,OACzBQ,GAAM,EAAEA,EAAE,SAAW,GAAKA,EAAE,aAAe,KAAA,EAG7C,OACCO,EAAAA,KAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAZ,GAAa,MACba,EAAAA,IAAC,MAAA,CAAI,UAAU,iBAAkB,SAAAb,EAAU,EAE5CY,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAD,EAAM,SAAW,GACjBE,MAAC,OAAA,CAAK,UAAU,YAAY,SAAA,sBAAmB,EAE/CF,EAAM,IAAKN,GAAM,CACjB,GAAIA,EAAE,aAAe,KAAM,CAC1B,MAAMS,EAAQR,EAAY,IAAMD,EAAE,aAAe,GAAKC,EACtD,OACCM,EAAAA,KAAC,MAAA,CAEA,UAAW,oBAAoBE,EAAQ,iBAAmB,EAAE,GAE3D,SAAA,CAAAT,EAAE,MAAQ,GAAG,IAAEA,EAAE,MAClBO,EAAAA,KAAC,OAAA,CAAK,UAAU,aAAa,SAAA,CAAA,YAClBlB,EAAcW,EAAE,WAAW,CAAA,CAAA,CACtC,CAAA,CAAA,EANKA,EAAE,EAAA,CASV,CACA,OACCO,EAAAA,KAAC,MAAA,CAAe,UAAU,kBAAkB,SAAA,CAAA,OACtCP,EAAE,KAAA,CAAA,EADEA,EAAE,EAEZ,CAEF,CAAC,CAAA,CAAA,CACF,CAAA,EACD,CAEF"} \ No newline at end of file +{"version":3,"file":"AchievementTiles-CPBeKs-w.js","sources":["../../src/components/AchievementTiles.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/AchievementTiles.tsx — shared achievement grid.\n *\n * Renders a grid of achievement tiles from fetchAchievements() data.\n * Tile states: unlocked (icon+title+date), visible-locked (??? teaser),\n * hidden+locked (not rendered). Just-unlocked tiles get a pulse animation.\n * Toast notification fires for newly-unlocked achievements.\n *\n * Used by both GameTab (sub-section) and AchievementsTab (standalone).\n */\n\nimport type React from \"react\";\nimport { useRef, useState, useEffect } from \"react\";\nimport type { AchievementRow } from \"@contracts\";\n\nexport interface AchievementTilesProps {\n\t/** Achievement rows from /api/achievements. */\n\tachievements: AchievementRow[];\n}\n\n/** Format unlock timestamp (seconds → locale string). */\nfunction fmtUnlockDate(ts: number): string {\n\ttry {\n\t\treturn new Date(ts * 1000).toLocaleString();\n\t} catch {\n\t\treturn \"\\u2014\";\n\t}\n}\n\nexport function AchievementTiles({\n\tachievements,\n}: AchievementTilesProps): React.ReactElement {\n\tconst lastMaxTsRef = useRef(0);\n\tconst [toastText, setToastText] = useState(null);\n\n\tconst maxTs = achievements.reduce(\n\t\t(mx, a) => Math.max(mx, a.unlocked_at ?? 0),\n\t\t0,\n\t);\n\tconst prevMaxTs = lastMaxTsRef.current;\n\n\t/* Update ref after render so next poll sees previous baseline. */\n\tuseEffect(() => {\n\t\tif (maxTs > lastMaxTsRef.current) {\n\t\t\tlastMaxTsRef.current = maxTs;\n\t\t}\n\t}, [maxTs]);\n\n\t/* Toast for newly-unlocked achievements. */\n\tuseEffect(() => {\n\t\tif (prevMaxTs > 0 && maxTs > prevMaxTs) {\n\t\t\tconst newly = achievements.filter(\n\t\t\t\t(a) => a.unlocked_at != null && (a.unlocked_at ?? 0) > prevMaxTs,\n\t\t\t);\n\t\t\tif (newly.length > 0) {\n\t\t\t\tconst text =\n\t\t\t\t\tnewly\n\t\t\t\t\t\t.map((a) => `${a.icon ?? \"\"} ${a.title}`.trim())\n\t\t\t\t\t\t.join(\", \") + \" unlocked!\";\n\t\t\t\tsetToastText(text);\n\t\t\t\tconst t = setTimeout(() => setToastText(null), 4000);\n\t\t\t\treturn (): void => clearTimeout(t);\n\t\t\t}\n\t\t}\n\t}, [achievements, maxTs, prevMaxTs]);\n\n\t/* Visible tiles: skip hidden+locked (hidden === 1 && unlocked_at == null). */\n\tconst tiles = achievements.filter(\n\t\t(a) => !(a.hidden === 1 && a.unlocked_at == null),\n\t);\n\n\treturn (\n\t\t
\n\t\t\t{toastText != null && (\n\t\t\t\t
{toastText}
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t{tiles.length === 0 && (\n\t\t\t\t\tno achievements yet\n\t\t\t\t)}\n\t\t\t\t{tiles.map((a) => {\n\t\t\t\t\tif (a.unlocked_at != null) {\n\t\t\t\t\t\tconst isNew = prevMaxTs > 0 && (a.unlocked_at ?? 0) > prevMaxTs;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{a.icon ?? \"\"} {a.title}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tunlocked {fmtUnlockDate(a.unlocked_at)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t??? {a.title}\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t\n\t);\n}\n"],"names":["fmtUnlockDate","ts","AchievementTiles","achievements","lastMaxTsRef","useRef","toastText","setToastText","useState","maxTs","mx","a","prevMaxTs","useEffect","newly","text","t","tiles","jsxs","jsx","isNew"],"mappings":"+CAqBA,SAASA,EAAcC,EAAoB,CAC1C,GAAI,CACH,OAAO,IAAI,KAAKA,EAAK,GAAI,EAAE,eAAA,CAC5B,MAAQ,CACP,MAAO,GACR,CACD,CAEO,SAASC,EAAiB,CAChC,aAAAC,CACD,EAA8C,CAC7C,MAAMC,EAAeC,EAAAA,OAAO,CAAC,EACvB,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAwB,IAAI,EAExDC,EAAQN,EAAa,OAC1B,CAACO,EAAIC,IAAM,KAAK,IAAID,EAAIC,EAAE,aAAe,CAAC,EAC1C,CAAA,EAEKC,EAAYR,EAAa,QAG/BS,EAAAA,UAAU,IAAM,CACXJ,EAAQL,EAAa,UACxBA,EAAa,QAAUK,EAEzB,EAAG,CAACA,CAAK,CAAC,EAGVI,EAAAA,UAAU,IAAM,CACf,GAAID,EAAY,GAAKH,EAAQG,EAAW,CACvC,MAAME,EAAQX,EAAa,OACzBQ,GAAMA,EAAE,aAAe,OAASA,EAAE,aAAe,GAAKC,CAAA,EAExD,GAAIE,EAAM,OAAS,EAAG,CACrB,MAAMC,EACLD,EACE,IAAKH,GAAM,GAAGA,EAAE,MAAQ,EAAE,IAAIA,EAAE,KAAK,GAAG,KAAA,CAAM,EAC9C,KAAK,IAAI,EAAI,aAChBJ,EAAaQ,CAAI,EACjB,MAAMC,EAAI,WAAW,IAAMT,EAAa,IAAI,EAAG,GAAI,EACnD,MAAO,IAAY,aAAaS,CAAC,CAClC,CACD,CACD,EAAG,CAACb,EAAcM,EAAOG,CAAS,CAAC,EAGnC,MAAMK,EAAQd,EAAa,OACzBQ,GAAM,EAAEA,EAAE,SAAW,GAAKA,EAAE,aAAe,KAAA,EAG7C,OACCO,EAAAA,KAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAZ,GAAa,MACba,EAAAA,IAAC,MAAA,CAAI,UAAU,iBAAkB,SAAAb,EAAU,EAE5CY,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAD,EAAM,SAAW,GACjBE,MAAC,OAAA,CAAK,UAAU,YAAY,SAAA,sBAAmB,EAE/CF,EAAM,IAAKN,GAAM,CACjB,GAAIA,EAAE,aAAe,KAAM,CAC1B,MAAMS,EAAQR,EAAY,IAAMD,EAAE,aAAe,GAAKC,EACtD,OACCM,EAAAA,KAAC,MAAA,CAEA,UAAW,oBAAoBE,EAAQ,iBAAmB,EAAE,GAE3D,SAAA,CAAAT,EAAE,MAAQ,GAAG,IAAEA,EAAE,MAClBO,EAAAA,KAAC,OAAA,CAAK,UAAU,aAAa,SAAA,CAAA,YAClBlB,EAAcW,EAAE,WAAW,CAAA,CAAA,CACtC,CAAA,CAAA,EANKA,EAAE,EAAA,CASV,CACA,OACCO,EAAAA,KAAC,MAAA,CAAe,UAAU,kBAAkB,SAAA,CAAA,OACtCP,EAAE,KAAA,CAAA,EADEA,EAAE,EAEZ,CAEF,CAAC,CAAA,CAAA,CACF,CAAA,EACD,CAEF"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/AchievementsTab-Bg82nb4F.js b/extensions/dashboard-client/dist/assets/AchievementsTab-Bg82nb4F.js new file mode 100644 index 0000000..e117661 --- /dev/null +++ b/extensions/dashboard-client/dist/assets/AchievementsTab-Bg82nb4F.js @@ -0,0 +1,2 @@ +import{r as t,i as m,j as s}from"./index-CqpO7WrQ.js";import{A as v}from"./AchievementTiles-CPBeKs-w.js";function x(){const[r,o]=t.useState([]),[l,u]=t.useState(!0),[a,n]=t.useState(null),i=t.useCallback(async()=>{try{const e=await m();o(e),n(null)}catch(e){n(e instanceof Error?e:new Error(String(e)))}finally{u(!1)}},[]);return t.useEffect(()=>{let e=!0;const c=async()=>{e&&await i()};c();const h=setInterval(()=>void c(),15e3);return()=>{e=!1,clearInterval(h)}},[i]),l&&r.length===0?s.jsx("div",{className:"tab-stub",children:"Loading achievements…"}):a&&r.length===0?s.jsxs("div",{className:"tab-stub",children:["Error: ",a.message]}):s.jsxs("div",{className:"achievements-tab",children:[s.jsx("h2",{children:"Achievements"}),s.jsx(v,{achievements:r})]})}export{x as default}; +//# sourceMappingURL=AchievementsTab-Bg82nb4F.js.map diff --git a/extensions/dashboard-client/dist/assets/AchievementsTab-BzFHpAHM.js.map b/extensions/dashboard-client/dist/assets/AchievementsTab-Bg82nb4F.js.map similarity index 97% rename from extensions/dashboard-client/dist/assets/AchievementsTab-BzFHpAHM.js.map rename to extensions/dashboard-client/dist/assets/AchievementsTab-Bg82nb4F.js.map index 8f0b2f7..a378e91 100644 --- a/extensions/dashboard-client/dist/assets/AchievementsTab-BzFHpAHM.js.map +++ b/extensions/dashboard-client/dist/assets/AchievementsTab-Bg82nb4F.js.map @@ -1 +1 @@ -{"version":3,"file":"AchievementsTab-BzFHpAHM.js","sources":["../../src/tabs/AchievementsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/AchievementsTab.tsx — Achievements tab (NEW).\n *\n * Renders the shared AchievementTiles component standalone, plus a toast area.\n * Polls /api/achievements every 15s.\n */\n\nimport type React from \"react\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport type { AchievementRow } from \"@contracts\";\nimport { fetchAchievements } from \"../api/client\";\nimport { AchievementTiles } from \"../components/AchievementTiles\";\n\nexport default function AchievementsTab(): React.ReactElement {\n\tconst [achievements, setAchievements] = useState([]);\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(null);\n\n\tconst doFetch = useCallback(async (): Promise => {\n\t\ttry {\n\t\t\tconst rows = await fetchAchievements();\n\t\t\tsetAchievements(rows);\n\t\t\tsetError(null);\n\t\t} catch (e) {\n\t\t\tsetError(e instanceof Error ? e : new Error(String(e)));\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst run = async (): Promise => {\n\t\t\tif (active) await doFetch();\n\t\t};\n\t\tvoid run();\n\t\tconst timer = setInterval(() => void run(), 15000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, [doFetch]);\n\n\tif (loading && achievements.length === 0)\n\t\treturn
Loading achievements…
;\n\tif (error && achievements.length === 0)\n\t\treturn
Error: {error.message}
;\n\n\treturn (\n\t\t
\n\t\t\t

Achievements

\n\t\t\t\n\t\t
\n\t);\n}\n"],"names":["AchievementsTab","achievements","setAchievements","useState","loading","setLoading","error","setError","doFetch","useCallback","rows","fetchAchievements","useEffect","active","run","timer","jsx","jsxs","AchievementTiles"],"mappings":"yGAaA,SAAwBA,GAAsC,CAC7D,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAA2B,CAAA,CAAE,EAC/D,CAACC,EAASC,CAAU,EAAIF,EAAAA,SAAS,EAAI,EACrC,CAACG,EAAOC,CAAQ,EAAIJ,EAAAA,SAAuB,IAAI,EAE/CK,EAAUC,EAAAA,YAAY,SAA2B,CACtD,GAAI,CACH,MAAMC,EAAO,MAAMC,EAAA,EACnBT,EAAgBQ,CAAI,EACpBH,EAAS,IAAI,CACd,OAAS,EAAG,CACXA,EAAS,aAAa,MAAQ,EAAI,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CACvD,QAAA,CACCF,EAAW,EAAK,CACjB,CACD,EAAG,CAAA,CAAE,EAeL,OAbAO,EAAAA,UAAU,IAAM,CACf,IAAIC,EAAS,GACb,MAAMC,EAAM,SAA2B,CAClCD,SAAcL,EAAA,CACnB,EACKM,EAAA,EACL,MAAMC,EAAQ,YAAY,IAAM,KAAKD,EAAA,EAAO,IAAK,EACjD,MAAO,IAAM,CACZD,EAAS,GACT,cAAcE,CAAK,CACpB,CACD,EAAG,CAACP,CAAO,CAAC,EAERJ,GAAWH,EAAa,SAAW,EAC/Be,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,wBAAqB,EACnDV,GAASL,EAAa,SAAW,EAC7BgB,EAAAA,KAAC,MAAA,CAAI,UAAU,WAAW,SAAA,CAAA,UAAQX,EAAM,OAAA,EAAQ,EAGvDW,EAAAA,KAAC,MAAA,CAAI,UAAU,mBACd,SAAA,CAAAD,EAAAA,IAAC,MAAG,SAAA,cAAA,CAAY,EAChBA,MAACE,GAAiB,aAAAjB,CAAA,CAA4B,CAAA,EAC/C,CAEF"} \ No newline at end of file +{"version":3,"file":"AchievementsTab-Bg82nb4F.js","sources":["../../src/tabs/AchievementsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/AchievementsTab.tsx — Achievements tab (NEW).\n *\n * Renders the shared AchievementTiles component standalone, plus a toast area.\n * Polls /api/achievements every 15s.\n */\n\nimport type React from \"react\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport type { AchievementRow } from \"@contracts\";\nimport { fetchAchievements } from \"../api/client\";\nimport { AchievementTiles } from \"../components/AchievementTiles\";\n\nexport default function AchievementsTab(): React.ReactElement {\n\tconst [achievements, setAchievements] = useState([]);\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(null);\n\n\tconst doFetch = useCallback(async (): Promise => {\n\t\ttry {\n\t\t\tconst rows = await fetchAchievements();\n\t\t\tsetAchievements(rows);\n\t\t\tsetError(null);\n\t\t} catch (e) {\n\t\t\tsetError(e instanceof Error ? e : new Error(String(e)));\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst run = async (): Promise => {\n\t\t\tif (active) await doFetch();\n\t\t};\n\t\tvoid run();\n\t\tconst timer = setInterval(() => void run(), 15000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, [doFetch]);\n\n\tif (loading && achievements.length === 0)\n\t\treturn
Loading achievements…
;\n\tif (error && achievements.length === 0)\n\t\treturn
Error: {error.message}
;\n\n\treturn (\n\t\t
\n\t\t\t

Achievements

\n\t\t\t\n\t\t
\n\t);\n}\n"],"names":["AchievementsTab","achievements","setAchievements","useState","loading","setLoading","error","setError","doFetch","useCallback","rows","fetchAchievements","useEffect","active","run","timer","jsx","jsxs","AchievementTiles"],"mappings":"yGAaA,SAAwBA,GAAsC,CAC7D,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAAA,SAA2B,CAAA,CAAE,EAC/D,CAACC,EAASC,CAAU,EAAIF,EAAAA,SAAS,EAAI,EACrC,CAACG,EAAOC,CAAQ,EAAIJ,EAAAA,SAAuB,IAAI,EAE/CK,EAAUC,EAAAA,YAAY,SAA2B,CACtD,GAAI,CACH,MAAMC,EAAO,MAAMC,EAAA,EACnBT,EAAgBQ,CAAI,EACpBH,EAAS,IAAI,CACd,OAAS,EAAG,CACXA,EAAS,aAAa,MAAQ,EAAI,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CACvD,QAAA,CACCF,EAAW,EAAK,CACjB,CACD,EAAG,CAAA,CAAE,EAeL,OAbAO,EAAAA,UAAU,IAAM,CACf,IAAIC,EAAS,GACb,MAAMC,EAAM,SAA2B,CAClCD,SAAcL,EAAA,CACnB,EACKM,EAAA,EACL,MAAMC,EAAQ,YAAY,IAAM,KAAKD,EAAA,EAAO,IAAK,EACjD,MAAO,IAAM,CACZD,EAAS,GACT,cAAcE,CAAK,CACpB,CACD,EAAG,CAACP,CAAO,CAAC,EAERJ,GAAWH,EAAa,SAAW,EAC/Be,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,wBAAqB,EACnDV,GAASL,EAAa,SAAW,EAC7BgB,EAAAA,KAAC,MAAA,CAAI,UAAU,WAAW,SAAA,CAAA,UAAQX,EAAM,OAAA,EAAQ,EAGvDW,EAAAA,KAAC,MAAA,CAAI,UAAU,mBACd,SAAA,CAAAD,EAAAA,IAAC,MAAG,SAAA,cAAA,CAAY,EAChBA,MAACE,GAAiB,aAAAjB,CAAA,CAA4B,CAAA,EAC/C,CAEF"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/AchievementsTab-BzFHpAHM.js b/extensions/dashboard-client/dist/assets/AchievementsTab-BzFHpAHM.js deleted file mode 100644 index 8e0ca65..0000000 --- a/extensions/dashboard-client/dist/assets/AchievementsTab-BzFHpAHM.js +++ /dev/null @@ -1,2 +0,0 @@ -import{r as t,h as m,j as s}from"./index-CqLN7STl.js";import{A as v}from"./AchievementTiles-DZp_xQOW.js";function x(){const[r,o]=t.useState([]),[l,h]=t.useState(!0),[a,n]=t.useState(null),c=t.useCallback(async()=>{try{const e=await m();o(e),n(null)}catch(e){n(e instanceof Error?e:new Error(String(e)))}finally{h(!1)}},[]);return t.useEffect(()=>{let e=!0;const i=async()=>{e&&await c()};i();const u=setInterval(()=>void i(),15e3);return()=>{e=!1,clearInterval(u)}},[c]),l&&r.length===0?s.jsx("div",{className:"tab-stub",children:"Loading achievements…"}):a&&r.length===0?s.jsxs("div",{className:"tab-stub",children:["Error: ",a.message]}):s.jsxs("div",{className:"achievements-tab",children:[s.jsx("h2",{children:"Achievements"}),s.jsx(v,{achievements:r})]})}export{x as default}; -//# sourceMappingURL=AchievementsTab-BzFHpAHM.js.map diff --git a/extensions/dashboard-client/dist/assets/CacheTab-BuFmuAIw.js b/extensions/dashboard-client/dist/assets/CacheTab-BuFmuAIw.js new file mode 100644 index 0000000..def61da --- /dev/null +++ b/extensions/dashboard-client/dist/assets/CacheTab-BuFmuAIw.js @@ -0,0 +1,2 @@ +import{j as e,u as d,r as h,c as u,g as v}from"./index-CqpO7WrQ.js";import{C as m,T as p}from"./TimeSavedCard-DVRXGcYK.js";function x(t,a){if(a==null||!Number.isFinite(a)||a<=0)return null;const s=a,o=Math.max(t.totalInput-t.totalCacheRead,0),c=t.totalInput*s,i=o*s+t.totalCacheRead*s*.1+t.totalCacheWrite*s*1.25;return Math.max(c-i,0)}function r(t){return t>=1e6?`${(t/1e6).toFixed(2)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:`${Math.round(t)}`}function l({label:t,value:a,title:s}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",title:s,children:t}),e.jsx("span",{className:"ov-stat-value",children:a})]})}function C(t){const{stats:a}=t,s=x(a,t.inputRatePerToken),o=a.windowMinutes!=null?`last ${a.windowMinutes} min`:"all-time",c=a.sampleCount===0;return e.jsxs("div",{className:"card provider-cache-card",children:[e.jsx("h3",{children:"⚡ Provider Prompt Cache"}),c?e.jsx("div",{className:"ov-stat-row",children:e.jsxs("span",{className:"ov-stat-label",children:["No provider cache samples yet (",o,"). Samples appear after turns with cache-enabled models."]})}):e.jsxs(e.Fragment,{children:[e.jsx(l,{label:"Cache Hit % (avg)",value:`${a.avgHitPct.toFixed(1)}%`,title:`Mean provider cache hit rate across ${a.sampleCount} samples (${o}). Cache reads bill at ~10% of the input rate.`}),e.jsx(l,{label:"Cache Hit % (latest)",value:`${a.latestHitPct.toFixed(1)}%`,title:"Hit rate of the most recent turn."}),e.jsx(l,{label:"Tokens Read from Cache",value:r(a.totalCacheRead),title:`${a.totalCacheRead.toLocaleString()} tokens served from the provider cache.`}),e.jsx(l,{label:"Tokens Written to Cache",value:r(a.totalCacheWrite),title:`${a.totalCacheWrite.toLocaleString()} tokens written into the provider cache (billed at ~125% of input).`}),e.jsx(l,{label:"Fresh Input Tokens",value:r(a.totalInput),title:`${a.totalInput.toLocaleString()} uncached input tokens billed at the full rate.`}),e.jsx(l,{label:"Est. $ Saved",value:s!=null?`≈ $${s.toFixed(4)}`:"—",title:"vs the no-cache hypothetical: cache reads at 10% of the input rate, writes at 125%. Requires the active model's input rate."}),e.jsx(l,{label:"Window",value:o})]})]})}function b(){const{data:t,loading:a,error:s}=d(h.useCallback(()=>u(),[]),{pollInterval:5e3}),{data:o}=d(h.useCallback(()=>v(),[]),{pollInterval:5e3});if(a&&!t)return e.jsx("div",{className:"tab-stub",children:"Loading snapshot…"});if(s&&!t)return e.jsxs("div",{className:"tab-stub",children:["Error: ",s.message]});if(!t)return e.jsx("div",{className:"tab-stub",children:"No snapshot data."});const{cacheHits:c,compacts:i,timeSaved:n}=t;return e.jsx("div",{className:"cache-tab",children:e.jsxs("div",{className:"card-grid overview-card-grid",children:[o&&e.jsx(C,{stats:o,inputRatePerToken:t.model?.inputRate??null}),e.jsx(m,{cacheHitsSession:c.session,cacheHitsTotal:c.total,tokensSavedSession:c.sessionTokensSaved,tokensSavedTotal:c.totalTokensSaved,compactionsSession:i.session,compactionsTotal:i.total}),e.jsx(p,{compactSessionSec:n.compact.sessionSec,compactTotalSec:n.compact.totalSec,cacheHitSessionSec:n.cacheHit.sessionSec,cacheHitTotalSec:n.cacheHit.totalSec})]})})}export{b as default}; +//# sourceMappingURL=CacheTab-BuFmuAIw.js.map diff --git a/extensions/dashboard-client/dist/assets/CacheTab-BuFmuAIw.js.map b/extensions/dashboard-client/dist/assets/CacheTab-BuFmuAIw.js.map new file mode 100644 index 0000000..24fe4a8 --- /dev/null +++ b/extensions/dashboard-client/dist/assets/CacheTab-BuFmuAIw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CacheTab-BuFmuAIw.js","sources":["../../src/components/ProviderCacheCard.tsx","../../src/tabs/CacheTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/ProviderCacheCard.tsx — Provider Prompt\n * Cache card (S53A/S53C).\n *\n * The data the Cache tab was missing: the LLM provider's prompt-cache stats\n * (hit %, tokens read/written through the cache, fresh input), aggregated\n * from perf_samples via GET /api/provider-cache. Distinct from the\n * CacheHitsCard, which shows mega-compact's internal dedup cache.\n *\n * The $ estimate mirrors src/pricing.ts (Anthropic-style multipliers:\n * cache read = 10% of input rate, cache write = 125%) using the live model's\n * input rate from the snapshot. Keep the two implementations in sync.\n */\n\nimport type React from \"react\";\nimport type { ProviderCacheStatsResponse } from \"@contracts\";\n\nexport interface ProviderCacheCardProps {\n\t/** Aggregate stats payload from /api/provider-cache. */\n\tstats: ProviderCacheStatsResponse;\n\t/**\n\t * Active model's full input rate in USD/token (snapshot.model.inputRate),\n\t * used for the savings estimate. Null/undefined → \"$ saved\" shows \"—\".\n\t */\n\tinputRatePerToken?: number | null;\n}\n\n// Mirror of src/pricing.ts (dashboard-client cannot import outside its vite\n// root). PROVIDER_CACHE_READ_MULT = 0.1, PROVIDER_CACHE_WRITE_MULT = 1.25.\nfunction estimateSavedUsd(\n\tstats: ProviderCacheStatsResponse,\n\tinputRatePerToken: number | null | undefined,\n): number | null {\n\tif (inputRatePerToken == null) return null;\n\tif (!Number.isFinite(inputRatePerToken) || inputRatePerToken <= 0)\n\t\treturn null;\n\tconst rate = inputRatePerToken;\n\tconst freshInput = Math.max(stats.totalInput - stats.totalCacheRead, 0);\n\tconst withoutCache = stats.totalInput * rate;\n\tconst withCache =\n\t\tfreshInput * rate +\n\t\tstats.totalCacheRead * rate * 0.1 +\n\t\tstats.totalCacheWrite * rate * 1.25;\n\treturn Math.max(withoutCache - withCache, 0);\n}\n\nfunction fmtTokens(n: number): string {\n\tif (n >= 1_000_000) return `${(n / 1_000_000).toFixed(2)}M`;\n\tif (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n\treturn `${Math.round(n)}`;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{value}\n\t\t
\n\t);\n}\n\nexport function ProviderCacheCard(\n\tprops: ProviderCacheCardProps,\n): React.ReactElement {\n\tconst { stats } = props;\n\tconst savedUsd = estimateSavedUsd(stats, props.inputRatePerToken);\n\tconst windowLabel =\n\t\tstats.windowMinutes != null\n\t\t\t? `last ${stats.windowMinutes} min`\n\t\t\t: \"all-time\";\n\tconst empty = stats.sampleCount === 0;\n\n\treturn (\n\t\t
\n\t\t\t

⚡ Provider Prompt Cache

\n\t\t\t{empty ? (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tNo provider cache samples yet ({windowLabel}). Samples appear after\n\t\t\t\t\t\tturns with cache-enabled models.\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/tabs/CacheTab.tsx — Cache tab.\n *\n * S53A: renders the Provider Prompt Cache card (provider hit %, cache\n * read/write token totals, $ estimate) from /api/provider-cache alongside the\n * original mega-compact dedup cards from /api/snapshot. Previously this tab\n * rendered ONLY the dedup stats — which read zeros before any compaction —\n * leaving the tab effectively empty (see docs/BRANCH_GAP_ANALYSIS.md §4).\n *\n * Both fetches poll on a 5s interval via the useApi hook.\n */\n\nimport type React from \"react\";\nimport { useCallback } from \"react\";\nimport type { SnapshotResponse, ProviderCacheStatsResponse } from \"@contracts\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchSnapshot, fetchProviderCacheStats } from \"../api/client\";\nimport { CacheHitsCard } from \"../components/CacheHitsCard\";\nimport { ProviderCacheCard } from \"../components/ProviderCacheCard\";\nimport { TimeSavedCard } from \"../components/TimeSavedCard\";\n\nexport default function CacheTab(): React.ReactElement {\n\tconst { data: snapshot, loading, error } = useApi(\n\t\tuseCallback(() => fetchSnapshot(), []),\n\t\t{ pollInterval: 5000 },\n\t);\n\t// Provider cache stats load independently: keep the dedup cards working\n\t// even if this fresh endpoint fails on an older server build.\n\tconst { data: providerCache } = useApi(\n\t\tuseCallback(() => fetchProviderCacheStats(), []),\n\t\t{ pollInterval: 5000 },\n\t);\n\n\tif (loading && !snapshot)\n\t\treturn
Loading snapshot…
;\n\tif (error && !snapshot)\n\t\treturn
Error: {error.message}
;\n\tif (!snapshot) return
No snapshot data.
;\n\n\tconst { cacheHits, compacts, timeSaved } = snapshot;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{providerCache && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n"],"names":["estimateSavedUsd","stats","inputRatePerToken","rate","freshInput","withoutCache","withCache","fmtTokens","n","StatRow","label","value","title","jsxs","jsx","ProviderCacheCard","props","savedUsd","windowLabel","empty","Fragment","CacheTab","snapshot","loading","error","useApi","useCallback","fetchSnapshot","providerCache","fetchProviderCacheStats","cacheHits","compacts","timeSaved","CacheHitsCard","TimeSavedCard"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/CacheTab-DEQbTq2T.js b/extensions/dashboard-client/dist/assets/CacheTab-DEQbTq2T.js deleted file mode 100644 index d966d55..0000000 --- a/extensions/dashboard-client/dist/assets/CacheTab-DEQbTq2T.js +++ /dev/null @@ -1,2 +0,0 @@ -import{u as n,r,c as d,j as s}from"./index-CqLN7STl.js";import{C as l,T as h}from"./TimeSavedCard-B8AIjNTY.js";function p(){const{data:a,loading:i,error:c}=n(r.useCallback(()=>d(),[]),{pollInterval:5e3});if(i&&!a)return s.jsx("div",{className:"tab-stub",children:"Loading snapshot…"});if(c&&!a)return s.jsxs("div",{className:"tab-stub",children:["Error: ",c.message]});if(!a)return s.jsx("div",{className:"tab-stub",children:"No snapshot data."});const{cacheHits:e,compacts:o,timeSaved:t}=a;return s.jsx("div",{className:"cache-tab",children:s.jsxs("div",{className:"card-grid overview-card-grid",children:[s.jsx(l,{cacheHitsSession:e.session,cacheHitsTotal:e.total,tokensSavedSession:e.sessionTokensSaved,tokensSavedTotal:e.totalTokensSaved,compactionsSession:o.session,compactionsTotal:o.total}),s.jsx(h,{compactSessionSec:t.compact.sessionSec,compactTotalSec:t.compact.totalSec,cacheHitSessionSec:t.cacheHit.sessionSec,cacheHitTotalSec:t.cacheHit.totalSec})]})})}export{p as default}; -//# sourceMappingURL=CacheTab-DEQbTq2T.js.map diff --git a/extensions/dashboard-client/dist/assets/CacheTab-DEQbTq2T.js.map b/extensions/dashboard-client/dist/assets/CacheTab-DEQbTq2T.js.map deleted file mode 100644 index 9a145be..0000000 --- a/extensions/dashboard-client/dist/assets/CacheTab-DEQbTq2T.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"CacheTab-DEQbTq2T.js","sources":["../../src/tabs/CacheTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/CacheTab.tsx — Cache tab (NEW).\n *\n * Renders CacheHitsCard + TimeSavedCard from /api/snapshot\n * via the useApi hook with 5s polling.\n */\n\nimport type React from \"react\";\nimport { useCallback } from \"react\";\nimport type { SnapshotResponse } from \"@contracts\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchSnapshot } from \"../api/client\";\nimport { CacheHitsCard } from \"../components/CacheHitsCard\";\nimport { TimeSavedCard } from \"../components/TimeSavedCard\";\n\nexport default function CacheTab(): React.ReactElement {\n\tconst { data: snapshot, loading, error } = useApi(\n\t\tuseCallback(() => fetchSnapshot(), []),\n\t\t{ pollInterval: 5000 },\n\t);\n\n\tif (loading && !snapshot)\n\t\treturn
Loading snapshot…
;\n\tif (error && !snapshot)\n\t\treturn
Error: {error.message}
;\n\tif (!snapshot) return
No snapshot data.
;\n\n\tconst { cacheHits, compacts, timeSaved } = snapshot;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n"],"names":["CacheTab","snapshot","loading","error","useApi","useCallback","fetchSnapshot","jsx","jsxs","cacheHits","compacts","timeSaved","CacheHitsCard","TimeSavedCard"],"mappings":"+GAeA,SAAwBA,GAA+B,CACtD,KAAM,CAAE,KAAMC,EAAU,QAAAC,EAAS,MAAAC,GAAUC,EAC1CC,cAAY,IAAMC,EAAA,EAAiB,EAAE,EACrC,CAAE,aAAc,GAAA,CAAK,EAGtB,GAAIJ,GAAW,CAACD,EACf,OAAOM,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,oBAAiB,EACnD,GAAIJ,GAAS,CAACF,EACb,OAAOO,EAAAA,KAAC,MAAA,CAAI,UAAU,WAAW,SAAA,CAAA,UAAQL,EAAM,OAAA,EAAQ,EACxD,GAAI,CAACF,EAAU,aAAQ,MAAA,CAAI,UAAU,WAAW,SAAA,oBAAiB,EAEjE,KAAM,CAAE,UAAAQ,EAAW,SAAAC,EAAU,UAAAC,CAAA,EAAcV,EAE3C,aACE,MAAA,CAAI,UAAU,YACd,SAAAO,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACd,SAAA,CAAAD,EAAAA,IAACK,EAAA,CACA,iBAAkBH,EAAU,QAC5B,eAAgBA,EAAU,MAC1B,mBAAoBA,EAAU,mBAC9B,iBAAkBA,EAAU,iBAC5B,mBAAoBC,EAAS,QAC7B,iBAAkBA,EAAS,KAAA,CAAA,EAE5BH,EAAAA,IAACM,EAAA,CACA,kBAAmBF,EAAU,QAAQ,WACrC,gBAAiBA,EAAU,QAAQ,SACnC,mBAAoBA,EAAU,SAAS,WACvC,iBAAkBA,EAAU,SAAS,QAAA,CAAA,CACtC,CAAA,CACD,CAAA,CACD,CAEF"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/ConfigTab-DQ4FG33J.js b/extensions/dashboard-client/dist/assets/ConfigTab-B7M7jGmX.js similarity index 98% rename from extensions/dashboard-client/dist/assets/ConfigTab-DQ4FG33J.js rename to extensions/dashboard-client/dist/assets/ConfigTab-B7M7jGmX.js index 9bbc39d..e06831d 100644 --- a/extensions/dashboard-client/dist/assets/ConfigTab-DQ4FG33J.js +++ b/extensions/dashboard-client/dist/assets/ConfigTab-B7M7jGmX.js @@ -1,2 +1,2 @@ -import{r as i,p as N,j as e,c as w,d as y}from"./index-CqLN7STl.js";const b=[{id:"transparent",label:"Transparent (accents only)",css:{bg:null,fg:"#c9d1d9",accent:"#3fb950",mega:"#f0883e"},ansi:{bg:null,fg:"39",accent:"32",mega:"33"}},{id:"retro",label:"Retro 8-bit green",css:{bg:"#003300",fg:"#33ff33",accent:"#00ff41",mega:"#39ff14"},ansi:{bg:"40",fg:"92",accent:"92",mega:"1;92"}},{id:"orange-bold",label:"Orange bold",css:{bg:"#1a0f00",fg:"#ff8c00",accent:"#ff6b00",mega:"#ff4500"},ansi:{bg:"48;5;52",fg:"38;5;208",accent:"38;5;208",mega:"1;38;5;202"}},{id:"cyan-neon",label:"Cyan neon",css:{bg:"#001a1a",fg:"#00ffff",accent:"#22d3ee",mega:"#7df9ff"},ansi:{bg:"48;5;23",fg:"38;5;51",accent:"38;5;51",mega:"1;38;5;51"}},{id:"amber-mono",label:"Amber phosphor",css:{bg:"#1a1200",fg:"#ffb000",accent:"#ff8c00",mega:"#ff5500"},ansi:{bg:"48;5;58",fg:"38;5;214",accent:"38;5;214",mega:"1;38;5;208"}},{id:"grayscale",label:"Grayscale minimal",css:{bg:"#161616",fg:"#b0b0b0",accent:"#8b949e",mega:"#e6edf3"},ansi:{bg:"48;5;235",fg:"38;5;249",accent:"38;5;249",mega:"1;38;5;255"}}],g=b.map(t=>t.id),c={gameMode:"Turn game mode on/off (themes the widget + dashboard)",theme:"Visual theme (applies instantly)",tuiMode:"TUI widget display density",tier:"Live pressure band — climbs low→mega as context fills the window.",preset:"The env-resolved base compaction preset (low/medium/high/ultra/mega) that set the token threshold.",pressure:"Live pressure = currentTokens / threshold — % of the model context window (threshold fires at the tier's % of window).",threshold:"Compaction threshold = tierPct × model context window — mega-compact trims BELOW pi's native ~80% auto-compact for any model size.",fastGate:"Fast-gate arming floor — the live trim arms once context passes this % of the window."};function T(t,d,l){let o=t.toLocaleString();return d!=null&&l>0&&(o+=` (${Math.round(d*100)}% of ${l.toLocaleString()})`),o}function S(t){return`${Math.round((t||0)*100)}%`}function E(){const[t,d]=i.useState(null),[l,o]=i.useState(null),[m,u]=i.useState(!1);i.useEffect(()=>{let s=!0;const a=async()=>{try{const r=await w();s&&d(r)}catch{}};a();const f=setInterval(()=>void a(),5e3);return()=>{s=!1,clearInterval(f)}},[]),i.useEffect(()=>{let s=!0;const a=async()=>{try{const r=await y();s&&(o(r),r.theme&&(document.documentElement.dataset.theme=r.theme))}catch{}};a();const f=setInterval(()=>void a(),5e3);return()=>{s=!1,clearInterval(f)}},[]);const h=i.useCallback(async s=>{u(!0);try{const a=await N(s);o(a),a.theme&&(document.documentElement.dataset.theme=a.theme)}catch{}u(!1)},[]),x=l?.game_mode_on??!1,p=l?.theme??"transparent",v=l?.tui_display_mode??"full",n=t?.config,j=t?.context.contextWindow??0;return e.jsxs("div",{className:"config-tab",children:[e.jsxs("section",{className:"config-settings",children:[e.jsx("h3",{children:"Settings"}),e.jsx("div",{className:"settings-row",children:e.jsxs("label",{title:c.gameMode,children:[e.jsx("input",{type:"checkbox",checked:x,onChange:s=>h({game_mode_on:s.currentTarget.checked}),disabled:m}),"Game Mode"]})}),e.jsx("div",{className:"settings-row",children:e.jsxs("label",{title:c.theme,children:["Theme",e.jsx("select",{value:p,onChange:s=>h({theme:s.currentTarget.value}),disabled:m,children:b.map(s=>e.jsx("option",{value:s.id,children:s.label},s.id))}),e.jsx("button",{type:"button",disabled:m,className:"theme-cycle-btn",title:"Cycle to the next theme (P3)",onClick:()=>{const s=g.indexOf(p),a=g[(s<0?0:s+1)%g.length];a&&h({theme:a})},children:"Next theme →"})]})}),e.jsx("div",{className:"settings-row",children:e.jsxs("label",{title:c.tuiMode,children:["TUI Mode",e.jsxs("select",{value:v,onChange:s=>h({tui_display_mode:s.currentTarget.value}),disabled:m,children:[e.jsx("option",{value:"full",children:"Full"}),e.jsx("option",{value:"minimal",children:"Minimal"})]})," ",e.jsx("span",{className:"tui-mode-hint",children:"(affects the in-app TUI widget; not shown here)"})]})})]}),e.jsxs("section",{className:"config-display",children:[e.jsx("h3",{children:"Configuration"}),e.jsxs("div",{className:"config-grid",children:[e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.tier,children:"Tier"}),e.jsx("span",{className:"config-value",children:t?`${t.tier} (live)`:"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.preset,children:"Preset"}),e.jsx("span",{className:"config-value",children:t?.presetTier??"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.pressure,children:"Pressure"}),e.jsx("span",{className:"config-value",children:t?S(t.pressure):"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.threshold,children:"Threshold"}),e.jsx("span",{className:"config-value",children:n?T(n.thresholdTokens,n.tierPct,j):"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.fastGate,children:"Fast Gate"}),e.jsx("span",{className:"config-value",children:n?`${n.fastGatePct}%`:"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",children:"Auto"}),e.jsx("span",{className:"config-value",children:n?n.auto?"enabled":"disabled":"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",children:"Anchor"}),e.jsx("span",{className:"config-value",children:n?.anchorUserMessages??"—"})]})]})]})]})}export{E as default}; -//# sourceMappingURL=ConfigTab-DQ4FG33J.js.map +import{r as i,p as N,j as e,c as w,d as y}from"./index-CqpO7WrQ.js";const b=[{id:"transparent",label:"Transparent (accents only)",css:{bg:null,fg:"#c9d1d9",accent:"#3fb950",mega:"#f0883e"},ansi:{bg:null,fg:"39",accent:"32",mega:"33"}},{id:"retro",label:"Retro 8-bit green",css:{bg:"#003300",fg:"#33ff33",accent:"#00ff41",mega:"#39ff14"},ansi:{bg:"40",fg:"92",accent:"92",mega:"1;92"}},{id:"orange-bold",label:"Orange bold",css:{bg:"#1a0f00",fg:"#ff8c00",accent:"#ff6b00",mega:"#ff4500"},ansi:{bg:"48;5;52",fg:"38;5;208",accent:"38;5;208",mega:"1;38;5;202"}},{id:"cyan-neon",label:"Cyan neon",css:{bg:"#001a1a",fg:"#00ffff",accent:"#22d3ee",mega:"#7df9ff"},ansi:{bg:"48;5;23",fg:"38;5;51",accent:"38;5;51",mega:"1;38;5;51"}},{id:"amber-mono",label:"Amber phosphor",css:{bg:"#1a1200",fg:"#ffb000",accent:"#ff8c00",mega:"#ff5500"},ansi:{bg:"48;5;58",fg:"38;5;214",accent:"38;5;214",mega:"1;38;5;208"}},{id:"grayscale",label:"Grayscale minimal",css:{bg:"#161616",fg:"#b0b0b0",accent:"#8b949e",mega:"#e6edf3"},ansi:{bg:"48;5;235",fg:"38;5;249",accent:"38;5;249",mega:"1;38;5;255"}}],g=b.map(t=>t.id),c={gameMode:"Turn game mode on/off (themes the widget + dashboard)",theme:"Visual theme (applies instantly)",tuiMode:"TUI widget display density",tier:"Live pressure band — climbs low→mega as context fills the window.",preset:"The env-resolved base compaction preset (low/medium/high/ultra/mega) that set the token threshold.",pressure:"Live pressure = currentTokens / threshold — % of the model context window (threshold fires at the tier's % of window).",threshold:"Compaction threshold = tierPct × model context window — mega-compact trims BELOW pi's native ~80% auto-compact for any model size.",fastGate:"Fast-gate arming floor — the live trim arms once context passes this % of the window."};function T(t,d,l){let o=t.toLocaleString();return d!=null&&l>0&&(o+=` (${Math.round(d*100)}% of ${l.toLocaleString()})`),o}function S(t){return`${Math.round((t||0)*100)}%`}function E(){const[t,d]=i.useState(null),[l,o]=i.useState(null),[m,u]=i.useState(!1);i.useEffect(()=>{let s=!0;const a=async()=>{try{const r=await w();s&&d(r)}catch{}};a();const f=setInterval(()=>void a(),5e3);return()=>{s=!1,clearInterval(f)}},[]),i.useEffect(()=>{let s=!0;const a=async()=>{try{const r=await y();s&&(o(r),r.theme&&(document.documentElement.dataset.theme=r.theme))}catch{}};a();const f=setInterval(()=>void a(),5e3);return()=>{s=!1,clearInterval(f)}},[]);const h=i.useCallback(async s=>{u(!0);try{const a=await N(s);o(a),a.theme&&(document.documentElement.dataset.theme=a.theme)}catch{}u(!1)},[]),x=l?.game_mode_on??!1,p=l?.theme??"transparent",v=l?.tui_display_mode??"full",n=t?.config,j=t?.context.contextWindow??0;return e.jsxs("div",{className:"config-tab",children:[e.jsxs("section",{className:"config-settings",children:[e.jsx("h3",{children:"Settings"}),e.jsx("div",{className:"settings-row",children:e.jsxs("label",{title:c.gameMode,children:[e.jsx("input",{type:"checkbox",checked:x,onChange:s=>h({game_mode_on:s.currentTarget.checked}),disabled:m}),"Game Mode"]})}),e.jsx("div",{className:"settings-row",children:e.jsxs("label",{title:c.theme,children:["Theme",e.jsx("select",{value:p,onChange:s=>h({theme:s.currentTarget.value}),disabled:m,children:b.map(s=>e.jsx("option",{value:s.id,children:s.label},s.id))}),e.jsx("button",{type:"button",disabled:m,className:"theme-cycle-btn",title:"Cycle to the next theme (P3)",onClick:()=>{const s=g.indexOf(p),a=g[(s<0?0:s+1)%g.length];a&&h({theme:a})},children:"Next theme →"})]})}),e.jsx("div",{className:"settings-row",children:e.jsxs("label",{title:c.tuiMode,children:["TUI Mode",e.jsxs("select",{value:v,onChange:s=>h({tui_display_mode:s.currentTarget.value}),disabled:m,children:[e.jsx("option",{value:"full",children:"Full"}),e.jsx("option",{value:"minimal",children:"Minimal"})]})," ",e.jsx("span",{className:"tui-mode-hint",children:"(affects the in-app TUI widget; not shown here)"})]})})]}),e.jsxs("section",{className:"config-display",children:[e.jsx("h3",{children:"Configuration"}),e.jsxs("div",{className:"config-grid",children:[e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.tier,children:"Tier"}),e.jsx("span",{className:"config-value",children:t?`${t.tier} (live)`:"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.preset,children:"Preset"}),e.jsx("span",{className:"config-value",children:t?.presetTier??"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.pressure,children:"Pressure"}),e.jsx("span",{className:"config-value",children:t?S(t.pressure):"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.threshold,children:"Threshold"}),e.jsx("span",{className:"config-value",children:n?T(n.thresholdTokens,n.tierPct,j):"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",title:c.fastGate,children:"Fast Gate"}),e.jsx("span",{className:"config-value",children:n?`${n.fastGatePct}%`:"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",children:"Auto"}),e.jsx("span",{className:"config-value",children:n?n.auto?"enabled":"disabled":"—"})]}),e.jsxs("div",{className:"config-item",children:[e.jsx("span",{className:"config-label",children:"Anchor"}),e.jsx("span",{className:"config-value",children:n?.anchorUserMessages??"—"})]})]})]})]})}export{E as default}; +//# sourceMappingURL=ConfigTab-B7M7jGmX.js.map diff --git a/extensions/dashboard-client/dist/assets/ConfigTab-DQ4FG33J.js.map b/extensions/dashboard-client/dist/assets/ConfigTab-B7M7jGmX.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/ConfigTab-DQ4FG33J.js.map rename to extensions/dashboard-client/dist/assets/ConfigTab-B7M7jGmX.js.map index dabba58..2623df8 100644 --- a/extensions/dashboard-client/dist/assets/ConfigTab-DQ4FG33J.js.map +++ b/extensions/dashboard-client/dist/assets/ConfigTab-B7M7jGmX.js.map @@ -1 +1 @@ -{"version":3,"file":"ConfigTab-DQ4FG33J.js","sources":["../../../../src/config/themes.ts","../../src/tabs/ConfigTab.tsx"],"sourcesContent":["/**\n * themes.ts — SINGLE SOURCE OF TRUTH for game-mode visual-effect themes (S30).\n *\n * Each theme defines BOTH an HTML/CSS palette (dashboard) AND an ANSI accent\n * mapping (TUI widget), since the TUI is ANSI and the dashboard is HTML.\n *\n * Theme scope (QA1 correction): themes restyle the mega-compact statusbar\n * widget + the whole dashboard HTML page. We do NOT theme pi's chrome.\n *\n * `transparent` (default) semantics: no background fill, colored accents only —\n * so game-mode stays visible against any terminal background.\n *\n * PREVENT-PI-004: pure config, no network. Pi-agnostic: no pi runtime types.\n */\n\n/** HTML/CSS palette for the dashboard (hex strings, or `null` for \"no bg\"). */\nexport interface ThemeCss {\n /** Page/cell background hex, or `null` for transparent (no bg fill). */\n bg: string | null;\n /** Default foreground (text) hex. */\n fg: string;\n /** Accent hex (bars, highlights, level numbers). */\n accent: string;\n /** MEGA CACHE highlight hex (fires at cache >= 100%). */\n mega: string;\n}\n\n/** ANSI accent mapping for the TUI widget (SGR parameter strings, no `\\x1b[`).\n * `bg` is `null` for transparent themes (no background fill). */\nexport interface ThemeAnsi {\n /** Background SGR params (e.g. \"48;5;23\"), or `null` for no bg fill. */\n bg: string | null;\n /** Foreground SGR params (e.g. \"39\" for default, \"92\" for bright green). */\n fg: string;\n /** Accent SGR params. */\n accent: string;\n /** MEGA CACHE SGR params (fires at cache >= 100%). */\n mega: string;\n}\n\n/** A complete theme = CSS palette + ANSI mapping + display metadata. */\nexport interface Theme {\n id: string;\n label: string;\n css: ThemeCss;\n ansi: ThemeAnsi;\n}\n\nexport const DEFAULT_THEME = \"transparent\";\n\nexport const THEMES: readonly Theme[] = [\n {\n id: \"transparent\",\n label: \"Transparent (accents only)\",\n css: { bg: null, fg: \"#c9d1d9\", accent: \"#3fb950\", mega: \"#f0883e\" },\n ansi: { bg: null, fg: \"39\", accent: \"32\", mega: \"33\" },\n },\n {\n id: \"retro\",\n label: \"Retro 8-bit green\",\n css: { bg: \"#003300\", fg: \"#33ff33\", accent: \"#00ff41\", mega: \"#39ff14\" },\n ansi: { bg: \"40\", fg: \"92\", accent: \"92\", mega: \"1;92\" },\n },\n {\n id: \"orange-bold\",\n label: \"Orange bold\",\n css: { bg: \"#1a0f00\", fg: \"#ff8c00\", accent: \"#ff6b00\", mega: \"#ff4500\" },\n ansi: { bg: \"48;5;52\", fg: \"38;5;208\", accent: \"38;5;208\", mega: \"1;38;5;202\" },\n },\n {\n id: \"cyan-neon\",\n label: \"Cyan neon\",\n css: { bg: \"#001a1a\", fg: \"#00ffff\", accent: \"#22d3ee\", mega: \"#7df9ff\" },\n ansi: { bg: \"48;5;23\", fg: \"38;5;51\", accent: \"38;5;51\", mega: \"1;38;5;51\" },\n },\n {\n id: \"amber-mono\",\n label: \"Amber phosphor\",\n css: { bg: \"#1a1200\", fg: \"#ffb000\", accent: \"#ff8c00\", mega: \"#ff5500\" },\n ansi: { bg: \"48;5;58\", fg: \"38;5;214\", accent: \"38;5;214\", mega: \"1;38;5;208\" },\n },\n {\n id: \"grayscale\",\n label: \"Grayscale minimal\",\n css: { bg: \"#161616\", fg: \"#b0b0b0\", accent: \"#8b949e\", mega: \"#e6edf3\" },\n ansi: { bg: \"48;5;235\", fg: \"38;5;249\", accent: \"38;5;249\", mega: \"1;38;5;255\" },\n },\n] as const;\n\n/** All valid theme ids, in definition order (used for `theme next` cycling). */\nexport const THEME_IDS: readonly string[] = THEMES.map((t) => t.id);\n\n/** Look up a theme by id; returns `undefined` for an unknown id (caller\n * validates + falls back to DEFAULT_THEME). */\nexport function getTheme(id: string): Theme | undefined {\n return THEMES.find((t) => t.id === id);\n}\n\n/** True if `id` is a known theme id. */\nexport function isValidTheme(id: string): boolean {\n return THEME_IDS.includes(id);\n}\n\n/** Cycle to the next theme id (wraps at the end). Falls back to DEFAULT_THEME\n * if `current` is unknown (defensive — the stored id should always be valid). */\nexport function nextTheme(current: string): string {\n const i = THEME_IDS.indexOf(current);\n if (i < 0) return DEFAULT_THEME;\n return THEME_IDS[(i + 1) % THEME_IDS.length]!;\n}\n\n/** CSS variable declarations for a theme's CSS palette. `bg` is `null` for the\n * transparent theme → `--bg: transparent` (no page fill, accents only). Pure,\n * no pi types. */\nexport function themeCssVars(theme: Theme): string {\n const bg = theme.css.bg ?? \"transparent\";\n return `--bg: ${bg}; --fg: ${theme.css.fg}; --accent: ${theme.css.accent}; --mega: ${theme.css.mega};`;\n}\n\n/** A `:root[data-theme=\"\"]` override block carrying the theme's CSS vars,\n * for client-side instant theme switching. Pure, no pi types. */\nexport function themeDataBlock(theme: Theme): string {\n return `:root[data-theme=\"${theme.id}\"]{ ${themeCssVars(theme)} }`;\n}\n","/**\n * dashboard-client/src/tabs/ConfigTab.tsx — Config tab (C3).\n *\n * Full configuration editor:\n * (1) Game mode toggle (checkbox)\n * (2) Theme selector (dropdown) from src/config/themes.ts THEMES array\n * (3) TUI mode selector (Full/Minimal dropdown)\n * (4) Read-only config display section from snapshot (Tier, Preset, Pressure,\n * Threshold, Fast Gate, Auto, Anchor) with verbatim tooltips from html.ts.\n *\n * Uses fetchGameState() to load current state, putGameState() to save changes.\n * Polls gameState and snapshot every 5s. Applies theme by setting\n * document.documentElement.dataset.theme.\n */\n\nimport type React from \"react\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport type { SnapshotResponse, GameStatePatch } from \"@contracts\";\nimport { fetchSnapshot, fetchGameState, putGameState } from \"../api/client\";\nimport { THEMES, THEME_IDS } from \"../../../../src/config/themes\";\n\n/** Actual flat game state returned by the server (the server returns a flat\n * { game_mode_on, theme, tui_display_mode } shape, NOT the contract's nested\n * { config: { enabled, theme, displayMode }, activeRitual } shape). */\ninterface FlatGameState {\n\tgame_mode_on: boolean;\n\ttheme: string;\n\ttui_display_mode: \"full\" | \"minimal\";\n}\ntype FlatGameStatePatch = Partial;\n\n/** Extended snapshot config — the runtime includes tierPct (not in contract).\n * Implemented as a type intersection rather than `interface extends` because\n * TypeScript (TS2499) forbids `interface extends T[\"k\"]` indexed-access\n * parents; the resulting type is structurally identical. */\ntype ConfigExt = SnapshotResponse[\"config\"] & {\n\ttierPct?: number | null;\n};\n\n/* Tooltips copied verbatim from extensions/dashboard-server/html.ts */\nconst TOOLTIPS = {\n\tgameMode: \"Turn game mode on/off (themes the widget + dashboard)\",\n\ttheme: \"Visual theme (applies instantly)\",\n\ttuiMode: \"TUI widget display density\",\n\ttier: \"Live pressure band — climbs low\\u2192mega as context fills the window.\",\n\tpreset:\n\t\t\"The env-resolved base compaction preset (low/medium/high/ultra/mega) that set the token threshold.\",\n\tpressure:\n\t\t\"Live pressure = currentTokens / threshold \\u2014 % of the model context window (threshold fires at the tier's % of window).\",\n\tthreshold:\n\t\t\"Compaction threshold = tierPct \\u00d7 model context window \\u2014 mega-compact trims BELOW pi's native ~80% auto-compact for any model size.\",\n\tfastGate:\n\t\t\"Fast-gate arming floor \\u2014 the live trim arms once context passes this % of the window.\",\n} as const;\n\nfunction formatThreshold(\n\ttokens: number,\n\ttierPct: number | null | undefined,\n\tcw: number,\n): string {\n\tlet txt = tokens.toLocaleString();\n\tif (tierPct != null && cw > 0) {\n\t\ttxt += ` (${Math.round(tierPct * 100)}% of ${cw.toLocaleString()})`;\n\t}\n\treturn txt;\n}\n\nfunction formatPressure(pressure: number): string {\n\t/* Runtime sends 0\\u20131 fraction despite contract saying 0\\u2013100. */\n\treturn `${Math.round((pressure || 0) * 100)}%`;\n}\n\nexport default function ConfigTab(): React.ReactElement {\n\tconst [snapshot, setSnapshot] = useState(null);\n\tconst [gameState, setGameState] = useState(null);\n\tconst [saving, setSaving] = useState(false);\n\n\t/* Poll snapshot every 5s for config display section. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\ttry {\n\t\t\t\tconst s = await fetchSnapshot();\n\t\t\t\tif (active) setSnapshot(s);\n\t\t\t} catch {\n\t\t\t\t/* non-fatal */\n\t\t\t}\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 5000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, []);\n\n\t/* Poll game state every 5s. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\ttry {\n\t\t\t\tconst gs = (await fetchGameState()) as unknown as FlatGameState;\n\t\t\t\tif (active) {\n\t\t\t\t\tsetGameState(gs);\n\t\t\t\t\tif (gs.theme)\n\t\t\t\t\t\tdocument.documentElement.dataset.theme = gs.theme;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t/* non-fatal */\n\t\t\t}\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 5000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, []);\n\n\t/* PUT a patch to the server immediately on change. */\n\tconst handlePatch = useCallback(async (patch: FlatGameStatePatch) => {\n\t\tsetSaving(true);\n\t\ttry {\n\t\t\tconst result = (await putGameState(\n\t\t\t\tpatch as unknown as GameStatePatch,\n\t\t\t)) as unknown as FlatGameState;\n\t\t\tsetGameState(result);\n\t\t\tif (result.theme)\n\t\t\t\tdocument.documentElement.dataset.theme = result.theme;\n\t\t} catch {\n\t\t\t/* non-fatal */\n\t\t}\n\t\tsetSaving(false);\n\t}, []);\n\n\tconst gmOn = gameState?.game_mode_on ?? false;\n\tconst themeVal = gameState?.theme ?? \"transparent\";\n\tconst tuiVal = gameState?.tui_display_mode ?? \"full\";\n\n\tconst cfg = snapshot?.config as ConfigExt | undefined;\n\tconst cw = snapshot?.context.contextWindow ?? 0;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t

Settings

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t

Configuration

\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tTier\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{snapshot ? `${snapshot.tier} (live)` : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPreset\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{snapshot?.presetTier ?? \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPressure\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{snapshot ? formatPressure(snapshot.pressure) : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tThreshold\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg ? formatThreshold(cfg.thresholdTokens, cfg.tierPct, cw) : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tFast Gate\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg ? `${cfg.fastGatePct}%` : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tAuto\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg ? (cfg.auto ? \"enabled\" : \"disabled\") : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tAnchor\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg?.anchorUserMessages ?? \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n"],"names":["THEMES","THEME_IDS","TOOLTIPS","formatThreshold","tokens","tierPct","cw","txt","formatPressure","pressure","ConfigTab","snapshot","setSnapshot","useState","gameState","setGameState","saving","setSaving","useEffect","active","doFetch","s","fetchSnapshot","timer","gs","fetchGameState","handlePatch","useCallback","patch","result","putGameState","gmOn","themeVal","tuiVal","cfg","jsxs","jsx","e","t","i","next"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ConfigTab-B7M7jGmX.js","sources":["../../../../src/config/themes.ts","../../src/tabs/ConfigTab.tsx"],"sourcesContent":["/**\n * themes.ts — SINGLE SOURCE OF TRUTH for game-mode visual-effect themes (S30).\n *\n * Each theme defines BOTH an HTML/CSS palette (dashboard) AND an ANSI accent\n * mapping (TUI widget), since the TUI is ANSI and the dashboard is HTML.\n *\n * Theme scope (QA1 correction): themes restyle the mega-compact statusbar\n * widget + the whole dashboard HTML page. We do NOT theme pi's chrome.\n *\n * `transparent` (default) semantics: no background fill, colored accents only —\n * so game-mode stays visible against any terminal background.\n *\n * PREVENT-PI-004: pure config, no network. Pi-agnostic: no pi runtime types.\n */\n\n/** HTML/CSS palette for the dashboard (hex strings, or `null` for \"no bg\"). */\nexport interface ThemeCss {\n /** Page/cell background hex, or `null` for transparent (no bg fill). */\n bg: string | null;\n /** Default foreground (text) hex. */\n fg: string;\n /** Accent hex (bars, highlights, level numbers). */\n accent: string;\n /** MEGA CACHE highlight hex (fires at cache >= 100%). */\n mega: string;\n}\n\n/** ANSI accent mapping for the TUI widget (SGR parameter strings, no `\\x1b[`).\n * `bg` is `null` for transparent themes (no background fill). */\nexport interface ThemeAnsi {\n /** Background SGR params (e.g. \"48;5;23\"), or `null` for no bg fill. */\n bg: string | null;\n /** Foreground SGR params (e.g. \"39\" for default, \"92\" for bright green). */\n fg: string;\n /** Accent SGR params. */\n accent: string;\n /** MEGA CACHE SGR params (fires at cache >= 100%). */\n mega: string;\n}\n\n/** A complete theme = CSS palette + ANSI mapping + display metadata. */\nexport interface Theme {\n id: string;\n label: string;\n css: ThemeCss;\n ansi: ThemeAnsi;\n}\n\nexport const DEFAULT_THEME = \"transparent\";\n\nexport const THEMES: readonly Theme[] = [\n {\n id: \"transparent\",\n label: \"Transparent (accents only)\",\n css: { bg: null, fg: \"#c9d1d9\", accent: \"#3fb950\", mega: \"#f0883e\" },\n ansi: { bg: null, fg: \"39\", accent: \"32\", mega: \"33\" },\n },\n {\n id: \"retro\",\n label: \"Retro 8-bit green\",\n css: { bg: \"#003300\", fg: \"#33ff33\", accent: \"#00ff41\", mega: \"#39ff14\" },\n ansi: { bg: \"40\", fg: \"92\", accent: \"92\", mega: \"1;92\" },\n },\n {\n id: \"orange-bold\",\n label: \"Orange bold\",\n css: { bg: \"#1a0f00\", fg: \"#ff8c00\", accent: \"#ff6b00\", mega: \"#ff4500\" },\n ansi: { bg: \"48;5;52\", fg: \"38;5;208\", accent: \"38;5;208\", mega: \"1;38;5;202\" },\n },\n {\n id: \"cyan-neon\",\n label: \"Cyan neon\",\n css: { bg: \"#001a1a\", fg: \"#00ffff\", accent: \"#22d3ee\", mega: \"#7df9ff\" },\n ansi: { bg: \"48;5;23\", fg: \"38;5;51\", accent: \"38;5;51\", mega: \"1;38;5;51\" },\n },\n {\n id: \"amber-mono\",\n label: \"Amber phosphor\",\n css: { bg: \"#1a1200\", fg: \"#ffb000\", accent: \"#ff8c00\", mega: \"#ff5500\" },\n ansi: { bg: \"48;5;58\", fg: \"38;5;214\", accent: \"38;5;214\", mega: \"1;38;5;208\" },\n },\n {\n id: \"grayscale\",\n label: \"Grayscale minimal\",\n css: { bg: \"#161616\", fg: \"#b0b0b0\", accent: \"#8b949e\", mega: \"#e6edf3\" },\n ansi: { bg: \"48;5;235\", fg: \"38;5;249\", accent: \"38;5;249\", mega: \"1;38;5;255\" },\n },\n] as const;\n\n/** All valid theme ids, in definition order (used for `theme next` cycling). */\nexport const THEME_IDS: readonly string[] = THEMES.map((t) => t.id);\n\n/** Look up a theme by id; returns `undefined` for an unknown id (caller\n * validates + falls back to DEFAULT_THEME). */\nexport function getTheme(id: string): Theme | undefined {\n return THEMES.find((t) => t.id === id);\n}\n\n/** True if `id` is a known theme id. */\nexport function isValidTheme(id: string): boolean {\n return THEME_IDS.includes(id);\n}\n\n/** Cycle to the next theme id (wraps at the end). Falls back to DEFAULT_THEME\n * if `current` is unknown (defensive — the stored id should always be valid). */\nexport function nextTheme(current: string): string {\n const i = THEME_IDS.indexOf(current);\n if (i < 0) return DEFAULT_THEME;\n return THEME_IDS[(i + 1) % THEME_IDS.length]!;\n}\n\n/** CSS variable declarations for a theme's CSS palette. `bg` is `null` for the\n * transparent theme → `--bg: transparent` (no page fill, accents only). Pure,\n * no pi types. */\nexport function themeCssVars(theme: Theme): string {\n const bg = theme.css.bg ?? \"transparent\";\n return `--bg: ${bg}; --fg: ${theme.css.fg}; --accent: ${theme.css.accent}; --mega: ${theme.css.mega};`;\n}\n\n/** A `:root[data-theme=\"\"]` override block carrying the theme's CSS vars,\n * for client-side instant theme switching. Pure, no pi types. */\nexport function themeDataBlock(theme: Theme): string {\n return `:root[data-theme=\"${theme.id}\"]{ ${themeCssVars(theme)} }`;\n}\n","/**\n * dashboard-client/src/tabs/ConfigTab.tsx — Config tab (C3).\n *\n * Full configuration editor:\n * (1) Game mode toggle (checkbox)\n * (2) Theme selector (dropdown) from src/config/themes.ts THEMES array\n * (3) TUI mode selector (Full/Minimal dropdown)\n * (4) Read-only config display section from snapshot (Tier, Preset, Pressure,\n * Threshold, Fast Gate, Auto, Anchor) with verbatim tooltips from html.ts.\n *\n * Uses fetchGameState() to load current state, putGameState() to save changes.\n * Polls gameState and snapshot every 5s. Applies theme by setting\n * document.documentElement.dataset.theme.\n */\n\nimport type React from \"react\";\nimport { useState, useEffect, useCallback } from \"react\";\nimport type { SnapshotResponse, GameStatePatch } from \"@contracts\";\nimport { fetchSnapshot, fetchGameState, putGameState } from \"../api/client\";\nimport { THEMES, THEME_IDS } from \"../../../../src/config/themes\";\n\n/** Actual flat game state returned by the server (the server returns a flat\n * { game_mode_on, theme, tui_display_mode } shape, NOT the contract's nested\n * { config: { enabled, theme, displayMode }, activeRitual } shape). */\ninterface FlatGameState {\n\tgame_mode_on: boolean;\n\ttheme: string;\n\ttui_display_mode: \"full\" | \"minimal\";\n}\ntype FlatGameStatePatch = Partial;\n\n/** Extended snapshot config — the runtime includes tierPct (not in contract).\n * Implemented as a type intersection rather than `interface extends` because\n * TypeScript (TS2499) forbids `interface extends T[\"k\"]` indexed-access\n * parents; the resulting type is structurally identical. */\ntype ConfigExt = SnapshotResponse[\"config\"] & {\n\ttierPct?: number | null;\n};\n\n/* Tooltips copied verbatim from extensions/dashboard-server/html.ts */\nconst TOOLTIPS = {\n\tgameMode: \"Turn game mode on/off (themes the widget + dashboard)\",\n\ttheme: \"Visual theme (applies instantly)\",\n\ttuiMode: \"TUI widget display density\",\n\ttier: \"Live pressure band — climbs low\\u2192mega as context fills the window.\",\n\tpreset:\n\t\t\"The env-resolved base compaction preset (low/medium/high/ultra/mega) that set the token threshold.\",\n\tpressure:\n\t\t\"Live pressure = currentTokens / threshold \\u2014 % of the model context window (threshold fires at the tier's % of window).\",\n\tthreshold:\n\t\t\"Compaction threshold = tierPct \\u00d7 model context window \\u2014 mega-compact trims BELOW pi's native ~80% auto-compact for any model size.\",\n\tfastGate:\n\t\t\"Fast-gate arming floor \\u2014 the live trim arms once context passes this % of the window.\",\n} as const;\n\nfunction formatThreshold(\n\ttokens: number,\n\ttierPct: number | null | undefined,\n\tcw: number,\n): string {\n\tlet txt = tokens.toLocaleString();\n\tif (tierPct != null && cw > 0) {\n\t\ttxt += ` (${Math.round(tierPct * 100)}% of ${cw.toLocaleString()})`;\n\t}\n\treturn txt;\n}\n\nfunction formatPressure(pressure: number): string {\n\t/* Runtime sends 0\\u20131 fraction despite contract saying 0\\u2013100. */\n\treturn `${Math.round((pressure || 0) * 100)}%`;\n}\n\nexport default function ConfigTab(): React.ReactElement {\n\tconst [snapshot, setSnapshot] = useState(null);\n\tconst [gameState, setGameState] = useState(null);\n\tconst [saving, setSaving] = useState(false);\n\n\t/* Poll snapshot every 5s for config display section. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\ttry {\n\t\t\t\tconst s = await fetchSnapshot();\n\t\t\t\tif (active) setSnapshot(s);\n\t\t\t} catch {\n\t\t\t\t/* non-fatal */\n\t\t\t}\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 5000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, []);\n\n\t/* Poll game state every 5s. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\ttry {\n\t\t\t\tconst gs = (await fetchGameState()) as unknown as FlatGameState;\n\t\t\t\tif (active) {\n\t\t\t\t\tsetGameState(gs);\n\t\t\t\t\tif (gs.theme)\n\t\t\t\t\t\tdocument.documentElement.dataset.theme = gs.theme;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t/* non-fatal */\n\t\t\t}\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 5000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, []);\n\n\t/* PUT a patch to the server immediately on change. */\n\tconst handlePatch = useCallback(async (patch: FlatGameStatePatch) => {\n\t\tsetSaving(true);\n\t\ttry {\n\t\t\tconst result = (await putGameState(\n\t\t\t\tpatch as unknown as GameStatePatch,\n\t\t\t)) as unknown as FlatGameState;\n\t\t\tsetGameState(result);\n\t\t\tif (result.theme)\n\t\t\t\tdocument.documentElement.dataset.theme = result.theme;\n\t\t} catch {\n\t\t\t/* non-fatal */\n\t\t}\n\t\tsetSaving(false);\n\t}, []);\n\n\tconst gmOn = gameState?.game_mode_on ?? false;\n\tconst themeVal = gameState?.theme ?? \"transparent\";\n\tconst tuiVal = gameState?.tui_display_mode ?? \"full\";\n\n\tconst cfg = snapshot?.config as ConfigExt | undefined;\n\tconst cw = snapshot?.context.contextWindow ?? 0;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t

Settings

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t

Configuration

\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tTier\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{snapshot ? `${snapshot.tier} (live)` : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPreset\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{snapshot?.presetTier ?? \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPressure\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{snapshot ? formatPressure(snapshot.pressure) : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tThreshold\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg ? formatThreshold(cfg.thresholdTokens, cfg.tierPct, cw) : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tFast Gate\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg ? `${cfg.fastGatePct}%` : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tAuto\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg ? (cfg.auto ? \"enabled\" : \"disabled\") : \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tAnchor\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{cfg?.anchorUserMessages ?? \"\\u2014\"}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n"],"names":["THEMES","THEME_IDS","TOOLTIPS","formatThreshold","tokens","tierPct","cw","txt","formatPressure","pressure","ConfigTab","snapshot","setSnapshot","useState","gameState","setGameState","saving","setSaving","useEffect","active","doFetch","s","fetchSnapshot","timer","gs","fetchGameState","handlePatch","useCallback","patch","result","putGameState","gmOn","themeVal","tuiVal","cfg","jsxs","jsx","e","t","i","next"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/EventsTab-D5HoEVYo.js b/extensions/dashboard-client/dist/assets/EventsTab-Daoh3-KJ.js similarity index 96% rename from extensions/dashboard-client/dist/assets/EventsTab-D5HoEVYo.js rename to extensions/dashboard-client/dist/assets/EventsTab-Daoh3-KJ.js index c36d7ce..b96d18d 100644 --- a/extensions/dashboard-client/dist/assets/EventsTab-D5HoEVYo.js +++ b/extensions/dashboard-client/dist/assets/EventsTab-Daoh3-KJ.js @@ -1,2 +1,2 @@ -import{r as o,j as t}from"./index-CqLN7STl.js";import{u}from"./useSSE-CXrQSbVY.js";const _={compact_start:"ev-compact",compact_end:"ev-compact",compact_trigger:"ev-trigger",compact_skip:"ev-trigger",tier_changed:"ev-tier",model_changed:"ev-tier",pressure_lifted:"ev-tier",checkpoint_persisted:"ev-checkpoint",recall_inject:"ev-recall",anchors_updated:"ev-recall",config_updated:"ev-config",config_preset:"ev-config",crew_presence_changed:"ev-crew",crew_turn_changed:"ev-crew",crew_bandit_chosen:"ev-crew",session_sample:"ev-recall",game_ritual_start:"ev-game",game_ritual_stage:"ev-game",game_ritual_end:"ev-game",game_mode_changed:"ev-game",game_render:"ev-game"},m=["all","compact_start","compact_end","recall_inject","checkpoint_persisted"];function p(e){switch(e.type){case"compact_start":return`trigger=${e.trigger} session=${e.sessionId.slice(0,8)}`;case"compact_end":return`freed=${e.tokensFreed} ok=${e.success} cp=${e.checkpointId.slice(0,8)}`;case"compact_trigger":return`pressure=${e.pressure}% threshold=${e.threshold}% armed=${e.armed}`;case"compact_skip":return`reason=${e.reason}`;case"tier_changed":return`${e.from} → ${e.to} ctx=${e.contextPct}%`;case"model_changed":return`${e.providerName}/${e.model}`;case"pressure_lifted":return`${e.beforePct}% → ${e.afterPct}%`;case"checkpoint_persisted":return`cp=${e.checkpointId.slice(0,8)} sessionTok=${e.sessionTokens}`;case"recall_inject":return`q="${e.query.slice(0,40)}" chunks=${e.chunks} tok=${e.tokens}`;case"anchors_updated":return`count=${e.count} pinned=${e.pinned}`;case"config_updated":return`key=${e.key}`;case"config_preset":return`preset=${e.preset}`;case"crew_presence_changed":return`agents=${e.activeAgents} turn=${e.currentTurn}`;case"crew_turn_changed":return`turn=${e.turnIndex} agent=${e.agentName}`;case"crew_bandit_chosen":return`agent=${e.chosenAgent} score=${e.score} regret=${e.regret}`;case"session_sample":return`sess=${e.sessionId.slice(0,8)} tok=${e.tokens.toLocaleString()} ctx=${Math.round(e.percent)}%`;case"game_ritual_start":case"game_ritual_stage":case"game_ritual_end":case"game_mode_changed":case"game_render":return`stage=${e.type}`}}function g(e){try{return new Date(e).toLocaleTimeString()}catch{return e}}function h({events:e}){const[s,r]=o.useState("all"),[a,l]=o.useState(null),i=o.useMemo(()=>(s==="all"?e:e.filter(n=>n.type===s)).slice(-200).reverse(),[e,s]);return t.jsxs("div",{className:"event-stream",children:[t.jsxs("div",{className:"event-filters",role:"toolbar",children:[m.map(c=>t.jsx("button",{type:"button",className:`filter-chip ${s===c?"active":""}`,onClick:()=>r(c),children:c==="all"?"all":c.replace(/_/g," ")},c)),t.jsxs("span",{className:"event-count",children:[e.length," buffered"]})]}),t.jsxs("ul",{className:"event-list",children:[i.length===0&&t.jsx("li",{className:"event-empty",children:"No events yet."}),i.map((c,n)=>{const d=_[c.type]??"ev-default";return t.jsxs("li",{className:`event-row ${d}`,onClick:()=>l(a===n?null:n),children:[t.jsx("span",{className:"ev-time",children:g(c.ts)}),t.jsx("span",{className:"ev-type",children:c.type}),t.jsx("span",{className:"ev-summary",children:p(c)}),a===n&&t.jsx("pre",{className:"ev-detail",children:JSON.stringify(c,null,2)})]},`${c.ts}-${n}`)})]})]})}const f=["all","compact","recall","config","crew","game"];function $({active:e,onFilter:s}){return t.jsx("div",{className:"event-category-filter",role:"toolbar","aria-label":"Event category filter",children:f.map(r=>t.jsx("button",{type:"button",className:`category-chip${e===r?" active":""}`,onClick:()=>s(r),"aria-pressed":e===r,children:r},r))})}const x=new Set(["compact_start","compact_end","compact_trigger","compact_skip"]),j=new Set(["config_updated","config_preset","tier_changed","model_changed","pressure_lifted","anchors_updated","checkpoint_persisted"]),k=new Set(["crew_presence_changed","crew_turn_changed","crew_bandit_chosen"]),y=new Set(["game_ritual_start","game_ritual_stage","game_ritual_end","game_mode_changed","game_render"]);function N(e,s){if(s==="all")return!0;const r=e.type;return s==="compact"?x.has(r):s==="recall"?r==="recall_inject":s==="config"?j.has(r):s==="crew"?k.has(r):y.has(r)}function E(){const{events:e,status:s,eventCount:r}=u(),[a,l]=o.useState("all"),i=o.useMemo(()=>e.filter(d=>N(d,a)),[e,a]),c=`sse-status sse-${s}`,n=s==="connected"?"connected":s==="connecting"?"connecting…":s==="error"?"error":"disconnected";return t.jsxs("div",{className:"events-tab",children:[t.jsxs("div",{className:"events-header",children:[t.jsxs("span",{className:c,role:"status",children:[t.jsx("span",{className:"sse-dot","aria-hidden":"true"}),n]}),t.jsxs("span",{className:"event-count",children:[r," events received"]})]}),t.jsx($,{active:a,onFilter:l}),t.jsx(h,{events:i})]})}export{E as default}; -//# sourceMappingURL=EventsTab-D5HoEVYo.js.map +import{r as o,j as t}from"./index-CqpO7WrQ.js";import{u}from"./useSSE-BfmZMOWC.js";const _={compact_start:"ev-compact",compact_end:"ev-compact",compact_trigger:"ev-trigger",compact_skip:"ev-trigger",tier_changed:"ev-tier",model_changed:"ev-tier",pressure_lifted:"ev-tier",checkpoint_persisted:"ev-checkpoint",recall_inject:"ev-recall",anchors_updated:"ev-recall",config_updated:"ev-config",config_preset:"ev-config",crew_presence_changed:"ev-crew",crew_turn_changed:"ev-crew",crew_bandit_chosen:"ev-crew",session_sample:"ev-recall",game_ritual_start:"ev-game",game_ritual_stage:"ev-game",game_ritual_end:"ev-game",game_mode_changed:"ev-game",game_render:"ev-game"},m=["all","compact_start","compact_end","recall_inject","checkpoint_persisted"];function p(e){switch(e.type){case"compact_start":return`trigger=${e.trigger} session=${e.sessionId.slice(0,8)}`;case"compact_end":return`freed=${e.tokensFreed} ok=${e.success} cp=${e.checkpointId.slice(0,8)}`;case"compact_trigger":return`pressure=${e.pressure}% threshold=${e.threshold}% armed=${e.armed}`;case"compact_skip":return`reason=${e.reason}`;case"tier_changed":return`${e.from} → ${e.to} ctx=${e.contextPct}%`;case"model_changed":return`${e.providerName}/${e.model}`;case"pressure_lifted":return`${e.beforePct}% → ${e.afterPct}%`;case"checkpoint_persisted":return`cp=${e.checkpointId.slice(0,8)} sessionTok=${e.sessionTokens}`;case"recall_inject":return`q="${e.query.slice(0,40)}" chunks=${e.chunks} tok=${e.tokens}`;case"anchors_updated":return`count=${e.count} pinned=${e.pinned}`;case"config_updated":return`key=${e.key}`;case"config_preset":return`preset=${e.preset}`;case"crew_presence_changed":return`agents=${e.activeAgents} turn=${e.currentTurn}`;case"crew_turn_changed":return`turn=${e.turnIndex} agent=${e.agentName}`;case"crew_bandit_chosen":return`agent=${e.chosenAgent} score=${e.score} regret=${e.regret}`;case"session_sample":return`sess=${e.sessionId.slice(0,8)} tok=${e.tokens.toLocaleString()} ctx=${Math.round(e.percent)}%`;case"game_ritual_start":case"game_ritual_stage":case"game_ritual_end":case"game_mode_changed":case"game_render":return`stage=${e.type}`}}function g(e){try{return new Date(e).toLocaleTimeString()}catch{return e}}function h({events:e}){const[s,r]=o.useState("all"),[a,l]=o.useState(null),i=o.useMemo(()=>(s==="all"?e:e.filter(n=>n.type===s)).slice(-200).reverse(),[e,s]);return t.jsxs("div",{className:"event-stream",children:[t.jsxs("div",{className:"event-filters",role:"toolbar",children:[m.map(c=>t.jsx("button",{type:"button",className:`filter-chip ${s===c?"active":""}`,onClick:()=>r(c),children:c==="all"?"all":c.replace(/_/g," ")},c)),t.jsxs("span",{className:"event-count",children:[e.length," buffered"]})]}),t.jsxs("ul",{className:"event-list",children:[i.length===0&&t.jsx("li",{className:"event-empty",children:"No events yet."}),i.map((c,n)=>{const d=_[c.type]??"ev-default";return t.jsxs("li",{className:`event-row ${d}`,onClick:()=>l(a===n?null:n),children:[t.jsx("span",{className:"ev-time",children:g(c.ts)}),t.jsx("span",{className:"ev-type",children:c.type}),t.jsx("span",{className:"ev-summary",children:p(c)}),a===n&&t.jsx("pre",{className:"ev-detail",children:JSON.stringify(c,null,2)})]},`${c.ts}-${n}`)})]})]})}const f=["all","compact","recall","config","crew","game"];function $({active:e,onFilter:s}){return t.jsx("div",{className:"event-category-filter",role:"toolbar","aria-label":"Event category filter",children:f.map(r=>t.jsx("button",{type:"button",className:`category-chip${e===r?" active":""}`,onClick:()=>s(r),"aria-pressed":e===r,children:r},r))})}const x=new Set(["compact_start","compact_end","compact_trigger","compact_skip"]),j=new Set(["config_updated","config_preset","tier_changed","model_changed","pressure_lifted","anchors_updated","checkpoint_persisted"]),k=new Set(["crew_presence_changed","crew_turn_changed","crew_bandit_chosen"]),y=new Set(["game_ritual_start","game_ritual_stage","game_ritual_end","game_mode_changed","game_render"]);function N(e,s){if(s==="all")return!0;const r=e.type;return s==="compact"?x.has(r):s==="recall"?r==="recall_inject":s==="config"?j.has(r):s==="crew"?k.has(r):y.has(r)}function E(){const{events:e,status:s,eventCount:r}=u(),[a,l]=o.useState("all"),i=o.useMemo(()=>e.filter(d=>N(d,a)),[e,a]),c=`sse-status sse-${s}`,n=s==="connected"?"connected":s==="connecting"?"connecting…":s==="error"?"error":"disconnected";return t.jsxs("div",{className:"events-tab",children:[t.jsxs("div",{className:"events-header",children:[t.jsxs("span",{className:c,role:"status",children:[t.jsx("span",{className:"sse-dot","aria-hidden":"true"}),n]}),t.jsxs("span",{className:"event-count",children:[r," events received"]})]}),t.jsx($,{active:a,onFilter:l}),t.jsx(h,{events:i})]})}export{E as default}; +//# sourceMappingURL=EventsTab-Daoh3-KJ.js.map diff --git a/extensions/dashboard-client/dist/assets/EventsTab-D5HoEVYo.js.map b/extensions/dashboard-client/dist/assets/EventsTab-Daoh3-KJ.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/EventsTab-D5HoEVYo.js.map rename to extensions/dashboard-client/dist/assets/EventsTab-Daoh3-KJ.js.map index 0c867c6..9a20e2d 100644 --- a/extensions/dashboard-client/dist/assets/EventsTab-D5HoEVYo.js.map +++ b/extensions/dashboard-client/dist/assets/EventsTab-Daoh3-KJ.js.map @@ -1 +1 @@ -{"version":3,"file":"EventsTab-D5HoEVYo.js","sources":["../../src/components/EventStream.tsx","../../src/components/EventCategoryFilter.tsx","../../src/tabs/EventsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/EventStream.tsx — SSE event list with filters.\n *\n * Type badge colored by event type. Timestamp + expandable detail row.\n * Type filter chips (all + per-type). Virtualization: manual windowing for\n * 500+ events (render last N visible).\n */\n\nimport type React from \"react\";\nimport { useState, useMemo } from \"react\";\nimport type { SseEvent } from \"@contracts\";\n\nexport interface EventStreamProps {\n\tevents: SseEvent[];\n}\n\nconst TYPE_COLORS: Record = {\n\tcompact_start: \"ev-compact\",\n\tcompact_end: \"ev-compact\",\n\tcompact_trigger: \"ev-trigger\",\n\tcompact_skip: \"ev-trigger\",\n\ttier_changed: \"ev-tier\",\n\tmodel_changed: \"ev-tier\",\n\tpressure_lifted: \"ev-tier\",\n\tcheckpoint_persisted: \"ev-checkpoint\",\n\trecall_inject: \"ev-recall\",\n\tanchors_updated: \"ev-recall\",\n\tconfig_updated: \"ev-config\",\n\tconfig_preset: \"ev-config\",\n\tcrew_presence_changed: \"ev-crew\",\n\tcrew_turn_changed: \"ev-crew\",\n\tcrew_bandit_chosen: \"ev-crew\",\n\tsession_sample: \"ev-recall\",\n\tgame_ritual_start: \"ev-game\",\n\tgame_ritual_stage: \"ev-game\",\n\tgame_ritual_end: \"ev-game\",\n\tgame_mode_changed: \"ev-game\",\n\tgame_render: \"ev-game\",\n};\n\n// Filterable event types (spec: compact_start/end, recall_inject, checkpoint_persisted + all).\nconst FILTER_TYPES = [\n\t\"all\",\n\t\"compact_start\",\n\t\"compact_end\",\n\t\"recall_inject\",\n\t\"checkpoint_persisted\",\n] as const;\ntype FilterType = (typeof FILTER_TYPES)[number];\n\nconst RENDER_WINDOW = 200; // render last 200 to keep DOM light under 500+ events\n\nfunction summarize(ev: SseEvent): string {\n\tswitch (ev.type) {\n\t\tcase \"compact_start\":\n\t\t\treturn `trigger=${ev.trigger} session=${ev.sessionId.slice(0, 8)}`;\n\t\tcase \"compact_end\":\n\t\t\treturn `freed=${ev.tokensFreed} ok=${ev.success} cp=${ev.checkpointId.slice(0, 8)}`;\n\t\tcase \"compact_trigger\":\n\t\t\treturn `pressure=${ev.pressure}% threshold=${ev.threshold}% armed=${ev.armed}`;\n\t\tcase \"compact_skip\":\n\t\t\treturn `reason=${ev.reason}`;\n\t\tcase \"tier_changed\":\n\t\t\treturn `${ev.from} → ${ev.to} ctx=${ev.contextPct}%`;\n\t\tcase \"model_changed\":\n\t\t\treturn `${ev.providerName}/${ev.model}`;\n\t\tcase \"pressure_lifted\":\n\t\t\treturn `${ev.beforePct}% → ${ev.afterPct}%`;\n\t\tcase \"checkpoint_persisted\":\n\t\t\treturn `cp=${ev.checkpointId.slice(0, 8)} sessionTok=${ev.sessionTokens}`;\n\t\tcase \"recall_inject\":\n\t\t\treturn `q=\"${ev.query.slice(0, 40)}\" chunks=${ev.chunks} tok=${ev.tokens}`;\n\t\tcase \"anchors_updated\":\n\t\t\treturn `count=${ev.count} pinned=${ev.pinned}`;\n\t\tcase \"config_updated\":\n\t\t\treturn `key=${ev.key}`;\n\t\tcase \"config_preset\":\n\t\t\treturn `preset=${ev.preset}`;\n\t\tcase \"crew_presence_changed\":\n\t\t\treturn `agents=${ev.activeAgents} turn=${ev.currentTurn}`;\n\t\tcase \"crew_turn_changed\":\n\t\t\treturn `turn=${ev.turnIndex} agent=${ev.agentName}`;\n\t\tcase \"crew_bandit_chosen\":\n\t\t\treturn `agent=${ev.chosenAgent} score=${ev.score} regret=${ev.regret}`;\n\t\tcase \"session_sample\":\n\t\t\treturn `sess=${ev.sessionId.slice(0, 8)} tok=${ev.tokens.toLocaleString()} ctx=${Math.round(ev.percent)}%`;\n\t\tcase \"game_ritual_start\":\n\t\tcase \"game_ritual_stage\":\n\t\tcase \"game_ritual_end\":\n\t\tcase \"game_mode_changed\":\n\t\tcase \"game_render\":\n\t\t\treturn `stage=${ev.type}`;\n\t}\n}\n\nfunction formatTs(ts: string): string {\n\ttry {\n\t\tconst d = new Date(ts);\n\t\treturn d.toLocaleTimeString();\n\t} catch {\n\t\treturn ts;\n\t}\n}\n\nexport function EventStream({ events }: EventStreamProps): React.ReactElement {\n\tconst [filter, setFilter] = useState(\"all\");\n\tconst [expanded, setExpanded] = useState(null);\n\n\tconst filtered = useMemo(() => {\n\t\tconst list =\n\t\t\tfilter === \"all\" ? events : events.filter((e) => e.type === filter);\n\t\t// Newest first; render only the last RENDER_WINDOW to keep DOM light.\n\t\treturn list.slice(-RENDER_WINDOW).reverse();\n\t}, [events, filter]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{FILTER_TYPES.map((t) => (\n\t\t\t\t\t setFilter(t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t === \"all\" ? \"all\" : t.replace(/_/g, \" \")}\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\t{events.length} buffered\n\t\t\t
\n\t\t\t
    \n\t\t\t\t{filtered.length === 0 && (\n\t\t\t\t\t
  • No events yet.
  • \n\t\t\t\t)}\n\t\t\t\t{filtered.map((ev, idx) => {\n\t\t\t\t\tconst cls = TYPE_COLORS[ev.type] ?? \"ev-default\";\n\t\t\t\t\treturn (\n\t\t\t\t\t\t setExpanded(expanded === idx ? null : idx)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formatTs(ev.ts)}\n\t\t\t\t\t\t\t{ev.type}\n\t\t\t\t\t\t\t{summarize(ev)}\n\t\t\t\t\t\t\t{expanded === idx && (\n\t\t\t\t\t\t\t\t
    {JSON.stringify(ev, null, 2)}
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/EventCategoryFilter.tsx\n *\n * Category-level filter chips for the Events tab. Filters SSE events by\n * category: all / compact / recall / config / crew / game.\n */\n\nimport type React from \"react\";\n\nexport type EventCategory =\n\t| \"all\"\n\t| \"compact\"\n\t| \"recall\"\n\t| \"config\"\n\t| \"crew\"\n\t| \"game\";\n\nconst CATEGORIES: readonly EventCategory[] = [\n\t\"all\",\n\t\"compact\",\n\t\"recall\",\n\t\"config\",\n\t\"crew\",\n\t\"game\",\n] as const;\n\nexport interface EventCategoryFilterProps {\n\t/** Currently active category. */\n\tactive: EventCategory;\n\t/** Called when the user selects a category. */\n\tonFilter: (category: EventCategory) => void;\n}\n\nexport function EventCategoryFilter({\n\tactive,\n\tonFilter,\n}: EventCategoryFilterProps): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t{CATEGORIES.map((cat) => (\n\t\t\t\t onFilter(cat)}\n\t\t\t\t\taria-pressed={active === cat}\n\t\t\t\t>\n\t\t\t\t\t{cat}\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/tabs/EventsTab.tsx — Events tab (C1).\n *\n * Live SSE event stream via useSSE + EventStream with category filter chips.\n * Shows connection status + event count. Category filter uses the existing\n * EventCategoryFilter component to filter by all/compact/recall/config/crew/game.\n */\n\nimport type React from \"react\";\nimport { useState, useMemo } from \"react\";\nimport type { SseEvent } from \"@contracts\";\nimport { useSSE } from \"../hooks/useSSE\";\nimport { EventStream } from \"../components/EventStream\";\nimport {\n\tEventCategoryFilter,\n\ttype EventCategory,\n} from \"../components/EventCategoryFilter\";\n\nconst COMPACT_TYPES = new Set([\n\t\"compact_start\",\n\t\"compact_end\",\n\t\"compact_trigger\",\n\t\"compact_skip\",\n]);\nconst CONFIG_TYPES = new Set([\n\t\"config_updated\",\n\t\"config_preset\",\n\t\"tier_changed\",\n\t\"model_changed\",\n\t\"pressure_lifted\",\n\t\"anchors_updated\",\n\t\"checkpoint_persisted\",\n]);\nconst CREW_TYPES = new Set([\n\t\"crew_presence_changed\",\n\t\"crew_turn_changed\",\n\t\"crew_bandit_chosen\",\n]);\nconst GAME_TYPES = new Set([\n\t\"game_ritual_start\",\n\t\"game_ritual_stage\",\n\t\"game_ritual_end\",\n\t\"game_mode_changed\",\n\t\"game_render\",\n]);\n\nfunction matchesCategory(ev: SseEvent, cat: EventCategory): boolean {\n\tif (cat === \"all\") return true;\n\tconst t = ev.type;\n\tif (cat === \"compact\") return COMPACT_TYPES.has(t);\n\tif (cat === \"recall\") return t === \"recall_inject\";\n\tif (cat === \"config\") return CONFIG_TYPES.has(t);\n\tif (cat === \"crew\") return CREW_TYPES.has(t);\n\treturn GAME_TYPES.has(t); // cat === \"game\"\n}\n\nexport default function EventsTab(): React.ReactElement {\n\tconst { events, status, eventCount } = useSSE();\n\tconst [category, setCategory] = useState(\"all\");\n\n\tconst filtered = useMemo(\n\t\t() => events.filter((e) => matchesCategory(e, category)),\n\t\t[events, category],\n\t);\n\n\tconst statusCls = `sse-status sse-${status}`;\n\tconst statusLabel =\n\t\tstatus === \"connected\"\n\t\t\t? \"connected\"\n\t\t\t: status === \"connecting\"\n\t\t\t\t? \"connecting…\"\n\t\t\t\t: status === \"error\"\n\t\t\t\t\t? \"error\"\n\t\t\t\t\t: \"disconnected\";\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{statusLabel}\n\t\t\t\t\n\t\t\t\t{eventCount} events received\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n"],"names":["TYPE_COLORS","FILTER_TYPES","summarize","ev","formatTs","ts","EventStream","events","filter","setFilter","useState","expanded","setExpanded","filtered","useMemo","e","jsxs","t","jsx","idx","cls","CATEGORIES","EventCategoryFilter","active","onFilter","cat","COMPACT_TYPES","CONFIG_TYPES","CREW_TYPES","GAME_TYPES","matchesCategory","EventsTab","status","eventCount","useSSE","category","setCategory","statusCls","statusLabel"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EventsTab-Daoh3-KJ.js","sources":["../../src/components/EventStream.tsx","../../src/components/EventCategoryFilter.tsx","../../src/tabs/EventsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/EventStream.tsx — SSE event list with filters.\n *\n * Type badge colored by event type. Timestamp + expandable detail row.\n * Type filter chips (all + per-type). Virtualization: manual windowing for\n * 500+ events (render last N visible).\n */\n\nimport type React from \"react\";\nimport { useState, useMemo } from \"react\";\nimport type { SseEvent } from \"@contracts\";\n\nexport interface EventStreamProps {\n\tevents: SseEvent[];\n}\n\nconst TYPE_COLORS: Record = {\n\tcompact_start: \"ev-compact\",\n\tcompact_end: \"ev-compact\",\n\tcompact_trigger: \"ev-trigger\",\n\tcompact_skip: \"ev-trigger\",\n\ttier_changed: \"ev-tier\",\n\tmodel_changed: \"ev-tier\",\n\tpressure_lifted: \"ev-tier\",\n\tcheckpoint_persisted: \"ev-checkpoint\",\n\trecall_inject: \"ev-recall\",\n\tanchors_updated: \"ev-recall\",\n\tconfig_updated: \"ev-config\",\n\tconfig_preset: \"ev-config\",\n\tcrew_presence_changed: \"ev-crew\",\n\tcrew_turn_changed: \"ev-crew\",\n\tcrew_bandit_chosen: \"ev-crew\",\n\tsession_sample: \"ev-recall\",\n\tgame_ritual_start: \"ev-game\",\n\tgame_ritual_stage: \"ev-game\",\n\tgame_ritual_end: \"ev-game\",\n\tgame_mode_changed: \"ev-game\",\n\tgame_render: \"ev-game\",\n};\n\n// Filterable event types (spec: compact_start/end, recall_inject, checkpoint_persisted + all).\nconst FILTER_TYPES = [\n\t\"all\",\n\t\"compact_start\",\n\t\"compact_end\",\n\t\"recall_inject\",\n\t\"checkpoint_persisted\",\n] as const;\ntype FilterType = (typeof FILTER_TYPES)[number];\n\nconst RENDER_WINDOW = 200; // render last 200 to keep DOM light under 500+ events\n\nfunction summarize(ev: SseEvent): string {\n\tswitch (ev.type) {\n\t\tcase \"compact_start\":\n\t\t\treturn `trigger=${ev.trigger} session=${ev.sessionId.slice(0, 8)}`;\n\t\tcase \"compact_end\":\n\t\t\treturn `freed=${ev.tokensFreed} ok=${ev.success} cp=${ev.checkpointId.slice(0, 8)}`;\n\t\tcase \"compact_trigger\":\n\t\t\treturn `pressure=${ev.pressure}% threshold=${ev.threshold}% armed=${ev.armed}`;\n\t\tcase \"compact_skip\":\n\t\t\treturn `reason=${ev.reason}`;\n\t\tcase \"tier_changed\":\n\t\t\treturn `${ev.from} → ${ev.to} ctx=${ev.contextPct}%`;\n\t\tcase \"model_changed\":\n\t\t\treturn `${ev.providerName}/${ev.model}`;\n\t\tcase \"pressure_lifted\":\n\t\t\treturn `${ev.beforePct}% → ${ev.afterPct}%`;\n\t\tcase \"checkpoint_persisted\":\n\t\t\treturn `cp=${ev.checkpointId.slice(0, 8)} sessionTok=${ev.sessionTokens}`;\n\t\tcase \"recall_inject\":\n\t\t\treturn `q=\"${ev.query.slice(0, 40)}\" chunks=${ev.chunks} tok=${ev.tokens}`;\n\t\tcase \"anchors_updated\":\n\t\t\treturn `count=${ev.count} pinned=${ev.pinned}`;\n\t\tcase \"config_updated\":\n\t\t\treturn `key=${ev.key}`;\n\t\tcase \"config_preset\":\n\t\t\treturn `preset=${ev.preset}`;\n\t\tcase \"crew_presence_changed\":\n\t\t\treturn `agents=${ev.activeAgents} turn=${ev.currentTurn}`;\n\t\tcase \"crew_turn_changed\":\n\t\t\treturn `turn=${ev.turnIndex} agent=${ev.agentName}`;\n\t\tcase \"crew_bandit_chosen\":\n\t\t\treturn `agent=${ev.chosenAgent} score=${ev.score} regret=${ev.regret}`;\n\t\tcase \"session_sample\":\n\t\t\treturn `sess=${ev.sessionId.slice(0, 8)} tok=${ev.tokens.toLocaleString()} ctx=${Math.round(ev.percent)}%`;\n\t\tcase \"game_ritual_start\":\n\t\tcase \"game_ritual_stage\":\n\t\tcase \"game_ritual_end\":\n\t\tcase \"game_mode_changed\":\n\t\tcase \"game_render\":\n\t\t\treturn `stage=${ev.type}`;\n\t}\n}\n\nfunction formatTs(ts: string): string {\n\ttry {\n\t\tconst d = new Date(ts);\n\t\treturn d.toLocaleTimeString();\n\t} catch {\n\t\treturn ts;\n\t}\n}\n\nexport function EventStream({ events }: EventStreamProps): React.ReactElement {\n\tconst [filter, setFilter] = useState(\"all\");\n\tconst [expanded, setExpanded] = useState(null);\n\n\tconst filtered = useMemo(() => {\n\t\tconst list =\n\t\t\tfilter === \"all\" ? events : events.filter((e) => e.type === filter);\n\t\t// Newest first; render only the last RENDER_WINDOW to keep DOM light.\n\t\treturn list.slice(-RENDER_WINDOW).reverse();\n\t}, [events, filter]);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{FILTER_TYPES.map((t) => (\n\t\t\t\t\t setFilter(t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t === \"all\" ? \"all\" : t.replace(/_/g, \" \")}\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\t{events.length} buffered\n\t\t\t
\n\t\t\t
    \n\t\t\t\t{filtered.length === 0 && (\n\t\t\t\t\t
  • No events yet.
  • \n\t\t\t\t)}\n\t\t\t\t{filtered.map((ev, idx) => {\n\t\t\t\t\tconst cls = TYPE_COLORS[ev.type] ?? \"ev-default\";\n\t\t\t\t\treturn (\n\t\t\t\t\t\t setExpanded(expanded === idx ? null : idx)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formatTs(ev.ts)}\n\t\t\t\t\t\t\t{ev.type}\n\t\t\t\t\t\t\t{summarize(ev)}\n\t\t\t\t\t\t\t{expanded === idx && (\n\t\t\t\t\t\t\t\t
    {JSON.stringify(ev, null, 2)}
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/EventCategoryFilter.tsx\n *\n * Category-level filter chips for the Events tab. Filters SSE events by\n * category: all / compact / recall / config / crew / game.\n */\n\nimport type React from \"react\";\n\nexport type EventCategory =\n\t| \"all\"\n\t| \"compact\"\n\t| \"recall\"\n\t| \"config\"\n\t| \"crew\"\n\t| \"game\";\n\nconst CATEGORIES: readonly EventCategory[] = [\n\t\"all\",\n\t\"compact\",\n\t\"recall\",\n\t\"config\",\n\t\"crew\",\n\t\"game\",\n] as const;\n\nexport interface EventCategoryFilterProps {\n\t/** Currently active category. */\n\tactive: EventCategory;\n\t/** Called when the user selects a category. */\n\tonFilter: (category: EventCategory) => void;\n}\n\nexport function EventCategoryFilter({\n\tactive,\n\tonFilter,\n}: EventCategoryFilterProps): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t{CATEGORIES.map((cat) => (\n\t\t\t\t onFilter(cat)}\n\t\t\t\t\taria-pressed={active === cat}\n\t\t\t\t>\n\t\t\t\t\t{cat}\n\t\t\t\t\n\t\t\t))}\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/tabs/EventsTab.tsx — Events tab (C1).\n *\n * Live SSE event stream via useSSE + EventStream with category filter chips.\n * Shows connection status + event count. Category filter uses the existing\n * EventCategoryFilter component to filter by all/compact/recall/config/crew/game.\n */\n\nimport type React from \"react\";\nimport { useState, useMemo } from \"react\";\nimport type { SseEvent } from \"@contracts\";\nimport { useSSE } from \"../hooks/useSSE\";\nimport { EventStream } from \"../components/EventStream\";\nimport {\n\tEventCategoryFilter,\n\ttype EventCategory,\n} from \"../components/EventCategoryFilter\";\n\nconst COMPACT_TYPES = new Set([\n\t\"compact_start\",\n\t\"compact_end\",\n\t\"compact_trigger\",\n\t\"compact_skip\",\n]);\nconst CONFIG_TYPES = new Set([\n\t\"config_updated\",\n\t\"config_preset\",\n\t\"tier_changed\",\n\t\"model_changed\",\n\t\"pressure_lifted\",\n\t\"anchors_updated\",\n\t\"checkpoint_persisted\",\n]);\nconst CREW_TYPES = new Set([\n\t\"crew_presence_changed\",\n\t\"crew_turn_changed\",\n\t\"crew_bandit_chosen\",\n]);\nconst GAME_TYPES = new Set([\n\t\"game_ritual_start\",\n\t\"game_ritual_stage\",\n\t\"game_ritual_end\",\n\t\"game_mode_changed\",\n\t\"game_render\",\n]);\n\nfunction matchesCategory(ev: SseEvent, cat: EventCategory): boolean {\n\tif (cat === \"all\") return true;\n\tconst t = ev.type;\n\tif (cat === \"compact\") return COMPACT_TYPES.has(t);\n\tif (cat === \"recall\") return t === \"recall_inject\";\n\tif (cat === \"config\") return CONFIG_TYPES.has(t);\n\tif (cat === \"crew\") return CREW_TYPES.has(t);\n\treturn GAME_TYPES.has(t); // cat === \"game\"\n}\n\nexport default function EventsTab(): React.ReactElement {\n\tconst { events, status, eventCount } = useSSE();\n\tconst [category, setCategory] = useState(\"all\");\n\n\tconst filtered = useMemo(\n\t\t() => events.filter((e) => matchesCategory(e, category)),\n\t\t[events, category],\n\t);\n\n\tconst statusCls = `sse-status sse-${status}`;\n\tconst statusLabel =\n\t\tstatus === \"connected\"\n\t\t\t? \"connected\"\n\t\t\t: status === \"connecting\"\n\t\t\t\t? \"connecting…\"\n\t\t\t\t: status === \"error\"\n\t\t\t\t\t? \"error\"\n\t\t\t\t\t: \"disconnected\";\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{statusLabel}\n\t\t\t\t\n\t\t\t\t{eventCount} events received\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n"],"names":["TYPE_COLORS","FILTER_TYPES","summarize","ev","formatTs","ts","EventStream","events","filter","setFilter","useState","expanded","setExpanded","filtered","useMemo","e","jsxs","t","jsx","idx","cls","CATEGORIES","EventCategoryFilter","active","onFilter","cat","COMPACT_TYPES","CONFIG_TYPES","CREW_TYPES","GAME_TYPES","matchesCategory","EventsTab","status","eventCount","useSSE","category","setCategory","statusCls","statusLabel"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/GameTab-Jzsc4yeY.js b/extensions/dashboard-client/dist/assets/GameTab-Cyy2Z1Ro.js similarity index 95% rename from extensions/dashboard-client/dist/assets/GameTab-Jzsc4yeY.js rename to extensions/dashboard-client/dist/assets/GameTab-Cyy2Z1Ro.js index b0afed3..fe3451b 100644 --- a/extensions/dashboard-client/dist/assets/GameTab-Jzsc4yeY.js +++ b/extensions/dashboard-client/dist/assets/GameTab-Cyy2Z1Ro.js @@ -1,2 +1,2 @@ -import{r as n,g as m,h as I,j as e,d as $}from"./index-CqLN7STl.js";import{A as k}from"./AchievementTiles-DZp_xQOW.js";function g(s){return(Math.round(s*10)/10).toString()+"%"}function b(s){return s!=null?new Date(s).toLocaleString():"—"}function M(s){return s&&typeof s=="object"?s:{}}function F(s){return s.split("/").pop()||s}function p({title:s,rows:h,badge:i,renderValue:v}){return e.jsxs("div",{className:"lb-card",children:[e.jsxs("h3",{children:[s,i]}),h.length===0?e.jsx("div",{className:"lb-empty",children:"—"}):e.jsx("table",{children:e.jsx("tbody",{children:h.map((o,x)=>e.jsxs("tr",{children:[e.jsx("td",{title:o.repo_root,children:F(o.repo_root)}),e.jsx("td",{className:"num",children:v(o)})]},`${o.repo_root}-${x}`))})})]})}function B(){const[s,h]=n.useState({}),[i,v]=n.useState(0),[o,x]=n.useState([]),[T,R]=n.useState(!1),[_,G]=n.useState(!0),[w,N]=n.useState(null),j=n.useRef(0),y=n.useCallback(async()=>{try{const[t,a,c,l,D,H]=await Promise.all([m({metric:"cache",limit:25}),m({metric:"dedupe",limit:25}),m({metric:"turns",limit:25}),m({metric:"mega_cache",limit:25}),m({metric:"repos",limit:1}),I()]),E=l.find(f=>f.ts>j.current&&f.value>100);j.current>0&&E&&(N(`oopsie! cache went to ${Math.round(E.value)}% — MEGA CACHE 🥧`),setTimeout(()=>N(null),4e3)),l.length>0&&(j.current=Math.max(...l.map(f=>f.ts))),h({cache:t,dedupe:a,turns:c,mega_cache:l}),v(D[0]?.value??0),x(H)}catch{}finally{G(!1)}},[]);n.useEffect(()=>{let t=!0;const a=async()=>{t&&await y()};a();const c=setInterval(()=>void a(),15e3);return()=>{t=!1,clearInterval(c)}},[y]),n.useEffect(()=>{let t=!0;const a=async()=>{try{const l=await $();t&&(R(!!l.game_mode_on),l.theme&&(document.documentElement.dataset.theme=l.theme))}catch{}};a();const c=setInterval(()=>void a(),15e3);return()=>{t=!1,clearInterval(c)}},[]);const S=s.mega_cache??[];let r=null,d=null;for(const t of S){(r==null||t.value>r)&&(r=t.value);const a=M(t.meta),c=a.firstSeenTs??a.firstSeen??t.ts;(d==null||c100,u=s.turns??[],L=u.reduce((t,a)=>Math.max(t,a.value),0),V=Math.floor(Math.log2(L+1))+1,C=(s.cache?.length??0)>0||(s.dedupe?.length??0)>0||u.length>0||S.length>0||i>0;return e.jsxs("div",{className:`game-tab${T?" game-mode-on":""}`,children:[w!=null&&e.jsx("div",{className:"mega-cache-toast show",children:w}),A&&e.jsxs("div",{className:"mega-cache-banner",children:["🥧"," MEGA CACHE! peak ",g(r)," — first reached ",b(d)]}),A&&e.jsxs("div",{className:"achievement-tile unlocked",children:["🏆"," Opie's Wild Ride",e.jsxs("span",{className:"ach-detail",children:["best ",g(r)," · first ",b(d)]})]}),e.jsx("h2",{children:"High Scores"}),!C&&!_&&e.jsx("div",{className:"game-empty",children:"No scores yet — run a session with game mode on."}),C&&e.jsxs("div",{className:"game-leaderboards",children:[e.jsx(p,{title:"Cache %",rows:s.cache??[],renderValue:t=>g(t.value)}),e.jsx(p,{title:"Dedupe (collapsed)",rows:s.dedupe??[],renderValue:t=>t.value.toLocaleString()}),e.jsx(p,{title:"Turns",rows:u,badge:u.length>0?e.jsxs("span",{className:"lvl-badge",children:["LVL ",V]}):void 0,renderValue:t=>t.value.toLocaleString()}),e.jsx(p,{title:"MEGA CACHE trophies",rows:S,renderValue:t=>e.jsxs(e.Fragment,{children:[g(t.value),e.jsx("span",{className:"lb-meta",children:b(M(t.meta).firstSeenTs??M(t.meta).firstSeen??t.ts)})]})})]}),i>0&&e.jsx("div",{className:"repos-badge-line",children:e.jsxs("span",{className:"repos-badge",children:[i," repos"]})}),e.jsx("h3",{children:"Achievements"}),e.jsx(k,{achievements:o})]})}export{B as default}; -//# sourceMappingURL=GameTab-Jzsc4yeY.js.map +import{r as n,h as m,i as I,j as e,d as $}from"./index-CqpO7WrQ.js";import{A as k}from"./AchievementTiles-CPBeKs-w.js";function g(s){return(Math.round(s*10)/10).toString()+"%"}function b(s){return s!=null?new Date(s).toLocaleString():"—"}function M(s){return s&&typeof s=="object"?s:{}}function F(s){return s.split("/").pop()||s}function p({title:s,rows:h,badge:i,renderValue:v}){return e.jsxs("div",{className:"lb-card",children:[e.jsxs("h3",{children:[s,i]}),h.length===0?e.jsx("div",{className:"lb-empty",children:"—"}):e.jsx("table",{children:e.jsx("tbody",{children:h.map((o,x)=>e.jsxs("tr",{children:[e.jsx("td",{title:o.repo_root,children:F(o.repo_root)}),e.jsx("td",{className:"num",children:v(o)})]},`${o.repo_root}-${x}`))})})]})}function B(){const[s,h]=n.useState({}),[i,v]=n.useState(0),[o,x]=n.useState([]),[T,R]=n.useState(!1),[_,G]=n.useState(!0),[w,N]=n.useState(null),j=n.useRef(0),y=n.useCallback(async()=>{try{const[t,a,c,l,D,H]=await Promise.all([m({metric:"cache",limit:25}),m({metric:"dedupe",limit:25}),m({metric:"turns",limit:25}),m({metric:"mega_cache",limit:25}),m({metric:"repos",limit:1}),I()]),E=l.find(f=>f.ts>j.current&&f.value>100);j.current>0&&E&&(N(`oopsie! cache went to ${Math.round(E.value)}% — MEGA CACHE 🥧`),setTimeout(()=>N(null),4e3)),l.length>0&&(j.current=Math.max(...l.map(f=>f.ts))),h({cache:t,dedupe:a,turns:c,mega_cache:l}),v(D[0]?.value??0),x(H)}catch{}finally{G(!1)}},[]);n.useEffect(()=>{let t=!0;const a=async()=>{t&&await y()};a();const c=setInterval(()=>void a(),15e3);return()=>{t=!1,clearInterval(c)}},[y]),n.useEffect(()=>{let t=!0;const a=async()=>{try{const l=await $();t&&(R(!!l.game_mode_on),l.theme&&(document.documentElement.dataset.theme=l.theme))}catch{}};a();const c=setInterval(()=>void a(),15e3);return()=>{t=!1,clearInterval(c)}},[]);const S=s.mega_cache??[];let r=null,d=null;for(const t of S){(r==null||t.value>r)&&(r=t.value);const a=M(t.meta),c=a.firstSeenTs??a.firstSeen??t.ts;(d==null||c100,u=s.turns??[],L=u.reduce((t,a)=>Math.max(t,a.value),0),V=Math.floor(Math.log2(L+1))+1,C=(s.cache?.length??0)>0||(s.dedupe?.length??0)>0||u.length>0||S.length>0||i>0;return e.jsxs("div",{className:`game-tab${T?" game-mode-on":""}`,children:[w!=null&&e.jsx("div",{className:"mega-cache-toast show",children:w}),A&&e.jsxs("div",{className:"mega-cache-banner",children:["🥧"," MEGA CACHE! peak ",g(r)," — first reached ",b(d)]}),A&&e.jsxs("div",{className:"achievement-tile unlocked",children:["🏆"," Opie's Wild Ride",e.jsxs("span",{className:"ach-detail",children:["best ",g(r)," · first ",b(d)]})]}),e.jsx("h2",{children:"High Scores"}),!C&&!_&&e.jsx("div",{className:"game-empty",children:"No scores yet — run a session with game mode on."}),C&&e.jsxs("div",{className:"game-leaderboards",children:[e.jsx(p,{title:"Cache %",rows:s.cache??[],renderValue:t=>g(t.value)}),e.jsx(p,{title:"Dedupe (collapsed)",rows:s.dedupe??[],renderValue:t=>t.value.toLocaleString()}),e.jsx(p,{title:"Turns",rows:u,badge:u.length>0?e.jsxs("span",{className:"lvl-badge",children:["LVL ",V]}):void 0,renderValue:t=>t.value.toLocaleString()}),e.jsx(p,{title:"MEGA CACHE trophies",rows:S,renderValue:t=>e.jsxs(e.Fragment,{children:[g(t.value),e.jsx("span",{className:"lb-meta",children:b(M(t.meta).firstSeenTs??M(t.meta).firstSeen??t.ts)})]})})]}),i>0&&e.jsx("div",{className:"repos-badge-line",children:e.jsxs("span",{className:"repos-badge",children:[i," repos"]})}),e.jsx("h3",{children:"Achievements"}),e.jsx(k,{achievements:o})]})}export{B as default}; +//# sourceMappingURL=GameTab-Cyy2Z1Ro.js.map diff --git a/extensions/dashboard-client/dist/assets/GameTab-Jzsc4yeY.js.map b/extensions/dashboard-client/dist/assets/GameTab-Cyy2Z1Ro.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/GameTab-Jzsc4yeY.js.map rename to extensions/dashboard-client/dist/assets/GameTab-Cyy2Z1Ro.js.map index 8e8324e..73b1905 100644 --- a/extensions/dashboard-client/dist/assets/GameTab-Jzsc4yeY.js.map +++ b/extensions/dashboard-client/dist/assets/GameTab-Cyy2Z1Ro.js.map @@ -1 +1 @@ -{"version":3,"file":"GameTab-Jzsc4yeY.js","sources":["../../src/tabs/GameTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/GameTab.tsx — Game tab (NEW).\n *\n * Renders:\n * (1) MEGA CACHE banner (animated gradient, shown when any mega_cache > 100)\n * (2) Opie unlock tile (shown when mega_cache > 100)\n * (3) High Scores header\n * (4) 4 leaderboards in 2×2 grid: Cache %, Dedupe, Turns (LVL badge),\n * MEGA CACHE trophies (firstSeen date meta)\n * (5) Repos count badge via fetchGameScores({metric:'repos',limit:1})\n * (6) Achievements sub-section (AchievementTiles shared component)\n * (7) Game empty state\n * Polls scores + achievements every 15s, game-state every 15s.\n * Applies data-theme accent vars when game_mode_on.\n */\n\nimport type React from \"react\";\nimport { useState, useEffect, useCallback, useRef } from \"react\";\nimport type { GameScoreRow, AchievementRow } from \"@contracts\";\nimport { fetchGameScores, fetchAchievements, fetchGameState } from \"../api/client\";\nimport { AchievementTiles } from \"../components/AchievementTiles\";\n\n/** Actual flat game state shape from the server (NOT the nested contract). */\ninterface FlatGameState {\n\tgame_mode_on: boolean;\n\ttheme: string;\n\ttui_display_mode: \"full\" | \"minimal\";\n}\n\n/** Metadata object inside a mega_cache GameScoreRow. */\ninterface TrophyMeta {\n\tfirstSeenTs?: number;\n\tfirstSeen?: number;\n}\n\n/* ── Format helpers (matching html.ts logic) ─────────────────────────── */\n\nfunction fmtPct(v: number): string {\n\treturn (Math.round(v * 10) / 10).toString() + \"%\";\n}\n\nfunction fmtDate(ts: number | null | undefined): string {\n\treturn ts != null ? new Date(ts).toLocaleString() : \"\\u2014\";\n}\n\nfunction trophyMeta(m: unknown): TrophyMeta {\n\treturn m && typeof m === \"object\" ? (m as TrophyMeta) : {};\n}\n\nfunction repoBasename(path: string): string {\n\treturn path.split(\"/\").pop() || path;\n}\n\n/* ── Leaderboard card ────────────────────────────────────────────────── */\n\ninterface LeaderboardCardProps {\n\ttitle: string;\n\trows: GameScoreRow[];\n\tbadge?: React.ReactNode;\n\trenderValue: (r: GameScoreRow) => React.ReactNode;\n}\n\nfunction LeaderboardCard({\n\ttitle,\n\trows,\n\tbadge,\n\trenderValue,\n}: LeaderboardCardProps): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t

\n\t\t\t\t{title}\n\t\t\t\t{badge}\n\t\t\t

\n\t\t\t{rows.length === 0 ? (\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{rows.map((r, i) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t
{repoBasename(r.repo_root)}{renderValue(r)}
\n\t\t\t)}\n\t\t
\n\t);\n}\n\n/* ── Main GameTab component ──────────────────────────────────────────── */\n\nexport default function GameTab(): React.ReactElement {\n\tconst [scores, setScores] = useState<\n\t\tRecord\n\t>({});\n\tconst [reposCount, setReposCount] = useState(0);\n\tconst [achievements, setAchievements] = useState([]);\n\tconst [gameModeOn, setGameModeOn] = useState(false);\n\tconst [loading, setLoading] = useState(true);\n\tconst [megaToast, setMegaToast] = useState(null);\n\tconst lastMegaTsRef = useRef(0);\n\n\tconst fetchAll = useCallback(async (): Promise => {\n\t\ttry {\n\t\t\tconst [cache, dedupe, turns, megaCache, repos, ach] =\n\t\t\t\tawait Promise.all([\n\t\t\t\t\tfetchGameScores({ metric: \"cache\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"dedupe\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"turns\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"mega_cache\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"repos\", limit: 1 }),\n\t\t\t\t\tfetchAchievements(),\n\t\t\t\t]);\n\n\t\t\t/* Mega-cache toast: new row with value > 100 since last poll */\n\t\t\tconst newRow = megaCache.find(\n\t\t\t\t(r) => r.ts > lastMegaTsRef.current && r.value > 100,\n\t\t\t);\n\t\t\tif (lastMegaTsRef.current > 0 && newRow) {\n\t\t\t\tsetMegaToast(\n\t\t\t\t\t`oopsie! cache went to ${Math.round(newRow.value)}% — MEGA CACHE \\uD83E\\uDD67`,\n\t\t\t\t);\n\t\t\t\tsetTimeout(() => setMegaToast(null), 4000);\n\t\t\t}\n\t\t\tif (megaCache.length > 0) {\n\t\t\t\tlastMegaTsRef.current = Math.max(\n\t\t\t\t\t...megaCache.map((r) => r.ts),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetScores({ cache, dedupe, turns, mega_cache: megaCache });\n\t\t\tsetReposCount(repos[0]?.value ?? 0);\n\t\t\tsetAchievements(ach);\n\t\t} catch {\n\t\t\t/* non-fatal */\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t}\n\t}, []);\n\n\t/* Poll scores + achievements every 15s. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\tif (active) await fetchAll();\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 15000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, [fetchAll]);\n\n\t/* Poll game state every 15s for styling. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\ttry {\n\t\t\t\tconst gs = (await fetchGameState()) as unknown as FlatGameState;\n\t\t\t\tif (active) {\n\t\t\t\t\tsetGameModeOn(!!gs.game_mode_on);\n\t\t\t\t\tif (gs.theme)\n\t\t\t\t\t\tdocument.documentElement.dataset.theme = gs.theme;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t/* non-fatal */\n\t\t\t}\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 15000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, []);\n\n\t/* Compute mega-cache banner data */\n\tconst megaRows = scores.mega_cache ?? [];\n\tlet bestMega: number | null = null;\n\tlet firstSeen: number | null = null;\n\tfor (const r of megaRows) {\n\t\tif (bestMega == null || r.value > bestMega) bestMega = r.value;\n\t\tconst m = trophyMeta(r.meta);\n\t\tconst fs = m.firstSeenTs ?? m.firstSeen ?? r.ts;\n\t\tif (firstSeen == null || fs < firstSeen) firstSeen = fs;\n\t}\n\tconst showMega = bestMega != null && bestMega > 100;\n\n\t/* Turns level badge */\n\tconst turnsRows = scores.turns ?? [];\n\tconst maxTurns = turnsRows.reduce((mx, r) => Math.max(mx, r.value), 0);\n\tconst lvl = Math.floor(Math.log2(maxTurns + 1)) + 1;\n\n\t/* Game empty state */\n\tconst hasData =\n\t\t(scores.cache?.length ?? 0) > 0 ||\n\t\t(scores.dedupe?.length ?? 0) > 0 ||\n\t\tturnsRows.length > 0 ||\n\t\tmegaRows.length > 0 ||\n\t\treposCount > 0;\n\n\treturn (\n\t\t
\n\t\t\t{megaToast != null && (\n\t\t\t\t
{megaToast}
\n\t\t\t)}\n\n\t\t\t{showMega && (\n\t\t\t\t
\n\t\t\t\t\t{\"\\uD83E\\uDD67\"} MEGA CACHE! peak {fmtPct(bestMega!)} — first\n\t\t\t\t\treached {fmtDate(firstSeen)}\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{showMega && (\n\t\t\t\t
\n\t\t\t\t\t{\"\\uD83C\\uDFC6\"} Opie's Wild Ride\n\t\t\t\t\t\n\t\t\t\t\t\tbest {fmtPct(bestMega!)} · first {fmtDate(firstSeen)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t

High Scores

\n\n\t\t\t{!hasData && !loading && (\n\t\t\t\t
\n\t\t\t\t\tNo scores yet — run a session with game mode on.\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{hasData && (\n\t\t\t\t
\n\t\t\t\t\t fmtPct(r.value)}\n\t\t\t\t\t/>\n\t\t\t\t\t r.value.toLocaleString()}\n\t\t\t\t\t/>\n\t\t\t\t\t 0 ? (\n\t\t\t\t\t\t\t\tLVL {lvl}\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\trenderValue={(r) => r.value.toLocaleString()}\n\t\t\t\t\t/>\n\t\t\t\t\t (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{fmtPct(r.value)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{fmtDate(\n\t\t\t\t\t\t\t\t\t\ttrophyMeta(r.meta).firstSeenTs ??\n\t\t\t\t\t\t\t\t\t\t\ttrophyMeta(r.meta).firstSeen ??\n\t\t\t\t\t\t\t\t\t\t\tr.ts,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{reposCount > 0 && (\n\t\t\t\t
\n\t\t\t\t\t{reposCount} repos\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t

Achievements

\n\t\t\t\n\t\t
\n\t);\n}\n"],"names":["fmtPct","v","fmtDate","ts","trophyMeta","m","repoBasename","path","LeaderboardCard","title","rows","badge","renderValue","jsxs","jsx","r","i","GameTab","scores","setScores","useState","reposCount","setReposCount","achievements","setAchievements","gameModeOn","setGameModeOn","loading","setLoading","megaToast","setMegaToast","lastMegaTsRef","useRef","fetchAll","useCallback","cache","dedupe","turns","megaCache","repos","ach","fetchGameScores","fetchAchievements","newRow","useEffect","active","doFetch","timer","gs","fetchGameState","megaRows","bestMega","firstSeen","fs","showMega","turnsRows","maxTurns","mx","lvl","hasData","Fragment","AchievementTiles"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"GameTab-Cyy2Z1Ro.js","sources":["../../src/tabs/GameTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/GameTab.tsx — Game tab (NEW).\n *\n * Renders:\n * (1) MEGA CACHE banner (animated gradient, shown when any mega_cache > 100)\n * (2) Opie unlock tile (shown when mega_cache > 100)\n * (3) High Scores header\n * (4) 4 leaderboards in 2×2 grid: Cache %, Dedupe, Turns (LVL badge),\n * MEGA CACHE trophies (firstSeen date meta)\n * (5) Repos count badge via fetchGameScores({metric:'repos',limit:1})\n * (6) Achievements sub-section (AchievementTiles shared component)\n * (7) Game empty state\n * Polls scores + achievements every 15s, game-state every 15s.\n * Applies data-theme accent vars when game_mode_on.\n */\n\nimport type React from \"react\";\nimport { useState, useEffect, useCallback, useRef } from \"react\";\nimport type { GameScoreRow, AchievementRow } from \"@contracts\";\nimport { fetchGameScores, fetchAchievements, fetchGameState } from \"../api/client\";\nimport { AchievementTiles } from \"../components/AchievementTiles\";\n\n/** Actual flat game state shape from the server (NOT the nested contract). */\ninterface FlatGameState {\n\tgame_mode_on: boolean;\n\ttheme: string;\n\ttui_display_mode: \"full\" | \"minimal\";\n}\n\n/** Metadata object inside a mega_cache GameScoreRow. */\ninterface TrophyMeta {\n\tfirstSeenTs?: number;\n\tfirstSeen?: number;\n}\n\n/* ── Format helpers (matching html.ts logic) ─────────────────────────── */\n\nfunction fmtPct(v: number): string {\n\treturn (Math.round(v * 10) / 10).toString() + \"%\";\n}\n\nfunction fmtDate(ts: number | null | undefined): string {\n\treturn ts != null ? new Date(ts).toLocaleString() : \"\\u2014\";\n}\n\nfunction trophyMeta(m: unknown): TrophyMeta {\n\treturn m && typeof m === \"object\" ? (m as TrophyMeta) : {};\n}\n\nfunction repoBasename(path: string): string {\n\treturn path.split(\"/\").pop() || path;\n}\n\n/* ── Leaderboard card ────────────────────────────────────────────────── */\n\ninterface LeaderboardCardProps {\n\ttitle: string;\n\trows: GameScoreRow[];\n\tbadge?: React.ReactNode;\n\trenderValue: (r: GameScoreRow) => React.ReactNode;\n}\n\nfunction LeaderboardCard({\n\ttitle,\n\trows,\n\tbadge,\n\trenderValue,\n}: LeaderboardCardProps): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t

\n\t\t\t\t{title}\n\t\t\t\t{badge}\n\t\t\t

\n\t\t\t{rows.length === 0 ? (\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{rows.map((r, i) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t
{repoBasename(r.repo_root)}{renderValue(r)}
\n\t\t\t)}\n\t\t
\n\t);\n}\n\n/* ── Main GameTab component ──────────────────────────────────────────── */\n\nexport default function GameTab(): React.ReactElement {\n\tconst [scores, setScores] = useState<\n\t\tRecord\n\t>({});\n\tconst [reposCount, setReposCount] = useState(0);\n\tconst [achievements, setAchievements] = useState([]);\n\tconst [gameModeOn, setGameModeOn] = useState(false);\n\tconst [loading, setLoading] = useState(true);\n\tconst [megaToast, setMegaToast] = useState(null);\n\tconst lastMegaTsRef = useRef(0);\n\n\tconst fetchAll = useCallback(async (): Promise => {\n\t\ttry {\n\t\t\tconst [cache, dedupe, turns, megaCache, repos, ach] =\n\t\t\t\tawait Promise.all([\n\t\t\t\t\tfetchGameScores({ metric: \"cache\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"dedupe\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"turns\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"mega_cache\", limit: 25 }),\n\t\t\t\t\tfetchGameScores({ metric: \"repos\", limit: 1 }),\n\t\t\t\t\tfetchAchievements(),\n\t\t\t\t]);\n\n\t\t\t/* Mega-cache toast: new row with value > 100 since last poll */\n\t\t\tconst newRow = megaCache.find(\n\t\t\t\t(r) => r.ts > lastMegaTsRef.current && r.value > 100,\n\t\t\t);\n\t\t\tif (lastMegaTsRef.current > 0 && newRow) {\n\t\t\t\tsetMegaToast(\n\t\t\t\t\t`oopsie! cache went to ${Math.round(newRow.value)}% — MEGA CACHE \\uD83E\\uDD67`,\n\t\t\t\t);\n\t\t\t\tsetTimeout(() => setMegaToast(null), 4000);\n\t\t\t}\n\t\t\tif (megaCache.length > 0) {\n\t\t\t\tlastMegaTsRef.current = Math.max(\n\t\t\t\t\t...megaCache.map((r) => r.ts),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetScores({ cache, dedupe, turns, mega_cache: megaCache });\n\t\t\tsetReposCount(repos[0]?.value ?? 0);\n\t\t\tsetAchievements(ach);\n\t\t} catch {\n\t\t\t/* non-fatal */\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t}\n\t}, []);\n\n\t/* Poll scores + achievements every 15s. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\tif (active) await fetchAll();\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 15000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, [fetchAll]);\n\n\t/* Poll game state every 15s for styling. */\n\tuseEffect(() => {\n\t\tlet active = true;\n\t\tconst doFetch = async (): Promise => {\n\t\t\ttry {\n\t\t\t\tconst gs = (await fetchGameState()) as unknown as FlatGameState;\n\t\t\t\tif (active) {\n\t\t\t\t\tsetGameModeOn(!!gs.game_mode_on);\n\t\t\t\t\tif (gs.theme)\n\t\t\t\t\t\tdocument.documentElement.dataset.theme = gs.theme;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t/* non-fatal */\n\t\t\t}\n\t\t};\n\t\tvoid doFetch();\n\t\tconst timer = setInterval(() => void doFetch(), 15000);\n\t\treturn () => {\n\t\t\tactive = false;\n\t\t\tclearInterval(timer);\n\t\t};\n\t}, []);\n\n\t/* Compute mega-cache banner data */\n\tconst megaRows = scores.mega_cache ?? [];\n\tlet bestMega: number | null = null;\n\tlet firstSeen: number | null = null;\n\tfor (const r of megaRows) {\n\t\tif (bestMega == null || r.value > bestMega) bestMega = r.value;\n\t\tconst m = trophyMeta(r.meta);\n\t\tconst fs = m.firstSeenTs ?? m.firstSeen ?? r.ts;\n\t\tif (firstSeen == null || fs < firstSeen) firstSeen = fs;\n\t}\n\tconst showMega = bestMega != null && bestMega > 100;\n\n\t/* Turns level badge */\n\tconst turnsRows = scores.turns ?? [];\n\tconst maxTurns = turnsRows.reduce((mx, r) => Math.max(mx, r.value), 0);\n\tconst lvl = Math.floor(Math.log2(maxTurns + 1)) + 1;\n\n\t/* Game empty state */\n\tconst hasData =\n\t\t(scores.cache?.length ?? 0) > 0 ||\n\t\t(scores.dedupe?.length ?? 0) > 0 ||\n\t\tturnsRows.length > 0 ||\n\t\tmegaRows.length > 0 ||\n\t\treposCount > 0;\n\n\treturn (\n\t\t
\n\t\t\t{megaToast != null && (\n\t\t\t\t
{megaToast}
\n\t\t\t)}\n\n\t\t\t{showMega && (\n\t\t\t\t
\n\t\t\t\t\t{\"\\uD83E\\uDD67\"} MEGA CACHE! peak {fmtPct(bestMega!)} — first\n\t\t\t\t\treached {fmtDate(firstSeen)}\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{showMega && (\n\t\t\t\t
\n\t\t\t\t\t{\"\\uD83C\\uDFC6\"} Opie's Wild Ride\n\t\t\t\t\t\n\t\t\t\t\t\tbest {fmtPct(bestMega!)} · first {fmtDate(firstSeen)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t

High Scores

\n\n\t\t\t{!hasData && !loading && (\n\t\t\t\t
\n\t\t\t\t\tNo scores yet — run a session with game mode on.\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{hasData && (\n\t\t\t\t
\n\t\t\t\t\t fmtPct(r.value)}\n\t\t\t\t\t/>\n\t\t\t\t\t r.value.toLocaleString()}\n\t\t\t\t\t/>\n\t\t\t\t\t 0 ? (\n\t\t\t\t\t\t\t\tLVL {lvl}\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\trenderValue={(r) => r.value.toLocaleString()}\n\t\t\t\t\t/>\n\t\t\t\t\t (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{fmtPct(r.value)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{fmtDate(\n\t\t\t\t\t\t\t\t\t\ttrophyMeta(r.meta).firstSeenTs ??\n\t\t\t\t\t\t\t\t\t\t\ttrophyMeta(r.meta).firstSeen ??\n\t\t\t\t\t\t\t\t\t\t\tr.ts,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{reposCount > 0 && (\n\t\t\t\t
\n\t\t\t\t\t{reposCount} repos\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t

Achievements

\n\t\t\t\n\t\t
\n\t);\n}\n"],"names":["fmtPct","v","fmtDate","ts","trophyMeta","m","repoBasename","path","LeaderboardCard","title","rows","badge","renderValue","jsxs","jsx","r","i","GameTab","scores","setScores","useState","reposCount","setReposCount","achievements","setAchievements","gameModeOn","setGameModeOn","loading","setLoading","megaToast","setMegaToast","lastMegaTsRef","useRef","fetchAll","useCallback","cache","dedupe","turns","megaCache","repos","ach","fetchGameScores","fetchAchievements","newRow","useEffect","active","doFetch","timer","gs","fetchGameState","megaRows","bestMega","firstSeen","fs","showMega","turnsRows","maxTurns","mx","lvl","hasData","Fragment","AchievementTiles"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/MetricsTab-D_XnsEYX.js b/extensions/dashboard-client/dist/assets/MetricsTab-CGNXrMzs.js similarity index 98% rename from extensions/dashboard-client/dist/assets/MetricsTab-D_XnsEYX.js rename to extensions/dashboard-client/dist/assets/MetricsTab-CGNXrMzs.js index 0231894..f253d41 100644 --- a/extensions/dashboard-client/dist/assets/MetricsTab-D_XnsEYX.js +++ b/extensions/dashboard-client/dist/assets/MetricsTab-CGNXrMzs.js @@ -1,2 +1,2 @@ -import{j as e,u as o,r as x,e as j,c as N}from"./index-CqLN7STl.js";function i(s){return s>=1e3?`${(s/1e3).toFixed(1)}s`:`${s.toFixed(0)}ms`}function c({value:s,max:a,colorClass:r}){const p=a>0?Math.max(0,Math.min(100,s/a*100)):0;return e.jsx("div",{className:"perf-bar-track",children:e.jsx("div",{className:`perf-bar-fill ${r}`,style:{width:`${p}%`}})})}function _({perf:s}){const a=Math.max(s.turn_latency_ms.p95,s.provider_latency_ms.p95,1),r=Math.max(s.tps.avg,1);return e.jsxs("div",{className:"perf-chart",children:[e.jsxs("div",{className:"perf-header",children:[e.jsx("h3",{children:"Performance"}),e.jsxs("span",{className:"perf-window",children:[s.windowMinutes,"min window · ",s.sampleCount," samples"]})]}),e.jsxs("div",{className:"perf-grid",children:[e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Turn latency p50 / p95"}),e.jsxs("span",{className:"perf-value",children:[i(s.turn_latency_ms.p50)," /"," ",i(s.turn_latency_ms.p95)]}),e.jsx(c,{value:s.turn_latency_ms.p95,max:a,colorClass:"perf-blue"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Provider latency p50 / p95"}),e.jsxs("span",{className:"perf-value",children:[i(s.provider_latency_ms.p50)," /"," ",i(s.provider_latency_ms.p95)]}),e.jsx(c,{value:s.provider_latency_ms.p95,max:a,colorClass:"perf-purple"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Tokens/sec (avg)"}),e.jsx("span",{className:"perf-value",children:s.tps.avg.toFixed(1)}),e.jsx(c,{value:s.tps.avg,max:r,colorClass:"perf-green"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Cache hit (avg / latest)"}),e.jsxs("span",{className:"perf-value",children:[s.cache_hit_pct.avg.toFixed(1),"% /"," ",s.cache_hit_pct.latest.toFixed(1),"%"]}),e.jsx(c,{value:s.cache_hit_pct.avg,max:100,colorClass:"perf-green"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"DB recompute p95"}),e.jsx("span",{className:"perf-value",children:i(s.db_recompute_ms.p95)}),e.jsx(c,{value:s.db_recompute_ms.p95,max:a,colorClass:"perf-yellow"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Disk write p95"}),e.jsx("span",{className:"perf-value",children:i(s.disk_write_ms.p95)}),e.jsx(c,{value:s.disk_write_ms.p95,max:a,colorClass:"perf-yellow"})]})]}),e.jsxs("div",{className:"perf-resources",children:[e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"RSS"}),e.jsxs("span",{className:"perf-value",children:[s.rss_mb.latest.toFixed(0)," MB"]})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Heap"}),e.jsxs("span",{className:"perf-value",children:[s.heap_mb.latest.toFixed(0)," MB"]})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"CPU user"}),e.jsxs("span",{className:"perf-value",children:[(s.cpu_user_ms.latest/1e3).toFixed(1),"s"]})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"CPU sys"}),e.jsxs("span",{className:"perf-value",children:[(s.cpu_sys_ms.latest/1e3).toFixed(1),"s"]})]})]}),s.diag&&e.jsxs("div",{className:"perf-diag",children:[e.jsxs("span",{className:"perf-label",children:["Fast-gate fires: ",s.diag.ctxFastGate]}),e.jsxs("span",{className:"perf-label",children:["Live trim fires: ",s.diag.liveTrimFires]}),e.jsxs("span",{className:"perf-label",children:["Live trim replays: ",s.diag.liveTrimReplays]})]})]})}function t(s){return s==null?"—":s>=100?`${Math.round(s)}ms`:`${s.toFixed(1)}ms`}function n(s,a){return s==null||typeof s!="number"?"—":s.toFixed(a)}function u(s){return s==null?"—":String(s)}function l({label:s,value:a}){return e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:s}),e.jsx("span",{className:"perf-value",children:a})]})}function d({title:s,children:a}){return e.jsxs("div",{className:"perf-card",children:[e.jsx("h3",{className:"perf-card-title",children:s}),e.jsx("div",{className:"perf-card-body",children:a})]})}function f({perf:s}){const a=`${n(s.cpu_user_ms.latest,1)} / ${n(s.cpu_sys_ms.latest,1)} ms`;return e.jsxs("div",{className:"perf-cards-grid",children:[e.jsxs(d,{title:"Model latency",children:[e.jsx(l,{label:"Turn p50",value:t(s.turn_latency_ms.p50)}),e.jsx(l,{label:"Turn p95",value:t(s.turn_latency_ms.p95)}),e.jsx(l,{label:"Provider p50",value:t(s.provider_latency_ms.p50)}),e.jsx(l,{label:"Provider p95",value:t(s.provider_latency_ms.p95)})]}),e.jsxs(d,{title:"Throughput",children:[e.jsx(l,{label:"TPS (avg)",value:n(s.tps.avg,1)}),e.jsx(l,{label:"Cache hit %",value:`${n(s.cache_hit_pct.avg,1)}%`})]}),e.jsxs(d,{title:"Process",children:[e.jsx(l,{label:"RSS",value:`${n(s.rss_mb.latest,1)} MB`}),e.jsx(l,{label:"Heap",value:`${n(s.heap_mb.latest,1)} MB`}),e.jsx(l,{label:"CPU user / sys",value:a})]}),e.jsxs(d,{title:"Snapshot cost",children:[e.jsx(l,{label:"DB recompute p50",value:t(s.db_recompute_ms.p50)}),e.jsx(l,{label:"DB recompute p95",value:t(s.db_recompute_ms.p95)}),e.jsx(l,{label:"Disk write p50",value:t(s.disk_write_ms.p50)})]}),e.jsxs(d,{title:"TUI lag proxy",children:[e.jsx(l,{label:"Live-trim fires",value:u(s.diag?.liveTrimFires)}),e.jsx(l,{label:"Cache replays",value:u(s.diag?.liveTrimReplays)}),e.jsx(l,{label:"Fast-gate skips",value:u(s.diag?.ctxFastGate)}),e.jsx("span",{className:"perf-card-note",children:"skip vs recompute vs replay cadence"})]})]})}function m({label:s,value:a,title:r}){return e.jsxs("div",{className:"model-field",title:r,children:[e.jsx("span",{className:"model-field-label",children:s}),e.jsx("span",{className:"model-field-value",children:a})]})}function b({name:s,providerName:a,provider:r,inputRate:p,outputRate:h}){const v=a||r||"—";return e.jsxs("div",{className:"model-badge",children:[e.jsx(m,{label:"Model",value:s,title:"The model pi is currently using — its pricing drives the cost figure."}),e.jsx(m,{label:"Provider",value:v,title:"The provider serving the model."}),e.jsx(m,{label:"Input Rate",value:`$${p.toFixed(6)}`,title:"USD per input token, from the model's pricing."}),e.jsx(m,{label:"Output Rate",value:`$${h.toFixed(6)}`,title:"USD per output token, from the model's pricing."})]})}function y(){const{data:s,error:a}=o(x.useCallback(()=>j({minutes:30}),[]),{pollInterval:1e4}),{data:r}=o(x.useCallback(()=>N(),[]),{pollInterval:1e4});return a&&!s?e.jsxs("div",{className:"tab-stub",children:["Error loading perf: ",a.message]}):s?e.jsxs("div",{className:"metrics-tab",children:[r?.model&&e.jsx(b,{name:r.model.name,providerName:r.model.providerName,provider:r.model.provider,inputRate:r.model.inputRate,outputRate:r.model.outputRate}),e.jsx(_,{perf:s}),e.jsx(f,{perf:s}),e.jsxs("div",{className:"perf-footer",children:[s.sampleCount," samples · updated ",s.updatedAt]})]}):e.jsx("div",{className:"tab-stub",children:"Loading perf…"})}export{y as default}; -//# sourceMappingURL=MetricsTab-D_XnsEYX.js.map +import{j as e,u as o,r as x,e as j,c as N}from"./index-CqpO7WrQ.js";function i(s){return s>=1e3?`${(s/1e3).toFixed(1)}s`:`${s.toFixed(0)}ms`}function c({value:s,max:a,colorClass:r}){const p=a>0?Math.max(0,Math.min(100,s/a*100)):0;return e.jsx("div",{className:"perf-bar-track",children:e.jsx("div",{className:`perf-bar-fill ${r}`,style:{width:`${p}%`}})})}function _({perf:s}){const a=Math.max(s.turn_latency_ms.p95,s.provider_latency_ms.p95,1),r=Math.max(s.tps.avg,1);return e.jsxs("div",{className:"perf-chart",children:[e.jsxs("div",{className:"perf-header",children:[e.jsx("h3",{children:"Performance"}),e.jsxs("span",{className:"perf-window",children:[s.windowMinutes,"min window · ",s.sampleCount," samples"]})]}),e.jsxs("div",{className:"perf-grid",children:[e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Turn latency p50 / p95"}),e.jsxs("span",{className:"perf-value",children:[i(s.turn_latency_ms.p50)," /"," ",i(s.turn_latency_ms.p95)]}),e.jsx(c,{value:s.turn_latency_ms.p95,max:a,colorClass:"perf-blue"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Provider latency p50 / p95"}),e.jsxs("span",{className:"perf-value",children:[i(s.provider_latency_ms.p50)," /"," ",i(s.provider_latency_ms.p95)]}),e.jsx(c,{value:s.provider_latency_ms.p95,max:a,colorClass:"perf-purple"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Tokens/sec (avg)"}),e.jsx("span",{className:"perf-value",children:s.tps.avg.toFixed(1)}),e.jsx(c,{value:s.tps.avg,max:r,colorClass:"perf-green"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Cache hit (avg / latest)"}),e.jsxs("span",{className:"perf-value",children:[s.cache_hit_pct.avg.toFixed(1),"% /"," ",s.cache_hit_pct.latest.toFixed(1),"%"]}),e.jsx(c,{value:s.cache_hit_pct.avg,max:100,colorClass:"perf-green"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"DB recompute p95"}),e.jsx("span",{className:"perf-value",children:i(s.db_recompute_ms.p95)}),e.jsx(c,{value:s.db_recompute_ms.p95,max:a,colorClass:"perf-yellow"})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Disk write p95"}),e.jsx("span",{className:"perf-value",children:i(s.disk_write_ms.p95)}),e.jsx(c,{value:s.disk_write_ms.p95,max:a,colorClass:"perf-yellow"})]})]}),e.jsxs("div",{className:"perf-resources",children:[e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"RSS"}),e.jsxs("span",{className:"perf-value",children:[s.rss_mb.latest.toFixed(0)," MB"]})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"Heap"}),e.jsxs("span",{className:"perf-value",children:[s.heap_mb.latest.toFixed(0)," MB"]})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"CPU user"}),e.jsxs("span",{className:"perf-value",children:[(s.cpu_user_ms.latest/1e3).toFixed(1),"s"]})]}),e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:"CPU sys"}),e.jsxs("span",{className:"perf-value",children:[(s.cpu_sys_ms.latest/1e3).toFixed(1),"s"]})]})]}),s.diag&&e.jsxs("div",{className:"perf-diag",children:[e.jsxs("span",{className:"perf-label",children:["Fast-gate fires: ",s.diag.ctxFastGate]}),e.jsxs("span",{className:"perf-label",children:["Live trim fires: ",s.diag.liveTrimFires]}),e.jsxs("span",{className:"perf-label",children:["Live trim replays: ",s.diag.liveTrimReplays]})]})]})}function t(s){return s==null?"—":s>=100?`${Math.round(s)}ms`:`${s.toFixed(1)}ms`}function n(s,a){return s==null||typeof s!="number"?"—":s.toFixed(a)}function u(s){return s==null?"—":String(s)}function l({label:s,value:a}){return e.jsxs("div",{className:"perf-metric",children:[e.jsx("span",{className:"perf-label",children:s}),e.jsx("span",{className:"perf-value",children:a})]})}function d({title:s,children:a}){return e.jsxs("div",{className:"perf-card",children:[e.jsx("h3",{className:"perf-card-title",children:s}),e.jsx("div",{className:"perf-card-body",children:a})]})}function f({perf:s}){const a=`${n(s.cpu_user_ms.latest,1)} / ${n(s.cpu_sys_ms.latest,1)} ms`;return e.jsxs("div",{className:"perf-cards-grid",children:[e.jsxs(d,{title:"Model latency",children:[e.jsx(l,{label:"Turn p50",value:t(s.turn_latency_ms.p50)}),e.jsx(l,{label:"Turn p95",value:t(s.turn_latency_ms.p95)}),e.jsx(l,{label:"Provider p50",value:t(s.provider_latency_ms.p50)}),e.jsx(l,{label:"Provider p95",value:t(s.provider_latency_ms.p95)})]}),e.jsxs(d,{title:"Throughput",children:[e.jsx(l,{label:"TPS (avg)",value:n(s.tps.avg,1)}),e.jsx(l,{label:"Cache hit %",value:`${n(s.cache_hit_pct.avg,1)}%`})]}),e.jsxs(d,{title:"Process",children:[e.jsx(l,{label:"RSS",value:`${n(s.rss_mb.latest,1)} MB`}),e.jsx(l,{label:"Heap",value:`${n(s.heap_mb.latest,1)} MB`}),e.jsx(l,{label:"CPU user / sys",value:a})]}),e.jsxs(d,{title:"Snapshot cost",children:[e.jsx(l,{label:"DB recompute p50",value:t(s.db_recompute_ms.p50)}),e.jsx(l,{label:"DB recompute p95",value:t(s.db_recompute_ms.p95)}),e.jsx(l,{label:"Disk write p50",value:t(s.disk_write_ms.p50)})]}),e.jsxs(d,{title:"TUI lag proxy",children:[e.jsx(l,{label:"Live-trim fires",value:u(s.diag?.liveTrimFires)}),e.jsx(l,{label:"Cache replays",value:u(s.diag?.liveTrimReplays)}),e.jsx(l,{label:"Fast-gate skips",value:u(s.diag?.ctxFastGate)}),e.jsx("span",{className:"perf-card-note",children:"skip vs recompute vs replay cadence"})]})]})}function m({label:s,value:a,title:r}){return e.jsxs("div",{className:"model-field",title:r,children:[e.jsx("span",{className:"model-field-label",children:s}),e.jsx("span",{className:"model-field-value",children:a})]})}function b({name:s,providerName:a,provider:r,inputRate:p,outputRate:h}){const v=a||r||"—";return e.jsxs("div",{className:"model-badge",children:[e.jsx(m,{label:"Model",value:s,title:"The model pi is currently using — its pricing drives the cost figure."}),e.jsx(m,{label:"Provider",value:v,title:"The provider serving the model."}),e.jsx(m,{label:"Input Rate",value:`$${p.toFixed(6)}`,title:"USD per input token, from the model's pricing."}),e.jsx(m,{label:"Output Rate",value:`$${h.toFixed(6)}`,title:"USD per output token, from the model's pricing."})]})}function y(){const{data:s,error:a}=o(x.useCallback(()=>j({minutes:30}),[]),{pollInterval:1e4}),{data:r}=o(x.useCallback(()=>N(),[]),{pollInterval:1e4});return a&&!s?e.jsxs("div",{className:"tab-stub",children:["Error loading perf: ",a.message]}):s?e.jsxs("div",{className:"metrics-tab",children:[r?.model&&e.jsx(b,{name:r.model.name,providerName:r.model.providerName,provider:r.model.provider,inputRate:r.model.inputRate,outputRate:r.model.outputRate}),e.jsx(_,{perf:s}),e.jsx(f,{perf:s}),e.jsxs("div",{className:"perf-footer",children:[s.sampleCount," samples · updated ",s.updatedAt]})]}):e.jsx("div",{className:"tab-stub",children:"Loading perf…"})}export{y as default}; +//# sourceMappingURL=MetricsTab-CGNXrMzs.js.map diff --git a/extensions/dashboard-client/dist/assets/MetricsTab-D_XnsEYX.js.map b/extensions/dashboard-client/dist/assets/MetricsTab-CGNXrMzs.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/MetricsTab-D_XnsEYX.js.map rename to extensions/dashboard-client/dist/assets/MetricsTab-CGNXrMzs.js.map index 1b3b9e7..4482ad6 100644 --- a/extensions/dashboard-client/dist/assets/MetricsTab-D_XnsEYX.js.map +++ b/extensions/dashboard-client/dist/assets/MetricsTab-CGNXrMzs.js.map @@ -1 +1 @@ -{"version":3,"file":"MetricsTab-D_XnsEYX.js","sources":["../../src/components/PerfChart.tsx","../../src/components/PerfCards.tsx","../../src/components/ModelBadge.tsx","../../src/tabs/MetricsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/PerfChart.tsx — perf stat chart.\n *\n * The /api/perf endpoint returns rolling-window aggregates (not time-series),\n * so this renders a stat-card \"chart\": p50/p95 latency bars, TPS, cache hit %,\n * db recompute + disk write. Each metric shows a normalized bar + numeric.\n */\n\nimport type React from \"react\";\nimport type { PerfResponse } from \"@contracts\";\n\nexport interface PerfChartProps {\n\tperf: PerfResponse;\n}\n\nfunction fmtMs(n: number): string {\n\treturn n >= 1000 ? `${(n / 1000).toFixed(1)}s` : `${n.toFixed(0)}ms`;\n}\n\ninterface BarProps {\n\t/** Current value. */\n\tvalue: number;\n\t/** Value that represents 100% bar fill (the \"max\" reference). */\n\tmax: number;\n\t/** Color class. */\n\tcolorClass: string;\n}\n\nfunction Bar({ value, max, colorClass }: BarProps): React.ReactElement {\n\tconst pct = max > 0 ? Math.max(0, Math.min(100, (value / max) * 100)) : 0;\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n\nexport function PerfChart({ perf }: PerfChartProps): React.ReactElement {\n\t// Reference maxes: p95 is the upper bound for latency bars; rates scale to a\n\t// reasonable reference (tok/s) so bars are visually meaningful even with\n\t// small samples. cache_hit_pct is already 0-100.\n\tconst latencyMax = Math.max(\n\t\tperf.turn_latency_ms.p95,\n\t\tperf.provider_latency_ms.p95,\n\t\t1,\n\t);\n\tconst tpsRef = Math.max(perf.tps.avg, 1);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t

Performance

\n\t\t\t\t\n\t\t\t\t\t{perf.windowMinutes}min window · {perf.sampleCount} samples\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tTurn latency p50 / p95\n\t\t\t\t\t\n\t\t\t\t\t\t{fmtMs(perf.turn_latency_ms.p50)} /{\" \"}\n\t\t\t\t\t\t{fmtMs(perf.turn_latency_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tProvider latency p50 / p95\n\t\t\t\t\t\n\t\t\t\t\t\t{fmtMs(perf.provider_latency_ms.p50)} /{\" \"}\n\t\t\t\t\t\t{fmtMs(perf.provider_latency_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tTokens/sec (avg)\n\t\t\t\t\t{perf.tps.avg.toFixed(1)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tCache hit (avg / latest)\n\t\t\t\t\t\n\t\t\t\t\t\t{perf.cache_hit_pct.avg.toFixed(1)}% /{\" \"}\n\t\t\t\t\t\t{perf.cache_hit_pct.latest.toFixed(1)}%\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tDB recompute p95\n\t\t\t\t\t{fmtMs(perf.db_recompute_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tDisk write p95\n\t\t\t\t\t{fmtMs(perf.disk_write_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tRSS\n\t\t\t\t\t{perf.rss_mb.latest.toFixed(0)} MB\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tHeap\n\t\t\t\t\t\n\t\t\t\t\t\t{perf.heap_mb.latest.toFixed(0)} MB\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tCPU user\n\t\t\t\t\t\n\t\t\t\t\t\t{(perf.cpu_user_ms.latest / 1000).toFixed(1)}s\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tCPU sys\n\t\t\t\t\t\n\t\t\t\t\t\t{(perf.cpu_sys_ms.latest / 1000).toFixed(1)}s\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t{perf.diag && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tFast-gate fires: {perf.diag.ctxFastGate}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tLive trim fires: {perf.diag.liveTrimFires}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tLive trim replays: {perf.diag.liveTrimReplays}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/PerfCards.tsx — 5 perf metric cards.\n *\n * Mirrors the old html.ts perf grid: model latency, throughput, process,\n * snapshot cost, and TUI lag proxy. Uses the existing perf-metric CSS\n * classes from repos-metrics.css plus metrics-extra.css for card headers.\n */\n\nimport type React from \"react\";\nimport type { PerfResponse } from \"@contracts\";\n\n/** Format milliseconds (em-dash for null/undefined). */\nfunction fmtMs(v: number | null | undefined): string {\n\treturn v == null ? \"\\u2014\" : v >= 100 ? `${Math.round(v)}ms` : `${v.toFixed(1)}ms`;\n}\n\n/** Format a number with fixed decimals (em-dash for null/non-number). */\nfunction fmtNum(v: number | null | undefined, dec: number): string {\n\treturn v == null || typeof v !== \"number\" ? \"\\u2014\" : v.toFixed(dec);\n}\n\n/** Format a diag counter (em-dash for null). */\nfunction fmtDiag(v: number | null | undefined): string {\n\treturn v == null ? \"\\u2014\" : String(v);\n}\n\ninterface PerfCardsProps {\n\tperf: PerfResponse;\n}\n\n/** A single stat row inside a perf card. */\nfunction Stat({ label, value }: { label: string; value: string }): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t{label}\n\t\t\t{value}\n\t\t
\n\t);\n}\n\n/** Card wrapper with a title. */\nfunction Card({ title, children }: { title: string; children: React.ReactNode }): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t

{title}

\n\t\t\t
{children}
\n\t\t
\n\t);\n}\n\nexport function PerfCards({ perf }: PerfCardsProps): React.ReactElement {\n\tconst cpuTxt = `${fmtNum(perf.cpu_user_ms.latest, 1)} / ${fmtNum(perf.cpu_sys_ms.latest, 1)} ms`;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tskip vs recompute vs replay cadence\n\t\t\t\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/ModelBadge.tsx — model + provider + rates.\n *\n * Shows the active model name, provider, and input/output rates.\n * Tooltips copied verbatim from html.ts. Used in the Metrics tab header.\n */\n\nimport type React from \"react\";\n\nexport interface ModelBadgeProps {\n\t/** Model name/identifier. */\n\tname: string;\n\t/** Human-readable provider name. */\n\tproviderName: string;\n\t/** Machine-readable provider identifier. */\n\tprovider: string;\n\t/** USD per input token (from model pricing). */\n\tinputRate: number;\n\t/** USD per output token (from model pricing). */\n\toutputRate: number;\n}\n\nfunction Field({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t{label}\n\t\t\t{value}\n\t\t
\n\t);\n}\n\nexport function ModelBadge({\n\tname,\n\tproviderName,\n\tprovider,\n\tinputRate,\n\toutputRate,\n}: ModelBadgeProps): React.ReactElement {\n\tconst providerDisplay = providerName || provider || \"—\";\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/tabs/MetricsTab.tsx — Metrics tab (C2).\n *\n * Fetches /api/perf (rolling-window aggregates) + /api/snapshot (for model).\n * Renders ModelBadge + PerfChart + 5 perf cards (latency, throughput, process,\n * snapshot cost, TUI lag proxy). Polls every 10s.\n */\n\nimport type React from \"react\";\nimport { useCallback } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchPerf, fetchSnapshot } from \"../api/client\";\nimport type { PerfResponse, SnapshotResponse } from \"@contracts\";\nimport { PerfChart } from \"../components/PerfChart\";\nimport { PerfCards } from \"../components/PerfCards\";\nimport { ModelBadge } from \"../components/ModelBadge\";\n\nexport default function MetricsTab(): React.ReactElement {\n\tconst { data: perf, error: perfErr } = useApi(\n\t\tuseCallback(() => fetchPerf({ minutes: 30 }), []),\n\t\t{ pollInterval: 10_000 },\n\t);\n\tconst { data: snapshot } = useApi(\n\t\tuseCallback(() => fetchSnapshot(), []),\n\t\t{ pollInterval: 10_000 },\n\t);\n\n\tif (perfErr && !perf) {\n\t\treturn (\n\t\t\t
Error loading perf: {perfErr.message}
\n\t\t);\n\t}\n\tif (!perf) {\n\t\treturn
Loading perf…
;\n\t}\n\n\treturn (\n\t\t
\n\t\t\t{snapshot?.model && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t{perf.sampleCount} samples · updated {perf.updatedAt}\n\t\t\t
\n\t\t
\n\t);\n}\n"],"names":["fmtMs","n","Bar","value","max","colorClass","pct","jsx","PerfChart","perf","latencyMax","tpsRef","jsxs","v","fmtNum","dec","fmtDiag","Stat","label","Card","title","children","PerfCards","cpuTxt","Field","ModelBadge","name","providerName","provider","inputRate","outputRate","providerDisplay","MetricsTab","perfErr","useApi","useCallback","fetchPerf","snapshot","fetchSnapshot"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MetricsTab-CGNXrMzs.js","sources":["../../src/components/PerfChart.tsx","../../src/components/PerfCards.tsx","../../src/components/ModelBadge.tsx","../../src/tabs/MetricsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/PerfChart.tsx — perf stat chart.\n *\n * The /api/perf endpoint returns rolling-window aggregates (not time-series),\n * so this renders a stat-card \"chart\": p50/p95 latency bars, TPS, cache hit %,\n * db recompute + disk write. Each metric shows a normalized bar + numeric.\n */\n\nimport type React from \"react\";\nimport type { PerfResponse } from \"@contracts\";\n\nexport interface PerfChartProps {\n\tperf: PerfResponse;\n}\n\nfunction fmtMs(n: number): string {\n\treturn n >= 1000 ? `${(n / 1000).toFixed(1)}s` : `${n.toFixed(0)}ms`;\n}\n\ninterface BarProps {\n\t/** Current value. */\n\tvalue: number;\n\t/** Value that represents 100% bar fill (the \"max\" reference). */\n\tmax: number;\n\t/** Color class. */\n\tcolorClass: string;\n}\n\nfunction Bar({ value, max, colorClass }: BarProps): React.ReactElement {\n\tconst pct = max > 0 ? Math.max(0, Math.min(100, (value / max) * 100)) : 0;\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n\nexport function PerfChart({ perf }: PerfChartProps): React.ReactElement {\n\t// Reference maxes: p95 is the upper bound for latency bars; rates scale to a\n\t// reasonable reference (tok/s) so bars are visually meaningful even with\n\t// small samples. cache_hit_pct is already 0-100.\n\tconst latencyMax = Math.max(\n\t\tperf.turn_latency_ms.p95,\n\t\tperf.provider_latency_ms.p95,\n\t\t1,\n\t);\n\tconst tpsRef = Math.max(perf.tps.avg, 1);\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t

Performance

\n\t\t\t\t\n\t\t\t\t\t{perf.windowMinutes}min window · {perf.sampleCount} samples\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tTurn latency p50 / p95\n\t\t\t\t\t\n\t\t\t\t\t\t{fmtMs(perf.turn_latency_ms.p50)} /{\" \"}\n\t\t\t\t\t\t{fmtMs(perf.turn_latency_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tProvider latency p50 / p95\n\t\t\t\t\t\n\t\t\t\t\t\t{fmtMs(perf.provider_latency_ms.p50)} /{\" \"}\n\t\t\t\t\t\t{fmtMs(perf.provider_latency_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tTokens/sec (avg)\n\t\t\t\t\t{perf.tps.avg.toFixed(1)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tCache hit (avg / latest)\n\t\t\t\t\t\n\t\t\t\t\t\t{perf.cache_hit_pct.avg.toFixed(1)}% /{\" \"}\n\t\t\t\t\t\t{perf.cache_hit_pct.latest.toFixed(1)}%\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tDB recompute p95\n\t\t\t\t\t{fmtMs(perf.db_recompute_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tDisk write p95\n\t\t\t\t\t{fmtMs(perf.disk_write_ms.p95)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tRSS\n\t\t\t\t\t{perf.rss_mb.latest.toFixed(0)} MB\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tHeap\n\t\t\t\t\t\n\t\t\t\t\t\t{perf.heap_mb.latest.toFixed(0)} MB\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tCPU user\n\t\t\t\t\t\n\t\t\t\t\t\t{(perf.cpu_user_ms.latest / 1000).toFixed(1)}s\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\tCPU sys\n\t\t\t\t\t\n\t\t\t\t\t\t{(perf.cpu_sys_ms.latest / 1000).toFixed(1)}s\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t{perf.diag && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tFast-gate fires: {perf.diag.ctxFastGate}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tLive trim fires: {perf.diag.liveTrimFires}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tLive trim replays: {perf.diag.liveTrimReplays}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/PerfCards.tsx — 5 perf metric cards.\n *\n * Mirrors the old html.ts perf grid: model latency, throughput, process,\n * snapshot cost, and TUI lag proxy. Uses the existing perf-metric CSS\n * classes from repos-metrics.css plus metrics-extra.css for card headers.\n */\n\nimport type React from \"react\";\nimport type { PerfResponse } from \"@contracts\";\n\n/** Format milliseconds (em-dash for null/undefined). */\nfunction fmtMs(v: number | null | undefined): string {\n\treturn v == null ? \"\\u2014\" : v >= 100 ? `${Math.round(v)}ms` : `${v.toFixed(1)}ms`;\n}\n\n/** Format a number with fixed decimals (em-dash for null/non-number). */\nfunction fmtNum(v: number | null | undefined, dec: number): string {\n\treturn v == null || typeof v !== \"number\" ? \"\\u2014\" : v.toFixed(dec);\n}\n\n/** Format a diag counter (em-dash for null). */\nfunction fmtDiag(v: number | null | undefined): string {\n\treturn v == null ? \"\\u2014\" : String(v);\n}\n\ninterface PerfCardsProps {\n\tperf: PerfResponse;\n}\n\n/** A single stat row inside a perf card. */\nfunction Stat({ label, value }: { label: string; value: string }): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t{label}\n\t\t\t{value}\n\t\t
\n\t);\n}\n\n/** Card wrapper with a title. */\nfunction Card({ title, children }: { title: string; children: React.ReactNode }): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t

{title}

\n\t\t\t
{children}
\n\t\t
\n\t);\n}\n\nexport function PerfCards({ perf }: PerfCardsProps): React.ReactElement {\n\tconst cpuTxt = `${fmtNum(perf.cpu_user_ms.latest, 1)} / ${fmtNum(perf.cpu_sys_ms.latest, 1)} ms`;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tskip vs recompute vs replay cadence\n\t\t\t\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/ModelBadge.tsx — model + provider + rates.\n *\n * Shows the active model name, provider, and input/output rates.\n * Tooltips copied verbatim from html.ts. Used in the Metrics tab header.\n */\n\nimport type React from \"react\";\n\nexport interface ModelBadgeProps {\n\t/** Model name/identifier. */\n\tname: string;\n\t/** Human-readable provider name. */\n\tproviderName: string;\n\t/** Machine-readable provider identifier. */\n\tprovider: string;\n\t/** USD per input token (from model pricing). */\n\tinputRate: number;\n\t/** USD per output token (from model pricing). */\n\toutputRate: number;\n}\n\nfunction Field({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t{label}\n\t\t\t{value}\n\t\t
\n\t);\n}\n\nexport function ModelBadge({\n\tname,\n\tproviderName,\n\tprovider,\n\tinputRate,\n\toutputRate,\n}: ModelBadgeProps): React.ReactElement {\n\tconst providerDisplay = providerName || provider || \"—\";\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/tabs/MetricsTab.tsx — Metrics tab (C2).\n *\n * Fetches /api/perf (rolling-window aggregates) + /api/snapshot (for model).\n * Renders ModelBadge + PerfChart + 5 perf cards (latency, throughput, process,\n * snapshot cost, TUI lag proxy). Polls every 10s.\n */\n\nimport type React from \"react\";\nimport { useCallback } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchPerf, fetchSnapshot } from \"../api/client\";\nimport type { PerfResponse, SnapshotResponse } from \"@contracts\";\nimport { PerfChart } from \"../components/PerfChart\";\nimport { PerfCards } from \"../components/PerfCards\";\nimport { ModelBadge } from \"../components/ModelBadge\";\n\nexport default function MetricsTab(): React.ReactElement {\n\tconst { data: perf, error: perfErr } = useApi(\n\t\tuseCallback(() => fetchPerf({ minutes: 30 }), []),\n\t\t{ pollInterval: 10_000 },\n\t);\n\tconst { data: snapshot } = useApi(\n\t\tuseCallback(() => fetchSnapshot(), []),\n\t\t{ pollInterval: 10_000 },\n\t);\n\n\tif (perfErr && !perf) {\n\t\treturn (\n\t\t\t
Error loading perf: {perfErr.message}
\n\t\t);\n\t}\n\tif (!perf) {\n\t\treturn
Loading perf…
;\n\t}\n\n\treturn (\n\t\t
\n\t\t\t{snapshot?.model && (\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t{perf.sampleCount} samples · updated {perf.updatedAt}\n\t\t\t
\n\t\t
\n\t);\n}\n"],"names":["fmtMs","n","Bar","value","max","colorClass","pct","jsx","PerfChart","perf","latencyMax","tpsRef","jsxs","v","fmtNum","dec","fmtDiag","Stat","label","Card","title","children","PerfCards","cpuTxt","Field","ModelBadge","name","providerName","provider","inputRate","outputRate","providerDisplay","MetricsTab","perfErr","useApi","useCallback","fetchPerf","snapshot","fetchSnapshot"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/OverviewTab-BMREvAth.js b/extensions/dashboard-client/dist/assets/OverviewTab-sJnPapkl.js similarity index 98% rename from extensions/dashboard-client/dist/assets/OverviewTab-BMREvAth.js rename to extensions/dashboard-client/dist/assets/OverviewTab-sJnPapkl.js index 139a219..4fa742a 100644 --- a/extensions/dashboard-client/dist/assets/OverviewTab-BMREvAth.js +++ b/extensions/dashboard-client/dist/assets/OverviewTab-sJnPapkl.js @@ -1,2 +1,2 @@ -import{j as e,u as H,r as C,f as I}from"./index-CqLN7STl.js";import{u as A}from"./useSSE-CXrQSbVY.js";import{f as g,a as E,C as _,T as G}from"./TimeSavedCard-B8AIjNTY.js";const $=["#58a6ff","#3fb950","#d29922","#f85149","#bc8cff","#ff7b72","#79c0ff","#56d4dd","#e3b341","#a5d6ff","#7ee787","#ffa657"];function B(s){let t=5381;for(let a=0;a>>0;return t}function U(s){return s?$[B(s)%$.length]:$[0]}function K(s){if(!s)return"(unknown)";const t=s.replace(/[\\/]+$/,"");if(!t)return"(unknown)";const a=t.split(/[\\/]/);return a[a.length-1]||t}function z(s){const t=new Map;for(const o of s){const i=o.repoRoot??"__null__",u=o.tokens??0,m=t.get(i);if(m)m.tokens+=u;else{const c=K(o.repoRoot);t.set(i,{repoRoot:o.repoRoot,basename:c,tokens:u,color:U(c)})}}const a=[...t.values()],r=a.reduce((o,i)=>o+i.tokens,0),l=s.reduce((o,i)=>Math.max(o,i.ctxWindow),0);return{repos:a,totalTokens:r,maxWindow:l,sessionCount:s.length}}function R(s){return s>=1e5?`${(s/1e3).toFixed(0)}k`:s.toLocaleString()}function V({sessions:s,loading:t,error:a}){if(a)return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsxs("div",{className:"sessions-empty",children:["Error loading sessions: ",a.message]})]});if(t&&!s)return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsx("div",{className:"sessions-empty",children:"Loading sessions…"})]});const r=s?.sessions??[],{repos:l,totalTokens:o,maxWindow:i,sessionCount:u}=z(r);if(l.length===0)return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsx("div",{className:"sessions-empty",children:"No active sessions."})]});const m=i>0?Math.round(o/i*100):0;return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsx("div",{className:"repo-stack-bar",role:"group","aria-label":"Per-repo context usage",children:l.map(c=>{const n=o>0?c.tokens/o*100:0,h=o>0?n:0,d=`${c.basename}: ${R(c.tokens)} tokens (${n.toFixed(1)}% of total)`;return e.jsx("div",{className:"repo-stack-segment",style:{width:`${Math.max(h,.5)}%`,backgroundColor:c.color},title:d,"aria-label":d},c.repoRoot??"__null__")})}),e.jsxs("p",{className:"repo-stack-total",children:[R(o)," tokens across ",l.length," ",l.length===1?"repo":"repos"," /"," ",u," ",u===1?"session":"sessions"," ",e.jsxs("span",{className:"pct",children:["— ",m,"% of combined max window"]})]}),e.jsx("div",{className:"repo-stack-legend",children:l.map(c=>{const n=o>0?c.tokens/o*100:0;return e.jsxs("div",{className:"repo-stack-legend-item",children:[e.jsx("span",{className:"repo-stack-legend-swatch",style:{backgroundColor:c.color}}),e.jsx("span",{className:"repo-stack-legend-name",children:c.basename}),e.jsxs("span",{children:[R(c.tokens)," (",n.toFixed(0),"%)"]})]},c.repoRoot??"__null__")})})]})}function q(s){return s>=90?"gauge-red":s>=70?"gauge-yellow":"gauge-green"}function X(s){return s==null?"?":s>=1e5?`${(s/1e3).toFixed(0)}k`:s.toLocaleString()}function J(s){if(!s)return"(unknown)";const t=s.replace(/[\\/]+$/,"");if(!t)return"(unknown)";const a=t.split(/[\\/]/);return a[a.length-1]||t}function Q(s){const t=Math.max(0,Math.round(s/1e3));if(t<60)return`${t}s ago`;const a=Math.floor(t/60);return a<60?`${a}m ago`:`${Math.floor(a/60)}h ${a%60}m ago`}function W({data:s}){const t=s.percent??0,a=Math.max(t,1),r=q(t),l=X(s.tokens),o=s.contextWindow.toLocaleString(),i=`${l} / ${o} tokens`;return e.jsxs("div",{className:`session-gauge ${s.isSelf?"session-gauge-self":""}`,children:[e.jsxs("div",{className:"session-gauge-head",children:[e.jsx("span",{className:"session-gauge-label",children:s.label}),e.jsxs("span",{className:"session-gauge-pct",children:[t,"%"]})]}),e.jsx("div",{className:`gauge-bar ${r}`,role:"meter","aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":100,"aria-label":`${s.label}: ${t}%`,children:e.jsx("div",{className:"gauge-fill",style:{width:`${a}%`}})}),e.jsx("p",{className:"gauge-label session-gauge-sub",children:i}),s.sublabel&&e.jsx("p",{className:"session-gauge-meta",children:s.sublabel})]})}function Y({sessions:s,loading:t,error:a,launcherSessionId:r,launcher:l}){const o=Date.now(),i=[{key:"self",label:"this session",sublabel:"",tokens:l.tokens,percent:l.percent,contextWindow:l.contextWindow,isSelf:!0}],u=(s?.sessions??[]).filter(n=>n.sessionId!==r);u.sort((n,h)=>h.lastSeen-n.lastSeen);for(const n of u)i.push({key:n.sessionId,label:J(n.repoRoot),sublabel:`pid ${n.pid} · ${Q(o-n.lastSeen)}${n.model?` · ${n.model}`:""}`,tokens:n.tokens,percent:n.percent,contextWindow:n.ctxWindow||0,isSelf:!1});const m=a&&!s,c=t&&!s;return e.jsxs("div",{className:"card session-gauges-card",children:[e.jsx("h3",{children:"Context per Session (live)"}),m?e.jsxs("div",{className:"sessions-empty",children:["Error loading sessions: ",a.message]}):c?e.jsx("div",{className:"sessions-empty",children:"Loading sessions…"}):i.length<=1&&u.length===0?e.jsx("div",{className:"session-gauges-grid",children:i.map(n=>e.jsx(W,{data:n},n.key))}):e.jsx("div",{className:"session-gauges-grid",children:i.map(n=>e.jsx(W,{data:n},n.key))})]})}function M({state:s,label:t}){const a=s==="on"?"bullet-on":s==="na"?"bullet-na":"bullet-off";return e.jsxs("div",{className:`bullet ${a}`,children:[e.jsx("span",{className:"bullet-dot","aria-hidden":"true"}),e.jsx("span",{className:"bullet-label",children:t})]})}function Z({armed:s,ready:t}){const a=s?"on":"off",r=t?"on":s?"off":"na",l=t?"THRESHOLD EXCEEDED — compacting next event":s?"past fast gate — monitoring token count":"idle — below fast gate";return e.jsxs("div",{className:"card trigger-status",children:[e.jsx("h3",{children:"Trigger Status"}),e.jsxs("div",{className:"bullet-row",children:[e.jsx(M,{state:a,label:"Armed"}),e.jsx(M,{state:r,label:"Ready"})]}),e.jsx("p",{className:"trigger-state-text",children:l})]})}function ee(s){return s>=.9?"meter-green":s>=.6?"meter-yellow":"meter-red"}function p({label:s,value:t,title:a}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",title:a,children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function se(s){const t=s.compressionPct,a=ee(t),r=Math.max(t*100,.5),l=`${g(t)} tokens saved · dedup: ${g(s.dedupPct)}`;return e.jsxs("div",{className:"card vector-store-card",children:[e.jsx("h3",{children:"Vector Store (session)"}),e.jsx(p,{label:"Checkpoints",value:s.checkpointCount.toLocaleString(),title:"A saved summary of a chunk of your conversation that was compacted to free up space."}),e.jsx(p,{label:"Original (dropped)",value:s.tokensIn.toLocaleString(),title:"Total size of the original conversation text dropped into compaction this session, including redundant regions skipped by dedup. This is the 'in'."}),e.jsx(p,{label:"Kept (summaries)",value:s.tokensOut.toLocaleString(),title:"Compact summaries we are currently holding as 'memory' for this session (the 'out'). Smaller is better."}),e.jsx(p,{label:"Freed",value:s.tokensFreed.toLocaleString(),title:"Conversation space freed = dropped − kept (the 'saved')."}),e.jsx(p,{label:"Injected",value:s.injectedCount,title:"How many times old context was automatically brought back into the conversation because it was relevant to what you were doing."}),e.jsx(p,{label:"Recall Relevance",value:g(s.dedupHitRate),title:"Of the times we recalled old context, how often it was actually on-topic."}),e.jsx(p,{label:"Storage Dedup",value:g(s.storageDedupRate),title:"How often new content matched something we already had, so we skipped storing a duplicate copy. Higher = less wasted space."}),e.jsx(p,{label:"Collapsed",value:s.dedupCollapsed,title:"How many duplicate chunks we collapsed into one instead of storing separately."}),e.jsx(p,{label:"Last ID",value:s.lastCheckpointId??"—",title:"The ID of the most recent saved checkpoint."}),e.jsxs("div",{className:"ov-compression-meter",children:[e.jsx("div",{className:"meter-track",children:e.jsx("div",{className:`meter-fill ${a}`,style:{width:`${r}%`}})}),e.jsx("span",{className:"meter-sub",children:l})]})]})}function te(s){return s>=.9?"meter-green":s>=.6?"meter-yellow":"meter-red"}function x({label:s,value:t}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function ae(s){const t=s.compressionPct,a=te(t),r=Math.max(t*100,.5),l=`${g(t)} tokens saved · dedup: ${g(s.dedupPct)}`;return e.jsxs("div",{className:"card repo-sessions-card",children:[e.jsx("h3",{children:"Repo (all sessions)"}),e.jsx(x,{label:"Checkpoints",value:s.checkpointCount.toLocaleString()}),e.jsx(x,{label:"Original",value:s.tokensIn.toLocaleString()}),e.jsx(x,{label:"Kept",value:s.tokensOut.toLocaleString()}),e.jsx(x,{label:"Freed",value:s.tokensFreed.toLocaleString()}),e.jsx(x,{label:"Sessions",value:s.sessionCount.toLocaleString()}),e.jsx(x,{label:"Collapsed",value:s.dedupCollapsed}),e.jsx(x,{label:"Storage Dedup",value:g(s.storageDedupRate)}),e.jsxs("div",{className:"ov-compression-meter",children:[e.jsx("div",{className:"meter-track",children:e.jsx("div",{className:`meter-fill ${a}`,style:{width:`${r}%`}})}),e.jsx("span",{className:"meter-sub",children:l})]})]})}function ne(s){return e.jsxs("div",{className:"card data-safety-card",children:[e.jsx("h3",{children:"🛡 Data Safety"}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Regions Retained"}),e.jsx("span",{className:"ov-stat-value",children:s.regionsRetained.toLocaleString()})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Compressed-Original"}),e.jsx("span",{className:"ov-stat-value",children:E(s.compressedOriginalBytes)})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Dedup Duplicates"}),e.jsx("span",{className:"ov-stat-value",children:s.duplicatesCollapsed.toLocaleString()})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Permanently Deleted"}),e.jsx("span",{className:"ov-stat-value ov-value-ok",children:E(s.bytesPermanentlyDeleted)})]}),e.jsx("p",{className:"safe-note",children:'Every compacted region is kept verbatim (compressed). "Drop" = removed from the live window only. We never delete your data.'})]})}function v({label:s,value:t,title:a}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",title:a,children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function oe(s){const t=`${Math.round((s.pressure??0)*100)}%`;let a=s.thresholdTokens.toLocaleString();return s.tierPct!=null&&s.contextWindow>0&&(a+=` (${Math.round(s.tierPct*100)}% of ${s.contextWindow.toLocaleString()})`),e.jsxs("div",{className:"card config-summary-card",children:[e.jsx("h3",{children:"Configuration"}),e.jsx(v,{label:"Tier",value:`${s.tier} (live)`,title:"Live pressure band — climbs low→mega as context fills the window."}),e.jsx(v,{label:"Preset",value:s.presetTier,title:"The env-resolved base compaction preset (low/medium/high/ultra/mega) that set the token threshold."}),e.jsx(v,{label:"Pressure",value:t,title:"Live pressure = currentTokens / threshold — % of the model context window (threshold fires at the tier's % of window)."}),e.jsx(v,{label:"Threshold",value:a,title:"Compaction threshold = tierPct × model context window — mega-compact trims BELOW pi's native ~80% auto-compact for any model size."}),e.jsx(v,{label:"Fast Gate",value:`${s.fastGatePct}%`,title:"Fast-gate arming floor — the live trim arms once context passes this % of the window."}),e.jsx(v,{label:"Auto",value:s.auto?"enabled":"disabled"}),e.jsx(v,{label:"Anchor",value:String(s.anchorUserMessages)})]})}function T({label:s,value:t,title:a}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",title:a,children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function le(s){const t=s.repoTokensFreed||0;let a=0,r="0";if(s.inputRate&&t>0){a=t*s.inputRate;const i=s.contextWindow||0;r=i>0?(t/i).toFixed(1):"0"}const l=`≈ $${a.toFixed(4)} saved`,o=`${r} context-windows extended`;return e.jsxs("div",{className:"card model-cost-card",children:[e.jsx("h3",{children:"💰 Model & Cost Savings"}),e.jsx("div",{className:"ov-cost-usd",children:l}),e.jsx("div",{className:"ov-cost-sub",children:o}),e.jsx(T,{label:"Model",value:s.name,title:"The model pi is currently using — its pricing drives the cost figure."}),e.jsx(T,{label:"Provider",value:s.provider,title:"The provider serving the model."}),e.jsx(T,{label:"Input Rate",value:`$${s.inputRate.toFixed(6)}`,title:"USD per input token, from the model's pricing."}),e.jsx(T,{label:"Output Rate",value:`$${s.outputRate.toFixed(6)}`,title:"USD per output token, from the model's pricing."})]})}function re(s){const{activeAgents:t,currentTurn:a}=s,r=t>0?`▶ ${t} running`:"idle";return e.jsxs("div",{className:"card crew-card",children:[e.jsx("h3",{children:"Crew / Agents"}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Active Agents"}),e.jsx("span",{className:"ov-stat-value",children:t})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Current Turn"}),e.jsx("span",{className:"ov-stat-value",children:a})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Status"}),e.jsx("span",{className:"ov-stat-value",children:r})]})]})}const ie=[e.jsxs("li",{children:[e.jsx("b",{children:"Original (dropped)"}),' — everything compacted away (including duplicates caught by dedup). The "in."']},"1"),e.jsxs("li",{children:[e.jsx("b",{children:"Kept (summaries)"}),' — compact summaries still held as "memory" (the "out").']},"2"),e.jsxs("li",{children:[e.jsx("b",{children:"Freed"})," = dropped − kept — tokens saved so far (higher = better)."]},"3"),e.jsxs("li",{children:[e.jsx("b",{children:"Compression %"})," — Freed ÷ Dropped — the headline efficiency number. Higher = more space reclaimed."]},"4"),e.jsxs("li",{children:[e.jsx("b",{children:"Storage dedup %"})," — how often new content matched something already saved, so no duplicate copy was written."]},"5"),e.jsxs("li",{children:[e.jsx("b",{children:"Data safety"})," — every compacted region is kept verbatim (compressed). Nothing is permanently deleted; you can restore any of it."]},"6")];function ce(){return e.jsx("div",{className:"card legend-card",children:e.jsxs("details",{children:[e.jsx("summary",{children:"What these numbers mean"}),e.jsx("ol",{className:"legend-list",children:ie}),e.jsx("p",{className:"legend-note",children:"Hover any label above for a quick explanation."})]})})}function de(s){return s.type==="session_sample"}function ue(s){if(!s)return"never";try{return new Date(s).toLocaleString()}catch{return s}}function xe({snapshot:s,loading:t,error:a}){const{data:r,error:l,loading:o,refetch:i}=H(C.useCallback(()=>I(),[]),{pollInterval:2e3}),{events:u}=A(),m=C.useMemo(()=>u.filter(de),[u]),c=C.useMemo(()=>m.length===0?null:m[m.length-1].ts,[m]);if(C.useEffect(()=>{c!=null&&i()},[c,i]),t&&!s)return e.jsx("div",{className:"tab-stub",children:"Loading snapshot…"});if(a&&!s)return e.jsxs("div",{className:"tab-stub",children:["Error: ",a.message]});if(!s)return e.jsx("div",{className:"tab-stub",children:"No snapshot data."});const n=s,{context:h,compression:d,trigger:f,session:P,store:b,tier:D,updatedAt:O}=n,k=n.config,L=n.crew,w=n.integrity,N=n.cacheHits,F=n.compacts,S=n.timeSaved,y=n.repo,j=n.model;return e.jsxs("div",{className:"overview-tab",children:[e.jsxs("div",{className:"overview-header",children:[e.jsx("span",{className:"tier-pill",children:D}),e.jsxs("span",{className:"updated",children:["updated ",ue(O)]})]}),e.jsxs("div",{className:"card-grid overview-card-grid",children:[e.jsx(Y,{sessions:r,loading:o,error:l,launcherSessionId:P.id,launcher:{tokens:h.tokens,percent:h.percent,contextWindow:h.contextWindow}}),e.jsx(V,{sessions:r,loading:o,error:l}),e.jsx(Z,{armed:f.armed,ready:f.ready,currentTokens:f.currentTokens,thresholdTokens:f.thresholdTokens,fastGatePct:f.fastGatePct}),e.jsx(se,{checkpointCount:b.checkpointCount,tokensIn:d.session.tokensIn,tokensOut:d.session.tokensOut,tokensFreed:d.session.tokensFreed,injectedCount:b.injectedCount,dedupHitRate:b.dedupHitRate,storageDedupRate:b.storageDedupRate,dedupCollapsed:b.dedupCollapsed,lastCheckpointId:P.lastCheckpointId,compressionPct:d.session.compressionPct,dedupPct:d.session.dedupPct}),e.jsx(ae,{checkpointCount:y.checkpointCount,tokensIn:d.repo.tokensIn,tokensOut:d.repo.tokensOut,tokensFreed:d.repo.tokensFreed,sessionCount:y.sessionCount,dedupCollapsed:y.dedupCollapsed,storageDedupRate:y.storageDedupRate,compressionPct:d.repo.compressionPct,dedupPct:d.repo.dedupPct}),e.jsx(ne,{regionsRetained:w.regionsRetained,compressedOriginalBytes:w.compressedOriginalBytes,duplicatesCollapsed:w.duplicatesCollapsed,bytesPermanentlyDeleted:w.bytesPermanentlyDeleted}),e.jsx(oe,{tier:D,presetTier:n.presetTier,pressure:n.pressure,thresholdTokens:k.thresholdTokens,tierPct:k.tierPct,contextWindow:h.contextWindow,fastGatePct:k.fastGatePct,auto:k.auto,anchorUserMessages:k.anchorUserMessages}),j&&e.jsx(le,{name:j.name,provider:j.providerName||j.provider,inputRate:j.inputRate,outputRate:j.outputRate,repoTokensFreed:d.repo.tokensFreed,contextWindow:h.contextWindow}),e.jsx(re,{activeAgents:L.activeAgents,currentTurn:L.currentTurn}),e.jsx(_,{cacheHitsSession:N.session,cacheHitsTotal:N.total,tokensSavedSession:N.sessionTokensSaved,tokensSavedTotal:N.totalTokensSaved,compactionsSession:F.session,compactionsTotal:F.total}),e.jsx(G,{compactSessionSec:S.compact.sessionSec,compactTotalSec:S.compact.totalSec,cacheHitSessionSec:S.cacheHit.sessionSec,cacheHitTotalSec:S.cacheHit.totalSec}),e.jsx(ce,{})]})]})}export{xe as default}; -//# sourceMappingURL=OverviewTab-BMREvAth.js.map +import{j as e,u as H,r as C,f as I}from"./index-CqpO7WrQ.js";import{u as A}from"./useSSE-BfmZMOWC.js";import{f as g,a as E,C as _,T as G}from"./TimeSavedCard-DVRXGcYK.js";const $=["#58a6ff","#3fb950","#d29922","#f85149","#bc8cff","#ff7b72","#79c0ff","#56d4dd","#e3b341","#a5d6ff","#7ee787","#ffa657"];function B(s){let t=5381;for(let a=0;a>>0;return t}function U(s){return s?$[B(s)%$.length]:$[0]}function K(s){if(!s)return"(unknown)";const t=s.replace(/[\\/]+$/,"");if(!t)return"(unknown)";const a=t.split(/[\\/]/);return a[a.length-1]||t}function z(s){const t=new Map;for(const o of s){const i=o.repoRoot??"__null__",u=o.tokens??0,m=t.get(i);if(m)m.tokens+=u;else{const c=K(o.repoRoot);t.set(i,{repoRoot:o.repoRoot,basename:c,tokens:u,color:U(c)})}}const a=[...t.values()],r=a.reduce((o,i)=>o+i.tokens,0),l=s.reduce((o,i)=>Math.max(o,i.ctxWindow),0);return{repos:a,totalTokens:r,maxWindow:l,sessionCount:s.length}}function R(s){return s>=1e5?`${(s/1e3).toFixed(0)}k`:s.toLocaleString()}function V({sessions:s,loading:t,error:a}){if(a)return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsxs("div",{className:"sessions-empty",children:["Error loading sessions: ",a.message]})]});if(t&&!s)return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsx("div",{className:"sessions-empty",children:"Loading sessions…"})]});const r=s?.sessions??[],{repos:l,totalTokens:o,maxWindow:i,sessionCount:u}=z(r);if(l.length===0)return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsx("div",{className:"sessions-empty",children:"No active sessions."})]});const m=i>0?Math.round(o/i*100):0;return e.jsxs("div",{className:"card repo-stack-card",children:[e.jsx("h3",{children:"Context per Repo (live)"}),e.jsx("div",{className:"repo-stack-bar",role:"group","aria-label":"Per-repo context usage",children:l.map(c=>{const n=o>0?c.tokens/o*100:0,h=o>0?n:0,d=`${c.basename}: ${R(c.tokens)} tokens (${n.toFixed(1)}% of total)`;return e.jsx("div",{className:"repo-stack-segment",style:{width:`${Math.max(h,.5)}%`,backgroundColor:c.color},title:d,"aria-label":d},c.repoRoot??"__null__")})}),e.jsxs("p",{className:"repo-stack-total",children:[R(o)," tokens across ",l.length," ",l.length===1?"repo":"repos"," /"," ",u," ",u===1?"session":"sessions"," ",e.jsxs("span",{className:"pct",children:["— ",m,"% of combined max window"]})]}),e.jsx("div",{className:"repo-stack-legend",children:l.map(c=>{const n=o>0?c.tokens/o*100:0;return e.jsxs("div",{className:"repo-stack-legend-item",children:[e.jsx("span",{className:"repo-stack-legend-swatch",style:{backgroundColor:c.color}}),e.jsx("span",{className:"repo-stack-legend-name",children:c.basename}),e.jsxs("span",{children:[R(c.tokens)," (",n.toFixed(0),"%)"]})]},c.repoRoot??"__null__")})})]})}function q(s){return s>=90?"gauge-red":s>=70?"gauge-yellow":"gauge-green"}function X(s){return s==null?"?":s>=1e5?`${(s/1e3).toFixed(0)}k`:s.toLocaleString()}function J(s){if(!s)return"(unknown)";const t=s.replace(/[\\/]+$/,"");if(!t)return"(unknown)";const a=t.split(/[\\/]/);return a[a.length-1]||t}function Q(s){const t=Math.max(0,Math.round(s/1e3));if(t<60)return`${t}s ago`;const a=Math.floor(t/60);return a<60?`${a}m ago`:`${Math.floor(a/60)}h ${a%60}m ago`}function W({data:s}){const t=s.percent??0,a=Math.max(t,1),r=q(t),l=X(s.tokens),o=s.contextWindow.toLocaleString(),i=`${l} / ${o} tokens`;return e.jsxs("div",{className:`session-gauge ${s.isSelf?"session-gauge-self":""}`,children:[e.jsxs("div",{className:"session-gauge-head",children:[e.jsx("span",{className:"session-gauge-label",children:s.label}),e.jsxs("span",{className:"session-gauge-pct",children:[t,"%"]})]}),e.jsx("div",{className:`gauge-bar ${r}`,role:"meter","aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":100,"aria-label":`${s.label}: ${t}%`,children:e.jsx("div",{className:"gauge-fill",style:{width:`${a}%`}})}),e.jsx("p",{className:"gauge-label session-gauge-sub",children:i}),s.sublabel&&e.jsx("p",{className:"session-gauge-meta",children:s.sublabel})]})}function Y({sessions:s,loading:t,error:a,launcherSessionId:r,launcher:l}){const o=Date.now(),i=[{key:"self",label:"this session",sublabel:"",tokens:l.tokens,percent:l.percent,contextWindow:l.contextWindow,isSelf:!0}],u=(s?.sessions??[]).filter(n=>n.sessionId!==r);u.sort((n,h)=>h.lastSeen-n.lastSeen);for(const n of u)i.push({key:n.sessionId,label:J(n.repoRoot),sublabel:`pid ${n.pid} · ${Q(o-n.lastSeen)}${n.model?` · ${n.model}`:""}`,tokens:n.tokens,percent:n.percent,contextWindow:n.ctxWindow||0,isSelf:!1});const m=a&&!s,c=t&&!s;return e.jsxs("div",{className:"card session-gauges-card",children:[e.jsx("h3",{children:"Context per Session (live)"}),m?e.jsxs("div",{className:"sessions-empty",children:["Error loading sessions: ",a.message]}):c?e.jsx("div",{className:"sessions-empty",children:"Loading sessions…"}):i.length<=1&&u.length===0?e.jsx("div",{className:"session-gauges-grid",children:i.map(n=>e.jsx(W,{data:n},n.key))}):e.jsx("div",{className:"session-gauges-grid",children:i.map(n=>e.jsx(W,{data:n},n.key))})]})}function M({state:s,label:t}){const a=s==="on"?"bullet-on":s==="na"?"bullet-na":"bullet-off";return e.jsxs("div",{className:`bullet ${a}`,children:[e.jsx("span",{className:"bullet-dot","aria-hidden":"true"}),e.jsx("span",{className:"bullet-label",children:t})]})}function Z({armed:s,ready:t}){const a=s?"on":"off",r=t?"on":s?"off":"na",l=t?"THRESHOLD EXCEEDED — compacting next event":s?"past fast gate — monitoring token count":"idle — below fast gate";return e.jsxs("div",{className:"card trigger-status",children:[e.jsx("h3",{children:"Trigger Status"}),e.jsxs("div",{className:"bullet-row",children:[e.jsx(M,{state:a,label:"Armed"}),e.jsx(M,{state:r,label:"Ready"})]}),e.jsx("p",{className:"trigger-state-text",children:l})]})}function ee(s){return s>=.9?"meter-green":s>=.6?"meter-yellow":"meter-red"}function p({label:s,value:t,title:a}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",title:a,children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function se(s){const t=s.compressionPct,a=ee(t),r=Math.max(t*100,.5),l=`${g(t)} tokens saved · dedup: ${g(s.dedupPct)}`;return e.jsxs("div",{className:"card vector-store-card",children:[e.jsx("h3",{children:"Vector Store (session)"}),e.jsx(p,{label:"Checkpoints",value:s.checkpointCount.toLocaleString(),title:"A saved summary of a chunk of your conversation that was compacted to free up space."}),e.jsx(p,{label:"Original (dropped)",value:s.tokensIn.toLocaleString(),title:"Total size of the original conversation text dropped into compaction this session, including redundant regions skipped by dedup. This is the 'in'."}),e.jsx(p,{label:"Kept (summaries)",value:s.tokensOut.toLocaleString(),title:"Compact summaries we are currently holding as 'memory' for this session (the 'out'). Smaller is better."}),e.jsx(p,{label:"Freed",value:s.tokensFreed.toLocaleString(),title:"Conversation space freed = dropped − kept (the 'saved')."}),e.jsx(p,{label:"Injected",value:s.injectedCount,title:"How many times old context was automatically brought back into the conversation because it was relevant to what you were doing."}),e.jsx(p,{label:"Recall Relevance",value:g(s.dedupHitRate),title:"Of the times we recalled old context, how often it was actually on-topic."}),e.jsx(p,{label:"Storage Dedup",value:g(s.storageDedupRate),title:"How often new content matched something we already had, so we skipped storing a duplicate copy. Higher = less wasted space."}),e.jsx(p,{label:"Collapsed",value:s.dedupCollapsed,title:"How many duplicate chunks we collapsed into one instead of storing separately."}),e.jsx(p,{label:"Last ID",value:s.lastCheckpointId??"—",title:"The ID of the most recent saved checkpoint."}),e.jsxs("div",{className:"ov-compression-meter",children:[e.jsx("div",{className:"meter-track",children:e.jsx("div",{className:`meter-fill ${a}`,style:{width:`${r}%`}})}),e.jsx("span",{className:"meter-sub",children:l})]})]})}function te(s){return s>=.9?"meter-green":s>=.6?"meter-yellow":"meter-red"}function x({label:s,value:t}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function ae(s){const t=s.compressionPct,a=te(t),r=Math.max(t*100,.5),l=`${g(t)} tokens saved · dedup: ${g(s.dedupPct)}`;return e.jsxs("div",{className:"card repo-sessions-card",children:[e.jsx("h3",{children:"Repo (all sessions)"}),e.jsx(x,{label:"Checkpoints",value:s.checkpointCount.toLocaleString()}),e.jsx(x,{label:"Original",value:s.tokensIn.toLocaleString()}),e.jsx(x,{label:"Kept",value:s.tokensOut.toLocaleString()}),e.jsx(x,{label:"Freed",value:s.tokensFreed.toLocaleString()}),e.jsx(x,{label:"Sessions",value:s.sessionCount.toLocaleString()}),e.jsx(x,{label:"Collapsed",value:s.dedupCollapsed}),e.jsx(x,{label:"Storage Dedup",value:g(s.storageDedupRate)}),e.jsxs("div",{className:"ov-compression-meter",children:[e.jsx("div",{className:"meter-track",children:e.jsx("div",{className:`meter-fill ${a}`,style:{width:`${r}%`}})}),e.jsx("span",{className:"meter-sub",children:l})]})]})}function ne(s){return e.jsxs("div",{className:"card data-safety-card",children:[e.jsx("h3",{children:"🛡 Data Safety"}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Regions Retained"}),e.jsx("span",{className:"ov-stat-value",children:s.regionsRetained.toLocaleString()})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Compressed-Original"}),e.jsx("span",{className:"ov-stat-value",children:E(s.compressedOriginalBytes)})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Dedup Duplicates"}),e.jsx("span",{className:"ov-stat-value",children:s.duplicatesCollapsed.toLocaleString()})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Permanently Deleted"}),e.jsx("span",{className:"ov-stat-value ov-value-ok",children:E(s.bytesPermanentlyDeleted)})]}),e.jsx("p",{className:"safe-note",children:'Every compacted region is kept verbatim (compressed). "Drop" = removed from the live window only. We never delete your data.'})]})}function v({label:s,value:t,title:a}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",title:a,children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function oe(s){const t=`${Math.round((s.pressure??0)*100)}%`;let a=s.thresholdTokens.toLocaleString();return s.tierPct!=null&&s.contextWindow>0&&(a+=` (${Math.round(s.tierPct*100)}% of ${s.contextWindow.toLocaleString()})`),e.jsxs("div",{className:"card config-summary-card",children:[e.jsx("h3",{children:"Configuration"}),e.jsx(v,{label:"Tier",value:`${s.tier} (live)`,title:"Live pressure band — climbs low→mega as context fills the window."}),e.jsx(v,{label:"Preset",value:s.presetTier,title:"The env-resolved base compaction preset (low/medium/high/ultra/mega) that set the token threshold."}),e.jsx(v,{label:"Pressure",value:t,title:"Live pressure = currentTokens / threshold — % of the model context window (threshold fires at the tier's % of window)."}),e.jsx(v,{label:"Threshold",value:a,title:"Compaction threshold = tierPct × model context window — mega-compact trims BELOW pi's native ~80% auto-compact for any model size."}),e.jsx(v,{label:"Fast Gate",value:`${s.fastGatePct}%`,title:"Fast-gate arming floor — the live trim arms once context passes this % of the window."}),e.jsx(v,{label:"Auto",value:s.auto?"enabled":"disabled"}),e.jsx(v,{label:"Anchor",value:String(s.anchorUserMessages)})]})}function T({label:s,value:t,title:a}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",title:a,children:s}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function le(s){const t=s.repoTokensFreed||0;let a=0,r="0";if(s.inputRate&&t>0){a=t*s.inputRate;const i=s.contextWindow||0;r=i>0?(t/i).toFixed(1):"0"}const l=`≈ $${a.toFixed(4)} saved`,o=`${r} context-windows extended`;return e.jsxs("div",{className:"card model-cost-card",children:[e.jsx("h3",{children:"💰 Model & Cost Savings"}),e.jsx("div",{className:"ov-cost-usd",children:l}),e.jsx("div",{className:"ov-cost-sub",children:o}),e.jsx(T,{label:"Model",value:s.name,title:"The model pi is currently using — its pricing drives the cost figure."}),e.jsx(T,{label:"Provider",value:s.provider,title:"The provider serving the model."}),e.jsx(T,{label:"Input Rate",value:`$${s.inputRate.toFixed(6)}`,title:"USD per input token, from the model's pricing."}),e.jsx(T,{label:"Output Rate",value:`$${s.outputRate.toFixed(6)}`,title:"USD per output token, from the model's pricing."})]})}function re(s){const{activeAgents:t,currentTurn:a}=s,r=t>0?`▶ ${t} running`:"idle";return e.jsxs("div",{className:"card crew-card",children:[e.jsx("h3",{children:"Crew / Agents"}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Active Agents"}),e.jsx("span",{className:"ov-stat-value",children:t})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Current Turn"}),e.jsx("span",{className:"ov-stat-value",children:a})]}),e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:"Status"}),e.jsx("span",{className:"ov-stat-value",children:r})]})]})}const ie=[e.jsxs("li",{children:[e.jsx("b",{children:"Original (dropped)"}),' — everything compacted away (including duplicates caught by dedup). The "in."']},"1"),e.jsxs("li",{children:[e.jsx("b",{children:"Kept (summaries)"}),' — compact summaries still held as "memory" (the "out").']},"2"),e.jsxs("li",{children:[e.jsx("b",{children:"Freed"})," = dropped − kept — tokens saved so far (higher = better)."]},"3"),e.jsxs("li",{children:[e.jsx("b",{children:"Compression %"})," — Freed ÷ Dropped — the headline efficiency number. Higher = more space reclaimed."]},"4"),e.jsxs("li",{children:[e.jsx("b",{children:"Storage dedup %"})," — how often new content matched something already saved, so no duplicate copy was written."]},"5"),e.jsxs("li",{children:[e.jsx("b",{children:"Data safety"})," — every compacted region is kept verbatim (compressed). Nothing is permanently deleted; you can restore any of it."]},"6")];function ce(){return e.jsx("div",{className:"card legend-card",children:e.jsxs("details",{children:[e.jsx("summary",{children:"What these numbers mean"}),e.jsx("ol",{className:"legend-list",children:ie}),e.jsx("p",{className:"legend-note",children:"Hover any label above for a quick explanation."})]})})}function de(s){return s.type==="session_sample"}function ue(s){if(!s)return"never";try{return new Date(s).toLocaleString()}catch{return s}}function xe({snapshot:s,loading:t,error:a}){const{data:r,error:l,loading:o,refetch:i}=H(C.useCallback(()=>I(),[]),{pollInterval:2e3}),{events:u}=A(),m=C.useMemo(()=>u.filter(de),[u]),c=C.useMemo(()=>m.length===0?null:m[m.length-1].ts,[m]);if(C.useEffect(()=>{c!=null&&i()},[c,i]),t&&!s)return e.jsx("div",{className:"tab-stub",children:"Loading snapshot…"});if(a&&!s)return e.jsxs("div",{className:"tab-stub",children:["Error: ",a.message]});if(!s)return e.jsx("div",{className:"tab-stub",children:"No snapshot data."});const n=s,{context:h,compression:d,trigger:f,session:P,store:b,tier:D,updatedAt:O}=n,k=n.config,L=n.crew,w=n.integrity,N=n.cacheHits,F=n.compacts,S=n.timeSaved,y=n.repo,j=n.model;return e.jsxs("div",{className:"overview-tab",children:[e.jsxs("div",{className:"overview-header",children:[e.jsx("span",{className:"tier-pill",children:D}),e.jsxs("span",{className:"updated",children:["updated ",ue(O)]})]}),e.jsxs("div",{className:"card-grid overview-card-grid",children:[e.jsx(Y,{sessions:r,loading:o,error:l,launcherSessionId:P.id,launcher:{tokens:h.tokens,percent:h.percent,contextWindow:h.contextWindow}}),e.jsx(V,{sessions:r,loading:o,error:l}),e.jsx(Z,{armed:f.armed,ready:f.ready,currentTokens:f.currentTokens,thresholdTokens:f.thresholdTokens,fastGatePct:f.fastGatePct}),e.jsx(se,{checkpointCount:b.checkpointCount,tokensIn:d.session.tokensIn,tokensOut:d.session.tokensOut,tokensFreed:d.session.tokensFreed,injectedCount:b.injectedCount,dedupHitRate:b.dedupHitRate,storageDedupRate:b.storageDedupRate,dedupCollapsed:b.dedupCollapsed,lastCheckpointId:P.lastCheckpointId,compressionPct:d.session.compressionPct,dedupPct:d.session.dedupPct}),e.jsx(ae,{checkpointCount:y.checkpointCount,tokensIn:d.repo.tokensIn,tokensOut:d.repo.tokensOut,tokensFreed:d.repo.tokensFreed,sessionCount:y.sessionCount,dedupCollapsed:y.dedupCollapsed,storageDedupRate:y.storageDedupRate,compressionPct:d.repo.compressionPct,dedupPct:d.repo.dedupPct}),e.jsx(ne,{regionsRetained:w.regionsRetained,compressedOriginalBytes:w.compressedOriginalBytes,duplicatesCollapsed:w.duplicatesCollapsed,bytesPermanentlyDeleted:w.bytesPermanentlyDeleted}),e.jsx(oe,{tier:D,presetTier:n.presetTier,pressure:n.pressure,thresholdTokens:k.thresholdTokens,tierPct:k.tierPct,contextWindow:h.contextWindow,fastGatePct:k.fastGatePct,auto:k.auto,anchorUserMessages:k.anchorUserMessages}),j&&e.jsx(le,{name:j.name,provider:j.providerName||j.provider,inputRate:j.inputRate,outputRate:j.outputRate,repoTokensFreed:d.repo.tokensFreed,contextWindow:h.contextWindow}),e.jsx(re,{activeAgents:L.activeAgents,currentTurn:L.currentTurn}),e.jsx(_,{cacheHitsSession:N.session,cacheHitsTotal:N.total,tokensSavedSession:N.sessionTokensSaved,tokensSavedTotal:N.totalTokensSaved,compactionsSession:F.session,compactionsTotal:F.total}),e.jsx(G,{compactSessionSec:S.compact.sessionSec,compactTotalSec:S.compact.totalSec,cacheHitSessionSec:S.cacheHit.sessionSec,cacheHitTotalSec:S.cacheHit.totalSec}),e.jsx(ce,{})]})]})}export{xe as default}; +//# sourceMappingURL=OverviewTab-sJnPapkl.js.map diff --git a/extensions/dashboard-client/dist/assets/OverviewTab-BMREvAth.js.map b/extensions/dashboard-client/dist/assets/OverviewTab-sJnPapkl.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/OverviewTab-BMREvAth.js.map rename to extensions/dashboard-client/dist/assets/OverviewTab-sJnPapkl.js.map index ce7036d..e0842bb 100644 --- a/extensions/dashboard-client/dist/assets/OverviewTab-BMREvAth.js.map +++ b/extensions/dashboard-client/dist/assets/OverviewTab-sJnPapkl.js.map @@ -1 +1 @@ -{"version":3,"file":"OverviewTab-BMREvAth.js","sources":["../../src/components/RepoContextStack.tsx","../../src/components/SessionContextGauges.tsx","../../src/components/TriggerStatus.tsx","../../src/components/VectorStoreCard.tsx","../../src/components/RepoAllSessionsCard.tsx","../../src/components/DataSafetyCard.tsx","../../src/components/ConfigSummaryCard.tsx","../../src/components/CacheStatusPerModel.tsx","../../src/components/SessionInfo.tsx","../../src/components/LegendCard.tsx","../../src/tabs/OverviewTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/RepoContextStack.tsx — Stacked per-repo context bar (S40).\n *\n * Horizontal stacked bar: one colored segment per active repo, aggregating\n * that repo's active sessions' token counts. Renders a combined total line\n * and a legend mapping each repo (basename of repoRoot) to its segment color\n * + token count + % of total.\n *\n * Stable per-repo colors: the repoRoot basename is hashed to a deterministic\n * index into a fixed palette array, so the same repo always gets the same\n * color across renders/tabs (mirrors SessionsMemoryChart's stable-color\n * contract from S39).\n *\n * PREVENT-PI-004: this is a pure presentational component — no fetch, no\n * network. Data is passed in by the parent (OverviewTab) via\n * useApi(fetchSessions) + useSSE() for real-time updates.\n */\n\nimport type React from \"react\";\nimport type { ActiveSession, SessionsResponse } from \"@contracts\";\n\nexport interface RepoContextStackProps {\n\t/** Active sessions from /api/sessions (may be null while loading). */\n\tsessions: SessionsResponse | null;\n\t/** Whether the initial fetch is in flight. */\n\tloading: boolean;\n\t/** Fetch error, if any. */\n\terror: Error | null;\n}\n\n// ─── Stable color palette ─────────────────────────────────────────────────────\n// Fixed set of hex colors used for stable per-repo coloring. The hash function\n// maps a repoRoot basename to a deterministic palette index so the same repo\n// always renders the same color.\nconst REPO_PALETTE: ReadonlyArray = [\n\t\"#58a6ff\", // blue\n\t\"#3fb950\", // green\n\t\"#d29922\", // yellow\n\t\"#f85149\", // red\n\t\"#bc8cff\", // purple\n\t\"#ff7b72\", // salmon\n\t\"#79c0ff\", // light blue\n\t\"#56d4dd\", // cyan\n\t\"#e3b341\", // gold\n\t\"#a5d6ff\", // pale blue\n\t\"#7ee787\", // mint\n\t\"#ffa657\", // orange\n];\n\n/**\n * Simple deterministic string hash (djb2 variant). Returns a non-negative\n * 32-bit integer.\n */\nfunction hashString(str: string): number {\n\tlet hash = 5381;\n\tfor (let i = 0; i < str.length; i++) {\n\t\thash = ((hash << 5) + hash + str.charCodeAt(i)) >>> 0;\n\t}\n\treturn hash;\n}\n\n/**\n * Pick a stable color for a repoRoot basename. Falls back to \"(unknown)\" if\n * the basename is empty.\n */\nfunction colorForRepo(basename: string): string {\n\tif (!basename) return REPO_PALETTE[0];\n\treturn REPO_PALETTE[hashString(basename) % REPO_PALETTE.length];\n}\n\n/**\n * Extract the basename from a repoRoot path. Uses `\"/\"` as the universal\n * separator on all OSes (repoRoot is an absolute path from the dashboard\n * server; on Windows pi actually uses forward-slash normalized paths anyway).\n */\nfunction repoBasename(repoRoot: string | null): string {\n\tif (!repoRoot) return \"(unknown)\";\n\tconst trimmed = repoRoot.replace(/[\\\\/]+$/, \"\");\n\tif (!trimmed) return \"(unknown)\";\n\tconst parts = trimmed.split(/[\\\\/]/);\n\tconst last = parts[parts.length - 1];\n\treturn last || trimmed;\n}\n\n// ─── Aggregation ─────────────────────────────────────────────────────────────\n\ninterface RepoAggregate {\n\trepoRoot: string | null;\n\tbasename: string;\n\ttokens: number;\n\tcolor: string;\n}\n\nfunction aggregateRepos(sessions: ReadonlyArray): {\n\trepos: RepoAggregate[];\n\ttotalTokens: number;\n\tmaxWindow: number;\n\tsessionCount: number;\n} {\n\tconst map = new Map();\n\tfor (const s of sessions) {\n\t\tconst key = s.repoRoot ?? \"__null__\";\n\t\tconst tokens = s.tokens ?? 0;\n\t\tconst existing = map.get(key);\n\t\tif (existing) {\n\t\t\texisting.tokens += tokens;\n\t\t} else {\n\t\t\tconst basename = repoBasename(s.repoRoot);\n\t\t\tmap.set(key, {\n\t\t\t\trepoRoot: s.repoRoot,\n\t\t\t\tbasename,\n\t\t\t\ttokens,\n\t\t\t\tcolor: colorForRepo(basename),\n\t\t\t});\n\t\t}\n\t}\n\tconst repos = [...map.values()];\n\tconst totalTokens = repos.reduce((sum, r) => sum + r.tokens, 0);\n\t// Combined max window: the largest ctxWindow among the active sessions.\n\t// This mirrors SessionsTab's SummaryTiles combined-% logic.\n\tconst maxWindow = sessions.reduce(\n\t\t(max, s) => Math.max(max, s.ctxWindow),\n\t\t0,\n\t);\n\treturn {\n\t\trepos,\n\t\ttotalTokens,\n\t\tmaxWindow,\n\t\tsessionCount: sessions.length,\n\t};\n}\n\nfunction fmtTokens(n: number): string {\n\tif (n >= 100_000) return `${(n / 1000).toFixed(0)}k`;\n\treturn n.toLocaleString();\n}\n\nexport function RepoContextStack({\n\tsessions,\n\tloading,\n\terror,\n}: RepoContextStackProps): React.ReactElement | null {\n\tif (error) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

Context per Repo (live)

\n\t\t\t\t
\n\t\t\t\t\tError loading sessions: {error.message}\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\tif (loading && !sessions) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

Context per Repo (live)

\n\t\t\t\t
Loading sessions…
\n\t\t\t
\n\t\t);\n\t}\n\n\tconst activeSessions = sessions?.sessions ?? [];\n\tconst { repos, totalTokens, maxWindow, sessionCount } =\n\t\taggregateRepos(activeSessions);\n\n\tif (repos.length === 0) {\n\t\treturn (\n\t\t\t
\n\t\t\t\t

Context per Repo (live)

\n\t\t\t\t
No active sessions.
\n\t\t\t
\n\t\t);\n\t}\n\n\tconst combinedPct =\n\t\tmaxWindow > 0 ? Math.round((totalTokens / maxWindow) * 100) : 0;\n\n\treturn (\n\t\t
\n\t\t\t

Context per Repo (live)

\n\t\t\t\n\t\t\t\t{repos.map((r) => {\n\t\t\t\t\tconst pctOfTotal =\n\t\t\t\t\t\ttotalTokens > 0 ? (r.tokens / totalTokens) * 100 : 0;\n\t\t\t\t\tconst widthPct = totalTokens > 0 ? pctOfTotal : 0;\n\t\t\t\t\tconst tooltip =\n\t\t\t\t\t\t`${r.basename}: ${fmtTokens(r.tokens)} tokens ` +\n\t\t\t\t\t\t`(${pctOfTotal.toFixed(1)}% of total)`;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t\t

\n\t\t\t\t{fmtTokens(totalTokens)} tokens across {repos.length}{\" \"}\n\t\t\t\t{repos.length === 1 ? \"repo\" : \"repos\"} /{\" \"}\n\t\t\t\t{sessionCount}{\" \"}\n\t\t\t\t{sessionCount === 1 ? \"session\" : \"sessions\"}{\" \"}\n\t\t\t\t— {combinedPct}% of combined max window\n\t\t\t

\n\t\t\t
\n\t\t\t\t{repos.map((r) => {\n\t\t\t\t\tconst pctOfTotal =\n\t\t\t\t\t\ttotalTokens > 0 ? (r.tokens / totalTokens) * 100 : 0;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{r.basename}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fmtTokens(r.tokens)} ({pctOfTotal.toFixed(0)}%)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * dashboard-client/src/components/SessionContextGauges.tsx — Per-session context gauges (S40).\n *\n * Replaces the single launcher-only ContextGauge on the Overview tab with a\n * wrapping grid of compact gauges, one per active pi session. The launcher's\n * own session is always shown first + highlighted (\"this session\"), sourced\n * from the live snapshot (always available, never depends on heartbeat\n * timing). Other active sessions come from /api/sessions, sorted by lastSeen\n * descending, each labeled with repo basename + PID.\n *\n * Reuses the existing .gauge-bar / .gauge-fill / .gauge-{green,yellow,red}\n * classes from overview-events.css so the fill bars match the original\n * ContextGauge styling.\n *\n * PREVENT-PI-004: pure presentational component — no fetch, no network. Data\n * is passed in by the parent (OverviewTab) via its useApi(fetchSessions) +\n * useSSE() for real-time updates.\n */\n\nimport type React from \"react\";\nimport type { ActiveSession, SessionsResponse } from \"@contracts\";\n\nexport interface SessionContextGaugesProps {\n\t/** Active sessions from /api/sessions (may be null while loading). */\n\tsessions: SessionsResponse | null;\n\t/** Whether the initial fetch is in flight. */\n\tloading: boolean;\n\t/** Fetch error, if any. */\n\terror: Error | null;\n\t/** Launcher's own session ID (from snapshot.session.id), to exclude it\n\t * from the \"other sessions\" list (it's always rendered separately). */\n\tlauncherSessionId: string | null;\n\t/** Launcher's own context values (from snapshot — always available). */\n\tlauncher: {\n\t\ttokens: number | null;\n\t\tpercent: number | null;\n\t\tcontextWindow: number;\n\t};\n}\n\nfunction severityClass(percent: number): string {\n\tif (percent >= 90) return \"gauge-red\";\n\tif (percent >= 70) return \"gauge-yellow\";\n\treturn \"gauge-green\";\n}\n\nfunction fmtTokens(n: number | null): string {\n\tif (n == null) return \"?\";\n\tif (n >= 100_000) return `${(n / 1000).toFixed(0)}k`;\n\treturn n.toLocaleString();\n}\n\nfunction repoBasename(repoRoot: string | null): string {\n\tif (!repoRoot) return \"(unknown)\";\n\tconst trimmed = repoRoot.replace(/[\\\\/]+$/, \"\");\n\tif (!trimmed) return \"(unknown)\";\n\tconst parts = trimmed.split(/[\\\\/]/);\n\treturn parts[parts.length - 1] || trimmed;\n}\n\nfunction fmtAge(ms: number): string {\n\tconst s = Math.max(0, Math.round(ms / 1000));\n\tif (s < 60) return `${s}s ago`;\n\tconst m = Math.floor(s / 60);\n\tif (m < 60) return `${m}m ago`;\n\tconst h = Math.floor(m / 60);\n\treturn `${h}h ${m % 60}m ago`;\n}\n\ninterface GaugeData {\n\tkey: string;\n\tlabel: string;\n\tsublabel: string;\n\ttokens: number | null;\n\tpercent: number | null;\n\tcontextWindow: number;\n\tisSelf: boolean;\n}\n\n/** A single compact gauge: header label, fill bar, tokens/window sublabel. */\nfunction SessionGauge({ data }: { data: GaugeData }): React.ReactElement {\n\tconst pct = data.percent ?? 0;\n\tconst fillWidth = Math.max(pct, 1);\n\tconst cls = severityClass(pct);\n\tconst tokStr = fmtTokens(data.tokens);\n\tconst windowStr = data.contextWindow.toLocaleString();\n\tconst sublabel = `${tokStr} / ${windowStr} tokens`;\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t{data.label}\n\t\t\t\t{pct}%\n\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t

{sublabel}

\n\t\t\t{data.sublabel &&

{data.sublabel}

}\n\t\t
\n\t);\n}\n\nexport function SessionContextGauges({\n\tsessions,\n\tloading,\n\terror,\n\tlauncherSessionId,\n\tlauncher,\n}: SessionContextGaugesProps): React.ReactElement {\n\tconst now = Date.now();\n\n\t// Launcher gauge (always rendered, sourced from the snapshot).\n\tconst gauges: GaugeData[] = [\n\t\t{\n\t\t\tkey: \"self\",\n\t\t\tlabel: \"this session\",\n\t\t\tsublabel: \"\",\n\t\t\ttokens: launcher.tokens,\n\t\t\tpercent: launcher.percent,\n\t\t\tcontextWindow: launcher.contextWindow,\n\t\t\tisSelf: true,\n\t\t},\n\t];\n\n\t// Other active sessions (exclude the launcher by sessionId to avoid dup).\n\tconst others: ActiveSession[] = (sessions?.sessions ?? []).filter(\n\t\t(s) => s.sessionId !== launcherSessionId,\n\t);\n\t// Sort by lastSeen descending (most recent first).\n\tothers.sort((a, b) => b.lastSeen - a.lastSeen);\n\tfor (const s of others) {\n\t\tgauges.push({\n\t\t\tkey: s.sessionId,\n\t\t\tlabel: repoBasename(s.repoRoot),\n\t\t\tsublabel: `pid ${s.pid} · ${fmtAge(now - s.lastSeen)}${\n\t\t\t\ts.model ? ` · ${s.model}` : \"\"\n\t\t\t}`,\n\t\t\ttokens: s.tokens,\n\t\t\tpercent: s.percent,\n\t\t\tcontextWindow: s.ctxWindow || 0,\n\t\t\tisSelf: false,\n\t\t});\n\t}\n\n\tconst hasError = error && !sessions;\n\tconst showLoading = loading && !sessions;\n\n\treturn (\n\t\t
\n\t\t\t

Context per Session (live)

\n\t\t\t{hasError ? (\n\t\t\t\t
\n\t\t\t\t\tError loading sessions: {error!.message}\n\t\t\t\t
\n\t\t\t) : showLoading ? (\n\t\t\t\t
Loading sessions…
\n\t\t\t) : gauges.length <= 1 && others.length === 0 ? (\n\t\t\t\t// Launcher-only: just render the one self gauge (no \"no sessions\"\n\t\t\t\t// message — the launcher always has a gauge).\n\t\t\t\t
\n\t\t\t\t\t{gauges.map((g) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t{gauges.map((g) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/TriggerStatus.tsx — trigger armed/ready status.\n *\n * Two bullets (Armed, Ready) + state text.\n * Ready bullet shows \"na\" (yellow) when not armed.\n * State text: ready → \"THRESHOLD EXCEEDED — compacting next event\",\n * armed → \"past fast gate — monitoring token count\",\n * idle → \"idle — below fast gate\".\n */\n\nimport type React from \"react\";\n\nexport interface TriggerStatusProps {\n\t/** Whether the trigger is armed (waiting for threshold). */\n\tarmed: boolean;\n\t/** Whether the trigger is ready to fire (pressure at/above threshold). */\n\tready: boolean;\n\t/** Current context token count, or null if unknown. */\n\tcurrentTokens: number | null;\n\t/** Token threshold for firing. */\n\tthresholdTokens: number;\n\t/** Fast-gate pressure threshold (percent, 0–100). */\n\tfastGatePct: number;\n}\n\ntype BulletState = \"on\" | \"off\" | \"na\";\n\nfunction Bullet({\n\tstate,\n\tlabel,\n}: {\n\tstate: BulletState;\n\tlabel: string;\n}): React.ReactElement {\n\tconst cls =\n\t\tstate === \"on\" ? \"bullet-on\" : state === \"na\" ? \"bullet-na\" : \"bullet-off\";\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{label}\n\t\t
\n\t);\n}\n\nexport function TriggerStatus({\n\tarmed,\n\tready,\n}: TriggerStatusProps): React.ReactElement {\n\t// tr-armed: on if armed, off if not\n\t// tr-ready: on if ready, na (yellow) if not armed, off if armed but not ready\n\tconst armedState: BulletState = armed ? \"on\" : \"off\";\n\tconst readyState: BulletState = ready\n\t\t? \"on\"\n\t\t: !armed\n\t\t\t? \"na\"\n\t\t\t: \"off\";\n\n\tconst stateText = ready\n\t\t? \"THRESHOLD EXCEEDED — compacting next event\"\n\t\t: armed\n\t\t\t? \"past fast gate — monitoring token count\"\n\t\t\t: \"idle — below fast gate\";\n\n\treturn (\n\t\t
\n\t\t\t

Trigger Status

\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t

{stateText}

\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/VectorStoreCard.tsx — Vector Store (session) card.\n *\n * 9 fields: Checkpoints, Original (dropped), Kept (summaries), Freed,\n * Injected, Recall Relevance %, Storage Dedup %, Collapsed, Last ID.\n * Plus a compression meter bar (green ≥90%, yellow ≥60%, red <60%).\n *\n * NOTE: dedupHitRate, storageDedupRate, compressionPct, dedupPct are\n * 0–1 fractions at runtime (despite contract saying 0–100).\n * Tooltips copied verbatim from html.ts.\n */\n\nimport type React from \"react\";\nimport { fmtPctFromFraction } from \"../utils/format\";\n\nexport interface VectorStoreCardProps {\n\tcheckpointCount: number;\n\t/** Original tokens dropped into compaction (session). */\n\ttokensIn: number;\n\t/** Kept summary tokens (session). */\n\ttokensOut: number;\n\t/** Tokens freed = dropped − kept (session). */\n\ttokensFreed: number;\n\t/** Recall injection count. */\n\tinjectedCount: number;\n\t/** Recall relevance — 0–1 fraction. */\n\tdedupHitRate: number;\n\t/** Storage dedup rate — 0–1 fraction. */\n\tstorageDedupRate: number;\n\t/** Duplicate chunks collapsed. */\n\tdedupCollapsed: number;\n\t/** Last checkpoint ID or null. */\n\tlastCheckpointId: string | null;\n\t/** Session compression ratio — 0–1 fraction. */\n\tcompressionPct: number;\n\t/** Session dedup contribution — 0–1 fraction. */\n\tdedupPct: number;\n}\n\n/** Compression meter colour class (inverse of context: high = good). */\nfunction compressClass(sp: number): string {\n\tif (sp >= 0.9) return \"meter-green\";\n\tif (sp >= 0.6) return \"meter-yellow\";\n\treturn \"meter-red\";\n}\n\n/** Stat row with optional tooltip. */\nfunction StatRow({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string | number;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{value}\n\t\t
\n\t);\n}\n\nexport function VectorStoreCard(\n\tprops: VectorStoreCardProps,\n): React.ReactElement {\n\tconst sp = props.compressionPct;\n\tconst barCls = compressClass(sp);\n\tconst barWidth = Math.max(sp * 100, 0.5);\n\tconst compressSub = `${fmtPctFromFraction(sp)} tokens saved · dedup: ${fmtPctFromFraction(props.dedupPct)}`;\n\n\treturn (\n\t\t
\n\t\t\t

Vector Store (session)

\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{compressSub}\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/RepoAllSessionsCard.tsx — Repo (all sessions) card.\n *\n * 7 fields: Checkpoints, Original, Kept, Freed, Sessions, Collapsed, Storage Dedup.\n * Plus a compression meter bar (green ≥90%, yellow ≥60%, red <60%).\n *\n * NOTE: storageDedupRate, compressionPct, dedupPct are 0–1 fractions\n * at runtime (despite contract saying 0–100).\n */\n\nimport type React from \"react\";\nimport { fmtPctFromFraction } from \"../utils/format\";\n\nexport interface RepoAllSessionsCardProps {\n\tcheckpointCount: number;\n\t/** Original tokens dropped (repo-level). */\n\ttokensIn: number;\n\t/** Kept summary tokens (repo-level). */\n\ttokensOut: number;\n\t/** Tokens freed (repo-level). */\n\ttokensFreed: number;\n\t/** Number of sessions. */\n\tsessionCount: number;\n\t/** Duplicate chunks collapsed (repo-level). */\n\tdedupCollapsed: number;\n\t/** Storage dedup rate — 0–1 fraction. */\n\tstorageDedupRate: number;\n\t/** Repo compression ratio — 0–1 fraction. */\n\tcompressionPct: number;\n\t/** Repo dedup contribution — 0–1 fraction. */\n\tdedupPct: number;\n}\n\nfunction compressClass(sp: number): string {\n\tif (sp >= 0.9) return \"meter-green\";\n\tif (sp >= 0.6) return \"meter-yellow\";\n\treturn \"meter-red\";\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n}: {\n\tlabel: string;\n\tvalue: string | number;\n}): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t{label}\n\t\t\t{value}\n\t\t
\n\t);\n}\n\nexport function RepoAllSessionsCard(\n\tprops: RepoAllSessionsCardProps,\n): React.ReactElement {\n\tconst sp = props.compressionPct;\n\tconst barCls = compressClass(sp);\n\tconst barWidth = Math.max(sp * 100, 0.5);\n\tconst compressSub = `${fmtPctFromFraction(sp)} tokens saved · dedup: ${fmtPctFromFraction(props.dedupPct)}`;\n\n\treturn (\n\t\t
\n\t\t\t

Repo (all sessions)

\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{compressSub}\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/DataSafetyCard.tsx — Data Safety / Shield.\n *\n * 4 fields: Regions Retained, Compressed-Original bytes, Dedup Duplicates,\n * Permanently Deleted (always 0B, shown in green).\n * Plus the safe-note text (verbatim from html.ts).\n */\n\nimport type React from \"react\";\nimport { fmtBytes } from \"../utils/format\";\n\nexport interface DataSafetyCardProps {\n\tregionsRetained: number;\n\t/** Original byte size of compressed data (bytes). */\n\tcompressedOriginalBytes: number;\n\t/** Number of duplicate chunks collapsed. */\n\tduplicatesCollapsed: number;\n\t/** Bytes permanently deleted (always 0). */\n\tbytesPermanentlyDeleted: number;\n}\n\nexport function DataSafetyCard(\n\tprops: DataSafetyCardProps,\n): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t

🛡 Data Safety

\n\t\t\t
\n\t\t\t\tRegions Retained\n\t\t\t\t\n\t\t\t\t\t{props.regionsRetained.toLocaleString()}\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\tCompressed-Original\n\t\t\t\t\n\t\t\t\t\t{fmtBytes(props.compressedOriginalBytes)}\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\tDedup Duplicates\n\t\t\t\t\n\t\t\t\t\t{props.duplicatesCollapsed.toLocaleString()}\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\tPermanently Deleted\n\t\t\t\t\n\t\t\t\t\t{fmtBytes(props.bytesPermanentlyDeleted)}\n\t\t\t\t\n\t\t\t
\n\t\t\t

\n\t\t\t\tEvery compacted region is kept verbatim (compressed). "Drop" =\n\t\t\t\tremoved from the live window only. We never delete your data.\n\t\t\t

\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/ConfigSummaryCard.tsx — Configuration summary.\n *\n * 7 fields with tooltips (verbatim from html.ts):\n * Tier (live), Preset, Pressure, Threshold, Fast Gate, Auto, Anchor.\n *\n * NOTE: pressure and tierPct are 0–1 fractions at runtime.\n * fastGatePct is 0–100 at runtime.\n */\n\nimport type React from \"react\";\n\nexport interface ConfigSummaryCardProps {\n\t/** Current tier name. */\n\ttier: string;\n\t/** Preset tier name. */\n\tpresetTier: string;\n\t/** Live pressure — 0–1 fraction. */\n\tpressure: number;\n\t/** Token threshold. */\n\tthresholdTokens: number;\n\t/** Tier percentage — 0–1 fraction (runtime-only field). */\n\ttierPct?: number;\n\t/** Context window size. */\n\tcontextWindow: number;\n\t/** Fast-gate percentage — 0–100. */\n\tfastGatePct: number;\n\t/** Whether auto-compaction is enabled. */\n\tauto: boolean;\n\t/** Number of anchor user messages. */\n\tanchorUserMessages: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{value}\n\t\t
\n\t);\n}\n\nexport function ConfigSummaryCard(\n\tprops: ConfigSummaryCardProps,\n): React.ReactElement {\n\tconst pressurePct = `${Math.round((props.pressure ?? 0) * 100)}%`;\n\n\tlet thresholdTxt = props.thresholdTokens.toLocaleString();\n\tif (props.tierPct != null && props.contextWindow > 0) {\n\t\tthresholdTxt += ` (${Math.round(props.tierPct * 100)}% of ${props.contextWindow.toLocaleString()})`;\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

Configuration

\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/CacheStatusPerModel.tsx — Model & Cost Savings card.\n *\n * Shows $ saved, context-windows extended, Model, Provider, Input Rate, Output Rate.\n * Tooltips copied verbatim from html.ts.\n */\n\nimport type React from \"react\";\n\nexport interface ModelCostCardProps {\n\t/** Model name. */\n\tname: string;\n\t/** Provider display name (providerName fallback to provider). */\n\tprovider: string;\n\t/** USD per input token. */\n\tinputRate: number;\n\t/** USD per output token. */\n\toutputRate: number;\n\t/** Tokens freed (repo-level) used for cost calc. */\n\trepoTokensFreed: number;\n\t/** Context window size used for windows calc. */\n\tcontextWindow: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{value}\n\t\t
\n\t);\n}\n\nexport function CacheStatusPerModel(\n\tprops: ModelCostCardProps,\n): React.ReactElement {\n\tconst repoSaved = props.repoTokensFreed || 0;\n\tlet usd = 0;\n\tlet windows = \"0\";\n\n\tif (props.inputRate && repoSaved > 0) {\n\t\tusd = repoSaved * props.inputRate;\n\t\tconst win = props.contextWindow || 0;\n\t\twindows = win > 0 ? (repoSaved / win).toFixed(1) : \"0\";\n\t}\n\n\tconst usdStr = `≈ $${usd.toFixed(4)} saved`;\n\tconst windowsStr = `${windows} context-windows extended`;\n\n\treturn (\n\t\t
\n\t\t\t

💰 Model & Cost Savings

\n\t\t\t
{usdStr}
\n\t\t\t
{windowsStr}
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/SessionInfo.tsx — Crew / Agents card.\n *\n * Shows Active Agents, Current Turn, and Status.\n */\n\nimport type React from \"react\";\n\nexport interface SessionInfoProps {\n\t/** Number of active crew agents. */\n\tactiveAgents: number;\n\t/** Current turn index in the crew round-robin. */\n\tcurrentTurn: number;\n}\n\nexport function SessionInfo(\n\tprops: SessionInfoProps,\n): React.ReactElement {\n\tconst { activeAgents, currentTurn } = props;\n\tconst status =\n\t\tactiveAgents > 0 ? `▶ ${activeAgents} running` : \"idle\";\n\n\treturn (\n\t\t
\n\t\t\t

Crew / Agents

\n\t\t\t
\n\t\t\t\tActive Agents\n\t\t\t\t{activeAgents}\n\t\t\t
\n\t\t\t
\n\t\t\t\tCurrent Turn\n\t\t\t\t{currentTurn}\n\t\t\t
\n\t\t\t
\n\t\t\t\tStatus\n\t\t\t\t{status}\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * dashboard-client/src/components/LegendCard.tsx — \"What these numbers mean\" legend.\n *\n * Collapsible
with the legend list (verbatim from html.ts).\n * Full-width card (grid-column: 1 / -1).\n */\n\nimport type React from \"react\";\n\nconst LEGEND_ITEMS: ReadonlyArray = [\n\t
  • \n\t\tOriginal (dropped) — everything compacted away (including\n\t\tduplicates caught by dedup). The "in."\n\t
  • ,\n\t
  • \n\t\tKept (summaries) — compact summaries still held as "memory"\n\t\t(the "out").\n\t
  • ,\n\t
  • \n\t\tFreed = dropped − kept — tokens saved so far (higher = better).\n\t
  • ,\n\t
  • \n\t\tCompression % — Freed ÷ Dropped — the headline efficiency\n\t\tnumber. Higher = more space reclaimed.\n\t
  • ,\n\t
  • \n\t\tStorage dedup % — how often new content matched something\n\t\talready saved, so no duplicate copy was written.\n\t
  • ,\n\t
  • \n\t\tData safety — every compacted region is kept verbatim\n\t\t(compressed). Nothing is permanently deleted; you can restore any of\n\t\tit.\n\t
  • ,\n];\n\nexport function LegendCard(): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tWhat these numbers mean\n\t\t\t\t
      {LEGEND_ITEMS}
    \n\t\t\t\t

    \n\t\t\t\t\tHover any label above for a quick explanation.\n\t\t\t\t

    \n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/tabs/OverviewTab.tsx — Overview tab (full spec).\n *\n * Renders all 11 cards from the spec:\n * 1. Context Window (ContextGauge)\n * 2. Trigger Status (TriggerStatus)\n * 3. Vector Store (session) (VectorStoreCard)\n * 4. Repo (all sessions) (RepoAllSessionsCard)\n * 5. Data Safety (DataSafetyCard)\n * 6. Configuration (ConfigSummaryCard)\n * 7. Model & Cost Savings (CacheStatusPerModel)\n * 8. Crew / Agents (SessionInfo)\n * 9. Cache Hits & Compactions (CacheHitsCard)\n * 10. Time Saved (TimeSavedCard)\n * 11. Legend (LegendCard)\n *\n * All data comes from the snapshot prop passed by App.tsx.\n */\n\nimport type React from \"react\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { useSSE } from \"../hooks/useSSE\";\nimport { fetchSessions } from \"../api/client\";\nimport type {\n\tSnapshotResponse,\n\tSseEvent,\n\tSseSessionSample,\n\tSessionsResponse,\n} from \"@contracts\";\nimport type { RuntimeSnapshot } from \"../utils/types\";\nimport { RepoContextStack } from \"../components/RepoContextStack\";\nimport { SessionContextGauges } from \"../components/SessionContextGauges\";\nimport { TriggerStatus } from \"../components/TriggerStatus\";\nimport { VectorStoreCard } from \"../components/VectorStoreCard\";\nimport { RepoAllSessionsCard } from \"../components/RepoAllSessionsCard\";\nimport { DataSafetyCard } from \"../components/DataSafetyCard\";\nimport { ConfigSummaryCard } from \"../components/ConfigSummaryCard\";\nimport { CacheStatusPerModel } from \"../components/CacheStatusPerModel\";\nimport { SessionInfo } from \"../components/SessionInfo\";\nimport { CacheHitsCard } from \"../components/CacheHitsCard\";\nimport { TimeSavedCard } from \"../components/TimeSavedCard\";\nimport { LegendCard } from \"../components/LegendCard\";\n\n/** Type guard: narrows an SSE event to a session_sample event. */\nfunction isSessionSample(e: SseEvent): e is SseSessionSample {\n\treturn e.type === \"session_sample\";\n}\n\nexport interface OverviewTabProps {\n\tsnapshot: SnapshotResponse | null;\n\tloading: boolean;\n\terror: Error | null;\n}\n\nfunction formatUpdatedAt(ts: string | null): string {\n\tif (!ts) return \"never\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn ts;\n\t}\n}\n\nexport default function OverviewTab({\n\tsnapshot,\n\tloading,\n\terror,\n}: OverviewTabProps): React.ReactElement {\n\t// S40: real-time per-repo context via /api/sessions + SSE. Mirrors the\n\t// SessionsTab pattern: 2s poll + session_sample SSE refetch.\n\tconst {\n\t\tdata: sessionsData,\n\t\terror: sessionsErr,\n\t\tloading: sessionsLoading,\n\t\trefetch: refetchSessions,\n\t} = useApi(\n\t\tuseCallback(() => fetchSessions(), []),\n\t\t{ pollInterval: 2_000 },\n\t);\n\n\tconst { events } = useSSE();\n\n\tconst sampleEvents = useMemo(() => events.filter(isSessionSample), [events]);\n\tconst lastSampleTs = useMemo(() => {\n\t\tif (sampleEvents.length === 0) return null;\n\t\treturn sampleEvents[sampleEvents.length - 1].ts;\n\t}, [sampleEvents]);\n\n\tuseEffect(() => {\n\t\tif (lastSampleTs == null) return;\n\t\trefetchSessions();\n\t}, [lastSampleTs, refetchSessions]);\n\n\tif (loading && !snapshot)\n\t\treturn
    Loading snapshot…
    ;\n\tif (error && !snapshot)\n\t\treturn
    Error: {error.message}
    ;\n\tif (!snapshot) return
    No snapshot data.
    ;\n\n\t// Cast to RuntimeSnapshot for tierPct (runtime-only field).\n\tconst d = snapshot as RuntimeSnapshot;\n\tconst { context, compression, trigger, session, store, tier, updatedAt } = d;\n\tconst cfg = d.config;\n\tconst crew = d.crew;\n\tconst integrity = d.integrity;\n\tconst cacheHits = d.cacheHits;\n\tconst compacts = d.compacts;\n\tconst timeSaved = d.timeSaved;\n\tconst repo = d.repo;\n\tconst model = d.model;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{tier}\n\t\t\t\tupdated {formatUpdatedAt(updatedAt)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{model && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n"],"names":["REPO_PALETTE","hashString","str","hash","i","colorForRepo","basename","repoBasename","repoRoot","trimmed","parts","aggregateRepos","sessions","map","s","key","tokens","existing","repos","totalTokens","sum","r","maxWindow","max","fmtTokens","n","RepoContextStack","loading","error","jsxs","jsx","activeSessions","sessionCount","combinedPct","pctOfTotal","widthPct","tooltip","severityClass","percent","fmtAge","ms","m","SessionGauge","data","pct","fillWidth","cls","tokStr","windowStr","sublabel","SessionContextGauges","launcherSessionId","launcher","now","gauges","others","a","b","hasError","showLoading","g","Bullet","state","label","TriggerStatus","armed","ready","armedState","readyState","stateText","compressClass","sp","StatRow","value","title","VectorStoreCard","props","barCls","barWidth","compressSub","fmtPctFromFraction","RepoAllSessionsCard","DataSafetyCard","fmtBytes","ConfigSummaryCard","pressurePct","thresholdTxt","CacheStatusPerModel","repoSaved","usd","windows","win","usdStr","windowsStr","SessionInfo","activeAgents","currentTurn","status","LEGEND_ITEMS","LegendCard","isSessionSample","e","formatUpdatedAt","ts","OverviewTab","snapshot","sessionsData","sessionsErr","sessionsLoading","refetchSessions","useApi","useCallback","fetchSessions","events","useSSE","sampleEvents","useMemo","lastSampleTs","useEffect","d","context","compression","trigger","session","store","tier","updatedAt","cfg","crew","integrity","cacheHits","compacts","timeSaved","repo","model","CacheHitsCard","TimeSavedCard"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"OverviewTab-sJnPapkl.js","sources":["../../src/components/RepoContextStack.tsx","../../src/components/SessionContextGauges.tsx","../../src/components/TriggerStatus.tsx","../../src/components/VectorStoreCard.tsx","../../src/components/RepoAllSessionsCard.tsx","../../src/components/DataSafetyCard.tsx","../../src/components/ConfigSummaryCard.tsx","../../src/components/CacheStatusPerModel.tsx","../../src/components/SessionInfo.tsx","../../src/components/LegendCard.tsx","../../src/tabs/OverviewTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/RepoContextStack.tsx — Stacked per-repo context bar (S40).\n *\n * Horizontal stacked bar: one colored segment per active repo, aggregating\n * that repo's active sessions' token counts. Renders a combined total line\n * and a legend mapping each repo (basename of repoRoot) to its segment color\n * + token count + % of total.\n *\n * Stable per-repo colors: the repoRoot basename is hashed to a deterministic\n * index into a fixed palette array, so the same repo always gets the same\n * color across renders/tabs (mirrors SessionsMemoryChart's stable-color\n * contract from S39).\n *\n * PREVENT-PI-004: this is a pure presentational component — no fetch, no\n * network. Data is passed in by the parent (OverviewTab) via\n * useApi(fetchSessions) + useSSE() for real-time updates.\n */\n\nimport type React from \"react\";\nimport type { ActiveSession, SessionsResponse } from \"@contracts\";\n\nexport interface RepoContextStackProps {\n\t/** Active sessions from /api/sessions (may be null while loading). */\n\tsessions: SessionsResponse | null;\n\t/** Whether the initial fetch is in flight. */\n\tloading: boolean;\n\t/** Fetch error, if any. */\n\terror: Error | null;\n}\n\n// ─── Stable color palette ─────────────────────────────────────────────────────\n// Fixed set of hex colors used for stable per-repo coloring. The hash function\n// maps a repoRoot basename to a deterministic palette index so the same repo\n// always renders the same color.\nconst REPO_PALETTE: ReadonlyArray = [\n\t\"#58a6ff\", // blue\n\t\"#3fb950\", // green\n\t\"#d29922\", // yellow\n\t\"#f85149\", // red\n\t\"#bc8cff\", // purple\n\t\"#ff7b72\", // salmon\n\t\"#79c0ff\", // light blue\n\t\"#56d4dd\", // cyan\n\t\"#e3b341\", // gold\n\t\"#a5d6ff\", // pale blue\n\t\"#7ee787\", // mint\n\t\"#ffa657\", // orange\n];\n\n/**\n * Simple deterministic string hash (djb2 variant). Returns a non-negative\n * 32-bit integer.\n */\nfunction hashString(str: string): number {\n\tlet hash = 5381;\n\tfor (let i = 0; i < str.length; i++) {\n\t\thash = ((hash << 5) + hash + str.charCodeAt(i)) >>> 0;\n\t}\n\treturn hash;\n}\n\n/**\n * Pick a stable color for a repoRoot basename. Falls back to \"(unknown)\" if\n * the basename is empty.\n */\nfunction colorForRepo(basename: string): string {\n\tif (!basename) return REPO_PALETTE[0];\n\treturn REPO_PALETTE[hashString(basename) % REPO_PALETTE.length];\n}\n\n/**\n * Extract the basename from a repoRoot path. Uses `\"/\"` as the universal\n * separator on all OSes (repoRoot is an absolute path from the dashboard\n * server; on Windows pi actually uses forward-slash normalized paths anyway).\n */\nfunction repoBasename(repoRoot: string | null): string {\n\tif (!repoRoot) return \"(unknown)\";\n\tconst trimmed = repoRoot.replace(/[\\\\/]+$/, \"\");\n\tif (!trimmed) return \"(unknown)\";\n\tconst parts = trimmed.split(/[\\\\/]/);\n\tconst last = parts[parts.length - 1];\n\treturn last || trimmed;\n}\n\n// ─── Aggregation ─────────────────────────────────────────────────────────────\n\ninterface RepoAggregate {\n\trepoRoot: string | null;\n\tbasename: string;\n\ttokens: number;\n\tcolor: string;\n}\n\nfunction aggregateRepos(sessions: ReadonlyArray): {\n\trepos: RepoAggregate[];\n\ttotalTokens: number;\n\tmaxWindow: number;\n\tsessionCount: number;\n} {\n\tconst map = new Map();\n\tfor (const s of sessions) {\n\t\tconst key = s.repoRoot ?? \"__null__\";\n\t\tconst tokens = s.tokens ?? 0;\n\t\tconst existing = map.get(key);\n\t\tif (existing) {\n\t\t\texisting.tokens += tokens;\n\t\t} else {\n\t\t\tconst basename = repoBasename(s.repoRoot);\n\t\t\tmap.set(key, {\n\t\t\t\trepoRoot: s.repoRoot,\n\t\t\t\tbasename,\n\t\t\t\ttokens,\n\t\t\t\tcolor: colorForRepo(basename),\n\t\t\t});\n\t\t}\n\t}\n\tconst repos = [...map.values()];\n\tconst totalTokens = repos.reduce((sum, r) => sum + r.tokens, 0);\n\t// Combined max window: the largest ctxWindow among the active sessions.\n\t// This mirrors SessionsTab's SummaryTiles combined-% logic.\n\tconst maxWindow = sessions.reduce(\n\t\t(max, s) => Math.max(max, s.ctxWindow),\n\t\t0,\n\t);\n\treturn {\n\t\trepos,\n\t\ttotalTokens,\n\t\tmaxWindow,\n\t\tsessionCount: sessions.length,\n\t};\n}\n\nfunction fmtTokens(n: number): string {\n\tif (n >= 100_000) return `${(n / 1000).toFixed(0)}k`;\n\treturn n.toLocaleString();\n}\n\nexport function RepoContextStack({\n\tsessions,\n\tloading,\n\terror,\n}: RepoContextStackProps): React.ReactElement | null {\n\tif (error) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Context per Repo (live)

    \n\t\t\t\t
    \n\t\t\t\t\tError loading sessions: {error.message}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n\n\tif (loading && !sessions) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Context per Repo (live)

    \n\t\t\t\t
    Loading sessions…
    \n\t\t\t
    \n\t\t);\n\t}\n\n\tconst activeSessions = sessions?.sessions ?? [];\n\tconst { repos, totalTokens, maxWindow, sessionCount } =\n\t\taggregateRepos(activeSessions);\n\n\tif (repos.length === 0) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Context per Repo (live)

    \n\t\t\t\t
    No active sessions.
    \n\t\t\t
    \n\t\t);\n\t}\n\n\tconst combinedPct =\n\t\tmaxWindow > 0 ? Math.round((totalTokens / maxWindow) * 100) : 0;\n\n\treturn (\n\t\t
    \n\t\t\t

    Context per Repo (live)

    \n\t\t\t\n\t\t\t\t{repos.map((r) => {\n\t\t\t\t\tconst pctOfTotal =\n\t\t\t\t\t\ttotalTokens > 0 ? (r.tokens / totalTokens) * 100 : 0;\n\t\t\t\t\tconst widthPct = totalTokens > 0 ? pctOfTotal : 0;\n\t\t\t\t\tconst tooltip =\n\t\t\t\t\t\t`${r.basename}: ${fmtTokens(r.tokens)} tokens ` +\n\t\t\t\t\t\t`(${pctOfTotal.toFixed(1)}% of total)`;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
    \n\t\t\t

    \n\t\t\t\t{fmtTokens(totalTokens)} tokens across {repos.length}{\" \"}\n\t\t\t\t{repos.length === 1 ? \"repo\" : \"repos\"} /{\" \"}\n\t\t\t\t{sessionCount}{\" \"}\n\t\t\t\t{sessionCount === 1 ? \"session\" : \"sessions\"}{\" \"}\n\t\t\t\t— {combinedPct}% of combined max window\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t{repos.map((r) => {\n\t\t\t\t\tconst pctOfTotal =\n\t\t\t\t\t\ttotalTokens > 0 ? (r.tokens / totalTokens) * 100 : 0;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{r.basename}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fmtTokens(r.tokens)} ({pctOfTotal.toFixed(0)}%)\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * dashboard-client/src/components/SessionContextGauges.tsx — Per-session context gauges (S40).\n *\n * Replaces the single launcher-only ContextGauge on the Overview tab with a\n * wrapping grid of compact gauges, one per active pi session. The launcher's\n * own session is always shown first + highlighted (\"this session\"), sourced\n * from the live snapshot (always available, never depends on heartbeat\n * timing). Other active sessions come from /api/sessions, sorted by lastSeen\n * descending, each labeled with repo basename + PID.\n *\n * Reuses the existing .gauge-bar / .gauge-fill / .gauge-{green,yellow,red}\n * classes from overview-events.css so the fill bars match the original\n * ContextGauge styling.\n *\n * PREVENT-PI-004: pure presentational component — no fetch, no network. Data\n * is passed in by the parent (OverviewTab) via its useApi(fetchSessions) +\n * useSSE() for real-time updates.\n */\n\nimport type React from \"react\";\nimport type { ActiveSession, SessionsResponse } from \"@contracts\";\n\nexport interface SessionContextGaugesProps {\n\t/** Active sessions from /api/sessions (may be null while loading). */\n\tsessions: SessionsResponse | null;\n\t/** Whether the initial fetch is in flight. */\n\tloading: boolean;\n\t/** Fetch error, if any. */\n\terror: Error | null;\n\t/** Launcher's own session ID (from snapshot.session.id), to exclude it\n\t * from the \"other sessions\" list (it's always rendered separately). */\n\tlauncherSessionId: string | null;\n\t/** Launcher's own context values (from snapshot — always available). */\n\tlauncher: {\n\t\ttokens: number | null;\n\t\tpercent: number | null;\n\t\tcontextWindow: number;\n\t};\n}\n\nfunction severityClass(percent: number): string {\n\tif (percent >= 90) return \"gauge-red\";\n\tif (percent >= 70) return \"gauge-yellow\";\n\treturn \"gauge-green\";\n}\n\nfunction fmtTokens(n: number | null): string {\n\tif (n == null) return \"?\";\n\tif (n >= 100_000) return `${(n / 1000).toFixed(0)}k`;\n\treturn n.toLocaleString();\n}\n\nfunction repoBasename(repoRoot: string | null): string {\n\tif (!repoRoot) return \"(unknown)\";\n\tconst trimmed = repoRoot.replace(/[\\\\/]+$/, \"\");\n\tif (!trimmed) return \"(unknown)\";\n\tconst parts = trimmed.split(/[\\\\/]/);\n\treturn parts[parts.length - 1] || trimmed;\n}\n\nfunction fmtAge(ms: number): string {\n\tconst s = Math.max(0, Math.round(ms / 1000));\n\tif (s < 60) return `${s}s ago`;\n\tconst m = Math.floor(s / 60);\n\tif (m < 60) return `${m}m ago`;\n\tconst h = Math.floor(m / 60);\n\treturn `${h}h ${m % 60}m ago`;\n}\n\ninterface GaugeData {\n\tkey: string;\n\tlabel: string;\n\tsublabel: string;\n\ttokens: number | null;\n\tpercent: number | null;\n\tcontextWindow: number;\n\tisSelf: boolean;\n}\n\n/** A single compact gauge: header label, fill bar, tokens/window sublabel. */\nfunction SessionGauge({ data }: { data: GaugeData }): React.ReactElement {\n\tconst pct = data.percent ?? 0;\n\tconst fillWidth = Math.max(pct, 1);\n\tconst cls = severityClass(pct);\n\tconst tokStr = fmtTokens(data.tokens);\n\tconst windowStr = data.contextWindow.toLocaleString();\n\tconst sublabel = `${tokStr} / ${windowStr} tokens`;\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{data.label}\n\t\t\t\t{pct}%\n\t\t\t
    \n\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t

    {sublabel}

    \n\t\t\t{data.sublabel &&

    {data.sublabel}

    }\n\t\t
    \n\t);\n}\n\nexport function SessionContextGauges({\n\tsessions,\n\tloading,\n\terror,\n\tlauncherSessionId,\n\tlauncher,\n}: SessionContextGaugesProps): React.ReactElement {\n\tconst now = Date.now();\n\n\t// Launcher gauge (always rendered, sourced from the snapshot).\n\tconst gauges: GaugeData[] = [\n\t\t{\n\t\t\tkey: \"self\",\n\t\t\tlabel: \"this session\",\n\t\t\tsublabel: \"\",\n\t\t\ttokens: launcher.tokens,\n\t\t\tpercent: launcher.percent,\n\t\t\tcontextWindow: launcher.contextWindow,\n\t\t\tisSelf: true,\n\t\t},\n\t];\n\n\t// Other active sessions (exclude the launcher by sessionId to avoid dup).\n\tconst others: ActiveSession[] = (sessions?.sessions ?? []).filter(\n\t\t(s) => s.sessionId !== launcherSessionId,\n\t);\n\t// Sort by lastSeen descending (most recent first).\n\tothers.sort((a, b) => b.lastSeen - a.lastSeen);\n\tfor (const s of others) {\n\t\tgauges.push({\n\t\t\tkey: s.sessionId,\n\t\t\tlabel: repoBasename(s.repoRoot),\n\t\t\tsublabel: `pid ${s.pid} · ${fmtAge(now - s.lastSeen)}${\n\t\t\t\ts.model ? ` · ${s.model}` : \"\"\n\t\t\t}`,\n\t\t\ttokens: s.tokens,\n\t\t\tpercent: s.percent,\n\t\t\tcontextWindow: s.ctxWindow || 0,\n\t\t\tisSelf: false,\n\t\t});\n\t}\n\n\tconst hasError = error && !sessions;\n\tconst showLoading = loading && !sessions;\n\n\treturn (\n\t\t
    \n\t\t\t

    Context per Session (live)

    \n\t\t\t{hasError ? (\n\t\t\t\t
    \n\t\t\t\t\tError loading sessions: {error!.message}\n\t\t\t\t
    \n\t\t\t) : showLoading ? (\n\t\t\t\t
    Loading sessions…
    \n\t\t\t) : gauges.length <= 1 && others.length === 0 ? (\n\t\t\t\t// Launcher-only: just render the one self gauge (no \"no sessions\"\n\t\t\t\t// message — the launcher always has a gauge).\n\t\t\t\t
    \n\t\t\t\t\t{gauges.map((g) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t) : (\n\t\t\t\t
    \n\t\t\t\t\t{gauges.map((g) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/TriggerStatus.tsx — trigger armed/ready status.\n *\n * Two bullets (Armed, Ready) + state text.\n * Ready bullet shows \"na\" (yellow) when not armed.\n * State text: ready → \"THRESHOLD EXCEEDED — compacting next event\",\n * armed → \"past fast gate — monitoring token count\",\n * idle → \"idle — below fast gate\".\n */\n\nimport type React from \"react\";\n\nexport interface TriggerStatusProps {\n\t/** Whether the trigger is armed (waiting for threshold). */\n\tarmed: boolean;\n\t/** Whether the trigger is ready to fire (pressure at/above threshold). */\n\tready: boolean;\n\t/** Current context token count, or null if unknown. */\n\tcurrentTokens: number | null;\n\t/** Token threshold for firing. */\n\tthresholdTokens: number;\n\t/** Fast-gate pressure threshold (percent, 0–100). */\n\tfastGatePct: number;\n}\n\ntype BulletState = \"on\" | \"off\" | \"na\";\n\nfunction Bullet({\n\tstate,\n\tlabel,\n}: {\n\tstate: BulletState;\n\tlabel: string;\n}): React.ReactElement {\n\tconst cls =\n\t\tstate === \"on\" ? \"bullet-on\" : state === \"na\" ? \"bullet-na\" : \"bullet-off\";\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t{label}\n\t\t
    \n\t);\n}\n\nexport function TriggerStatus({\n\tarmed,\n\tready,\n}: TriggerStatusProps): React.ReactElement {\n\t// tr-armed: on if armed, off if not\n\t// tr-ready: on if ready, na (yellow) if not armed, off if armed but not ready\n\tconst armedState: BulletState = armed ? \"on\" : \"off\";\n\tconst readyState: BulletState = ready\n\t\t? \"on\"\n\t\t: !armed\n\t\t\t? \"na\"\n\t\t\t: \"off\";\n\n\tconst stateText = ready\n\t\t? \"THRESHOLD EXCEEDED — compacting next event\"\n\t\t: armed\n\t\t\t? \"past fast gate — monitoring token count\"\n\t\t\t: \"idle — below fast gate\";\n\n\treturn (\n\t\t
    \n\t\t\t

    Trigger Status

    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t

    {stateText}

    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/VectorStoreCard.tsx — Vector Store (session) card.\n *\n * 9 fields: Checkpoints, Original (dropped), Kept (summaries), Freed,\n * Injected, Recall Relevance %, Storage Dedup %, Collapsed, Last ID.\n * Plus a compression meter bar (green ≥90%, yellow ≥60%, red <60%).\n *\n * NOTE: dedupHitRate, storageDedupRate, compressionPct, dedupPct are\n * 0–1 fractions at runtime (despite contract saying 0–100).\n * Tooltips copied verbatim from html.ts.\n */\n\nimport type React from \"react\";\nimport { fmtPctFromFraction } from \"../utils/format\";\n\nexport interface VectorStoreCardProps {\n\tcheckpointCount: number;\n\t/** Original tokens dropped into compaction (session). */\n\ttokensIn: number;\n\t/** Kept summary tokens (session). */\n\ttokensOut: number;\n\t/** Tokens freed = dropped − kept (session). */\n\ttokensFreed: number;\n\t/** Recall injection count. */\n\tinjectedCount: number;\n\t/** Recall relevance — 0–1 fraction. */\n\tdedupHitRate: number;\n\t/** Storage dedup rate — 0–1 fraction. */\n\tstorageDedupRate: number;\n\t/** Duplicate chunks collapsed. */\n\tdedupCollapsed: number;\n\t/** Last checkpoint ID or null. */\n\tlastCheckpointId: string | null;\n\t/** Session compression ratio — 0–1 fraction. */\n\tcompressionPct: number;\n\t/** Session dedup contribution — 0–1 fraction. */\n\tdedupPct: number;\n}\n\n/** Compression meter colour class (inverse of context: high = good). */\nfunction compressClass(sp: number): string {\n\tif (sp >= 0.9) return \"meter-green\";\n\tif (sp >= 0.6) return \"meter-yellow\";\n\treturn \"meter-red\";\n}\n\n/** Stat row with optional tooltip. */\nfunction StatRow({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string | number;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function VectorStoreCard(\n\tprops: VectorStoreCardProps,\n): React.ReactElement {\n\tconst sp = props.compressionPct;\n\tconst barCls = compressClass(sp);\n\tconst barWidth = Math.max(sp * 100, 0.5);\n\tconst compressSub = `${fmtPctFromFraction(sp)} tokens saved · dedup: ${fmtPctFromFraction(props.dedupPct)}`;\n\n\treturn (\n\t\t
    \n\t\t\t

    Vector Store (session)

    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{compressSub}\n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/RepoAllSessionsCard.tsx — Repo (all sessions) card.\n *\n * 7 fields: Checkpoints, Original, Kept, Freed, Sessions, Collapsed, Storage Dedup.\n * Plus a compression meter bar (green ≥90%, yellow ≥60%, red <60%).\n *\n * NOTE: storageDedupRate, compressionPct, dedupPct are 0–1 fractions\n * at runtime (despite contract saying 0–100).\n */\n\nimport type React from \"react\";\nimport { fmtPctFromFraction } from \"../utils/format\";\n\nexport interface RepoAllSessionsCardProps {\n\tcheckpointCount: number;\n\t/** Original tokens dropped (repo-level). */\n\ttokensIn: number;\n\t/** Kept summary tokens (repo-level). */\n\ttokensOut: number;\n\t/** Tokens freed (repo-level). */\n\ttokensFreed: number;\n\t/** Number of sessions. */\n\tsessionCount: number;\n\t/** Duplicate chunks collapsed (repo-level). */\n\tdedupCollapsed: number;\n\t/** Storage dedup rate — 0–1 fraction. */\n\tstorageDedupRate: number;\n\t/** Repo compression ratio — 0–1 fraction. */\n\tcompressionPct: number;\n\t/** Repo dedup contribution — 0–1 fraction. */\n\tdedupPct: number;\n}\n\nfunction compressClass(sp: number): string {\n\tif (sp >= 0.9) return \"meter-green\";\n\tif (sp >= 0.6) return \"meter-yellow\";\n\treturn \"meter-red\";\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n}: {\n\tlabel: string;\n\tvalue: string | number;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t{label}\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function RepoAllSessionsCard(\n\tprops: RepoAllSessionsCardProps,\n): React.ReactElement {\n\tconst sp = props.compressionPct;\n\tconst barCls = compressClass(sp);\n\tconst barWidth = Math.max(sp * 100, 0.5);\n\tconst compressSub = `${fmtPctFromFraction(sp)} tokens saved · dedup: ${fmtPctFromFraction(props.dedupPct)}`;\n\n\treturn (\n\t\t
    \n\t\t\t

    Repo (all sessions)

    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{compressSub}\n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/DataSafetyCard.tsx — Data Safety / Shield.\n *\n * 4 fields: Regions Retained, Compressed-Original bytes, Dedup Duplicates,\n * Permanently Deleted (always 0B, shown in green).\n * Plus the safe-note text (verbatim from html.ts).\n */\n\nimport type React from \"react\";\nimport { fmtBytes } from \"../utils/format\";\n\nexport interface DataSafetyCardProps {\n\tregionsRetained: number;\n\t/** Original byte size of compressed data (bytes). */\n\tcompressedOriginalBytes: number;\n\t/** Number of duplicate chunks collapsed. */\n\tduplicatesCollapsed: number;\n\t/** Bytes permanently deleted (always 0). */\n\tbytesPermanentlyDeleted: number;\n}\n\nexport function DataSafetyCard(\n\tprops: DataSafetyCardProps,\n): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t

    🛡 Data Safety

    \n\t\t\t
    \n\t\t\t\tRegions Retained\n\t\t\t\t\n\t\t\t\t\t{props.regionsRetained.toLocaleString()}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCompressed-Original\n\t\t\t\t\n\t\t\t\t\t{fmtBytes(props.compressedOriginalBytes)}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tDedup Duplicates\n\t\t\t\t\n\t\t\t\t\t{props.duplicatesCollapsed.toLocaleString()}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tPermanently Deleted\n\t\t\t\t\n\t\t\t\t\t{fmtBytes(props.bytesPermanentlyDeleted)}\n\t\t\t\t\n\t\t\t
    \n\t\t\t

    \n\t\t\t\tEvery compacted region is kept verbatim (compressed). "Drop" =\n\t\t\t\tremoved from the live window only. We never delete your data.\n\t\t\t

    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/ConfigSummaryCard.tsx — Configuration summary.\n *\n * 7 fields with tooltips (verbatim from html.ts):\n * Tier (live), Preset, Pressure, Threshold, Fast Gate, Auto, Anchor.\n *\n * NOTE: pressure and tierPct are 0–1 fractions at runtime.\n * fastGatePct is 0–100 at runtime.\n */\n\nimport type React from \"react\";\n\nexport interface ConfigSummaryCardProps {\n\t/** Current tier name. */\n\ttier: string;\n\t/** Preset tier name. */\n\tpresetTier: string;\n\t/** Live pressure — 0–1 fraction. */\n\tpressure: number;\n\t/** Token threshold. */\n\tthresholdTokens: number;\n\t/** Tier percentage — 0–1 fraction (runtime-only field). */\n\ttierPct?: number;\n\t/** Context window size. */\n\tcontextWindow: number;\n\t/** Fast-gate percentage — 0–100. */\n\tfastGatePct: number;\n\t/** Whether auto-compaction is enabled. */\n\tauto: boolean;\n\t/** Number of anchor user messages. */\n\tanchorUserMessages: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function ConfigSummaryCard(\n\tprops: ConfigSummaryCardProps,\n): React.ReactElement {\n\tconst pressurePct = `${Math.round((props.pressure ?? 0) * 100)}%`;\n\n\tlet thresholdTxt = props.thresholdTokens.toLocaleString();\n\tif (props.tierPct != null && props.contextWindow > 0) {\n\t\tthresholdTxt += ` (${Math.round(props.tierPct * 100)}% of ${props.contextWindow.toLocaleString()})`;\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    Configuration

    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/CacheStatusPerModel.tsx — Model & Cost Savings card.\n *\n * Shows $ saved, context-windows extended, Model, Provider, Input Rate, Output Rate.\n * Tooltips copied verbatim from html.ts.\n */\n\nimport type React from \"react\";\n\nexport interface ModelCostCardProps {\n\t/** Model name. */\n\tname: string;\n\t/** Provider display name (providerName fallback to provider). */\n\tprovider: string;\n\t/** USD per input token. */\n\tinputRate: number;\n\t/** USD per output token. */\n\toutputRate: number;\n\t/** Tokens freed (repo-level) used for cost calc. */\n\trepoTokensFreed: number;\n\t/** Context window size used for windows calc. */\n\tcontextWindow: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n\ttitle,\n}: {\n\tlabel: string;\n\tvalue: string;\n\ttitle?: string;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{label}\n\t\t\t\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function CacheStatusPerModel(\n\tprops: ModelCostCardProps,\n): React.ReactElement {\n\tconst repoSaved = props.repoTokensFreed || 0;\n\tlet usd = 0;\n\tlet windows = \"0\";\n\n\tif (props.inputRate && repoSaved > 0) {\n\t\tusd = repoSaved * props.inputRate;\n\t\tconst win = props.contextWindow || 0;\n\t\twindows = win > 0 ? (repoSaved / win).toFixed(1) : \"0\";\n\t}\n\n\tconst usdStr = `≈ $${usd.toFixed(4)} saved`;\n\tconst windowsStr = `${windows} context-windows extended`;\n\n\treturn (\n\t\t
    \n\t\t\t

    💰 Model & Cost Savings

    \n\t\t\t
    {usdStr}
    \n\t\t\t
    {windowsStr}
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/SessionInfo.tsx — Crew / Agents card.\n *\n * Shows Active Agents, Current Turn, and Status.\n */\n\nimport type React from \"react\";\n\nexport interface SessionInfoProps {\n\t/** Number of active crew agents. */\n\tactiveAgents: number;\n\t/** Current turn index in the crew round-robin. */\n\tcurrentTurn: number;\n}\n\nexport function SessionInfo(\n\tprops: SessionInfoProps,\n): React.ReactElement {\n\tconst { activeAgents, currentTurn } = props;\n\tconst status =\n\t\tactiveAgents > 0 ? `▶ ${activeAgents} running` : \"idle\";\n\n\treturn (\n\t\t
    \n\t\t\t

    Crew / Agents

    \n\t\t\t
    \n\t\t\t\tActive Agents\n\t\t\t\t{activeAgents}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCurrent Turn\n\t\t\t\t{currentTurn}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tStatus\n\t\t\t\t{status}\n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/LegendCard.tsx — \"What these numbers mean\" legend.\n *\n * Collapsible
    with the legend list (verbatim from html.ts).\n * Full-width card (grid-column: 1 / -1).\n */\n\nimport type React from \"react\";\n\nconst LEGEND_ITEMS: ReadonlyArray = [\n\t
  • \n\t\tOriginal (dropped) — everything compacted away (including\n\t\tduplicates caught by dedup). The "in."\n\t
  • ,\n\t
  • \n\t\tKept (summaries) — compact summaries still held as "memory"\n\t\t(the "out").\n\t
  • ,\n\t
  • \n\t\tFreed = dropped − kept — tokens saved so far (higher = better).\n\t
  • ,\n\t
  • \n\t\tCompression % — Freed ÷ Dropped — the headline efficiency\n\t\tnumber. Higher = more space reclaimed.\n\t
  • ,\n\t
  • \n\t\tStorage dedup % — how often new content matched something\n\t\talready saved, so no duplicate copy was written.\n\t
  • ,\n\t
  • \n\t\tData safety — every compacted region is kept verbatim\n\t\t(compressed). Nothing is permanently deleted; you can restore any of\n\t\tit.\n\t
  • ,\n];\n\nexport function LegendCard(): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tWhat these numbers mean\n\t\t\t\t
      {LEGEND_ITEMS}
    \n\t\t\t\t

    \n\t\t\t\t\tHover any label above for a quick explanation.\n\t\t\t\t

    \n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/tabs/OverviewTab.tsx — Overview tab (full spec).\n *\n * Renders all 11 cards from the spec:\n * 1. Context Window (ContextGauge)\n * 2. Trigger Status (TriggerStatus)\n * 3. Vector Store (session) (VectorStoreCard)\n * 4. Repo (all sessions) (RepoAllSessionsCard)\n * 5. Data Safety (DataSafetyCard)\n * 6. Configuration (ConfigSummaryCard)\n * 7. Model & Cost Savings (CacheStatusPerModel)\n * 8. Crew / Agents (SessionInfo)\n * 9. Cache Hits & Compactions (CacheHitsCard)\n * 10. Time Saved (TimeSavedCard)\n * 11. Legend (LegendCard)\n *\n * All data comes from the snapshot prop passed by App.tsx.\n */\n\nimport type React from \"react\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { useSSE } from \"../hooks/useSSE\";\nimport { fetchSessions } from \"../api/client\";\nimport type {\n\tSnapshotResponse,\n\tSseEvent,\n\tSseSessionSample,\n\tSessionsResponse,\n} from \"@contracts\";\nimport type { RuntimeSnapshot } from \"../utils/types\";\nimport { RepoContextStack } from \"../components/RepoContextStack\";\nimport { SessionContextGauges } from \"../components/SessionContextGauges\";\nimport { TriggerStatus } from \"../components/TriggerStatus\";\nimport { VectorStoreCard } from \"../components/VectorStoreCard\";\nimport { RepoAllSessionsCard } from \"../components/RepoAllSessionsCard\";\nimport { DataSafetyCard } from \"../components/DataSafetyCard\";\nimport { ConfigSummaryCard } from \"../components/ConfigSummaryCard\";\nimport { CacheStatusPerModel } from \"../components/CacheStatusPerModel\";\nimport { SessionInfo } from \"../components/SessionInfo\";\nimport { CacheHitsCard } from \"../components/CacheHitsCard\";\nimport { TimeSavedCard } from \"../components/TimeSavedCard\";\nimport { LegendCard } from \"../components/LegendCard\";\n\n/** Type guard: narrows an SSE event to a session_sample event. */\nfunction isSessionSample(e: SseEvent): e is SseSessionSample {\n\treturn e.type === \"session_sample\";\n}\n\nexport interface OverviewTabProps {\n\tsnapshot: SnapshotResponse | null;\n\tloading: boolean;\n\terror: Error | null;\n}\n\nfunction formatUpdatedAt(ts: string | null): string {\n\tif (!ts) return \"never\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn ts;\n\t}\n}\n\nexport default function OverviewTab({\n\tsnapshot,\n\tloading,\n\terror,\n}: OverviewTabProps): React.ReactElement {\n\t// S40: real-time per-repo context via /api/sessions + SSE. Mirrors the\n\t// SessionsTab pattern: 2s poll + session_sample SSE refetch.\n\tconst {\n\t\tdata: sessionsData,\n\t\terror: sessionsErr,\n\t\tloading: sessionsLoading,\n\t\trefetch: refetchSessions,\n\t} = useApi(\n\t\tuseCallback(() => fetchSessions(), []),\n\t\t{ pollInterval: 2_000 },\n\t);\n\n\tconst { events } = useSSE();\n\n\tconst sampleEvents = useMemo(() => events.filter(isSessionSample), [events]);\n\tconst lastSampleTs = useMemo(() => {\n\t\tif (sampleEvents.length === 0) return null;\n\t\treturn sampleEvents[sampleEvents.length - 1].ts;\n\t}, [sampleEvents]);\n\n\tuseEffect(() => {\n\t\tif (lastSampleTs == null) return;\n\t\trefetchSessions();\n\t}, [lastSampleTs, refetchSessions]);\n\n\tif (loading && !snapshot)\n\t\treturn
    Loading snapshot…
    ;\n\tif (error && !snapshot)\n\t\treturn
    Error: {error.message}
    ;\n\tif (!snapshot) return
    No snapshot data.
    ;\n\n\t// Cast to RuntimeSnapshot for tierPct (runtime-only field).\n\tconst d = snapshot as RuntimeSnapshot;\n\tconst { context, compression, trigger, session, store, tier, updatedAt } = d;\n\tconst cfg = d.config;\n\tconst crew = d.crew;\n\tconst integrity = d.integrity;\n\tconst cacheHits = d.cacheHits;\n\tconst compacts = d.compacts;\n\tconst timeSaved = d.timeSaved;\n\tconst repo = d.repo;\n\tconst model = d.model;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t{tier}\n\t\t\t\tupdated {formatUpdatedAt(updatedAt)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t{model && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n"],"names":["REPO_PALETTE","hashString","str","hash","i","colorForRepo","basename","repoBasename","repoRoot","trimmed","parts","aggregateRepos","sessions","map","s","key","tokens","existing","repos","totalTokens","sum","r","maxWindow","max","fmtTokens","n","RepoContextStack","loading","error","jsxs","jsx","activeSessions","sessionCount","combinedPct","pctOfTotal","widthPct","tooltip","severityClass","percent","fmtAge","ms","m","SessionGauge","data","pct","fillWidth","cls","tokStr","windowStr","sublabel","SessionContextGauges","launcherSessionId","launcher","now","gauges","others","a","b","hasError","showLoading","g","Bullet","state","label","TriggerStatus","armed","ready","armedState","readyState","stateText","compressClass","sp","StatRow","value","title","VectorStoreCard","props","barCls","barWidth","compressSub","fmtPctFromFraction","RepoAllSessionsCard","DataSafetyCard","fmtBytes","ConfigSummaryCard","pressurePct","thresholdTxt","CacheStatusPerModel","repoSaved","usd","windows","win","usdStr","windowsStr","SessionInfo","activeAgents","currentTurn","status","LEGEND_ITEMS","LegendCard","isSessionSample","e","formatUpdatedAt","ts","OverviewTab","snapshot","sessionsData","sessionsErr","sessionsLoading","refetchSessions","useApi","useCallback","fetchSessions","events","useSSE","sampleEvents","useMemo","lastSampleTs","useEffect","d","context","compression","trigger","session","store","tier","updatedAt","cfg","crew","integrity","cacheHits","compacts","timeSaved","repo","model","CacheHitsCard","TimeSavedCard"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/ReposTab-DuyhOktG.js b/extensions/dashboard-client/dist/assets/ReposTab-Bk0XStsz.js similarity index 99% rename from extensions/dashboard-client/dist/assets/ReposTab-DuyhOktG.js rename to extensions/dashboard-client/dist/assets/ReposTab-Bk0XStsz.js index c9b34d5..7511c7a 100644 --- a/extensions/dashboard-client/dist/assets/ReposTab-DuyhOktG.js +++ b/extensions/dashboard-client/dist/assets/ReposTab-Bk0XStsz.js @@ -1,2 +1,2 @@ -import{j as e,r as i,u as g,a as $,b as L}from"./index-CqLN7STl.js";function M(s){return s>=1048576?`${(s/1048576).toFixed(1)} MiB`:s>=1024?`${(s/1024).toFixed(1)} KiB`:`${s} B`}function O(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:String(s)}function A({totalRepos:s,totalCheckpoints:a,totalTokensSaved:t,compressedOriginalBytes:o}){return e.jsxs("div",{className:"summary-tiles",children:[e.jsxs("div",{className:"tile",children:[e.jsx("span",{className:"tile-label",children:"Repositories"}),e.jsx("span",{className:"tile-value",children:s.toLocaleString()})]}),e.jsxs("div",{className:"tile",children:[e.jsx("span",{className:"tile-label",children:"Total Checkpoints"}),e.jsx("span",{className:"tile-value",children:a.toLocaleString()})]}),e.jsxs("div",{className:"tile tile-highlight",children:[e.jsx("span",{className:"tile-label",children:"Total Tokens Saved"}),e.jsx("span",{className:"tile-value",children:O(t)})]}),e.jsxs("div",{className:"tile",children:[e.jsx("span",{className:"tile-label",children:"Compressed-Original"}),e.jsx("span",{className:"tile-value",children:M(o)})]})]})}const y=[{key:"displayName",label:"Repo"},{key:"modelName",label:"Model"},{key:"checkpointCount",label:"Checkpoints"},{key:"tokensSaved",label:"Tokens Saved"},{key:"compressedOriginalBytes",label:"Retained"},{key:"lastCompactedAt",label:"Last Compacted"}];function B(s){return s>=1048576?`${(s/1048576).toFixed(1)} MiB`:s>=1024?`${(s/1024).toFixed(1)} KiB`:`${s} B`}function D(s){if(s==null)return"—";try{return new Date(s).toLocaleString()}catch{return String(s)}}function F({repos:s,onSelect:a}){const[t,o]=i.useState(""),[n,d]=i.useState("lastCompactedAt"),[c,x]=i.useState("desc"),k=i.useMemo(()=>{const l=t.trim().toLowerCase(),p=l?s.filter(N=>N.displayName.toLowerCase().includes(l)):s.slice();return p.sort((N,w)=>{const m=N[n],h=w[n],v=m==null,f=h==null;if(v&&f)return 0;if(v)return c==="desc"?1:-1;if(f)return c==="desc"?-1:1;const S=typeof m=="number"&&typeof h=="number"?m-h:String(m).localeCompare(String(h));return c==="desc"?-S:S}),p},[s,t,n,c]),T=l=>{n===l?x(p=>p==="asc"?"desc":"asc"):(d(l),x(l==="lastCompactedAt"||l==="tokensSaved"||l==="compressedOriginalBytes"?"desc":"asc"))};return e.jsxs("div",{className:"repo-table-wrap",children:[e.jsx("input",{type:"search",className:"repo-search",placeholder:"Search repos…",value:t,onChange:l=>o(l.target.value),"aria-label":"Search repos"}),e.jsxs("table",{className:"repo-table",children:[e.jsx("thead",{children:e.jsx("tr",{children:y.map(l=>e.jsx("th",{children:e.jsxs("button",{type:"button",className:`sort-header ${n===l.key?`active-${c}`:""}`,onClick:()=>T(l.key),children:[l.label,n===l.key&&e.jsx("span",{className:"sort-arrow",children:c==="asc"?" ▲":" ▼"})]})},l.key))})}),e.jsxs("tbody",{children:[k.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:y.length,className:"repo-empty",children:s.length===0?"No repositories registered yet.":"No repos match your search."})}),k.map(l=>e.jsxs("tr",{onClick:()=>a(l),children:[e.jsx("td",{className:"repo-name",title:l.repoRoot,children:l.displayName}),e.jsx("td",{className:"repo-model",children:l.modelName??"—"}),e.jsx("td",{className:"num",children:l.checkpointCount.toLocaleString()}),e.jsx("td",{className:"num",children:l.tokensSaved.toLocaleString()}),e.jsx("td",{className:"num",children:B(l.compressedOriginalBytes)}),e.jsx("td",{className:"num",children:D(l.lastCompactedAt)})]},l.stateDir))]})]})]})}function u(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:String(s)}function I(s){return s>=1048576?`${(s/1048576).toFixed(1)} MiB`:s>=1024?`${(s/1024).toFixed(1)} KiB`:`${s} B`}function b(s){if(s==null)return"never";try{return new Date(s).toLocaleString()}catch{return String(s)}}function W({repo:s,onClose:a}){return i.useEffect(()=>{const t=o=>{o.key==="Escape"&&a()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[a]),e.jsx("div",{className:"modal-backdrop",onClick:a,role:"dialog","aria-modal":"true",children:e.jsxs("div",{className:"modal-card",onClick:t=>t.stopPropagation(),children:[e.jsxs("header",{className:"modal-header",children:[e.jsx("h2",{children:s.displayName}),e.jsx("button",{type:"button",className:"modal-close",onClick:a,"aria-label":"Close",children:"×"})]}),e.jsx("p",{className:"modal-path",children:s.repoRoot}),e.jsxs("div",{className:"modal-grid",children:[e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Checkpoints"}),e.jsx("span",{className:"modal-value",children:s.checkpointCount.toLocaleString()})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Sessions"}),e.jsx("span",{className:"modal-value",children:s.sessions.toLocaleString()})]}),e.jsxs("div",{className:"modal-stat modal-highlight",children:[e.jsx("span",{className:"modal-label",children:"Tokens saved"}),e.jsx("span",{className:"modal-value",children:u(s.tokensSaved)})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Tokens kept"}),e.jsx("span",{className:"modal-value",children:u(s.tokensKept)})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Tokens dropped"}),e.jsx("span",{className:"modal-value",children:u(s.tokensDropped)})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Dedup rate"}),e.jsx("span",{className:"modal-value",children:"—"})]})]}),e.jsx("h3",{children:"Model"}),e.jsxs("dl",{className:"modal-dl",children:[e.jsx("dt",{children:"Provider"}),e.jsx("dd",{children:s.providerName??"—"}),e.jsx("dt",{children:"Model"}),e.jsx("dd",{children:s.modelName??"—"}),e.jsx("dt",{children:"Input rate"}),e.jsx("dd",{children:s.inputRate!==null?`${s.inputRate} tok/s`:"—"}),e.jsx("dt",{children:"Output rate"}),e.jsx("dd",{children:s.outputRate!==null?`${s.outputRate} tok/s`:"—"}),e.jsx("dt",{children:"Context window"}),e.jsx("dd",{children:s.contextWindow!==null?u(s.contextWindow):"—"}),e.jsx("dt",{children:"Max tokens"}),e.jsx("dd",{children:s.maxTokens!==null?u(s.maxTokens):"—"}),e.jsx("dt",{children:"Reasoning"}),e.jsx("dd",{children:s.reasoning===null?"—":s.reasoning?"on":"off"})]}),e.jsx("h3",{children:"Activity"}),e.jsxs("dl",{className:"modal-dl",children:[e.jsx("dt",{children:"Last compacted"}),e.jsx("dd",{children:b(s.lastCompactedAt)}),e.jsx("dt",{children:"Last seen"}),e.jsx("dd",{children:b(s.lastSeen)}),e.jsx("dt",{children:"Compressed-Original"}),e.jsx("dd",{children:I(s.compressedOriginalBytes)})]})]})})}function j(s){const a=s??0;return a>=3600?`${(a/3600).toFixed(1)}h`:a>=60?`${Math.round(a/60)}m`:a>=1?`${a.toFixed(1)}s`:`${Math.round(a*1e3)}ms`}const E=["Repo","Model","Tier","Context %","State","Compactions (s/t)","Cache Hits (s/t)","Compact s/t (s)","CacheHit s/t (s)"];function H({servers:s}){return e.jsxs("div",{className:"active-repos-section",children:[e.jsx("p",{className:"legend-note",children:"Repos seen within the last 30 minutes, with their per-repo cache-hit, compaction, and time-saved (est.) totals pulled live from each repo's dashboard.json."}),e.jsx("div",{className:"table-scroll",children:e.jsxs("table",{className:"active-repos-table",children:[e.jsx("thead",{children:e.jsx("tr",{children:E.map((a,t)=>e.jsx("th",{className:t>=3&&t!==4?"num":void 0,children:a},a))})}),e.jsxs("tbody",{children:[s.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:9,className:"repo-empty",children:"No active repositories."})}),s.map(a=>{const t=a.cacheHits??{session:0,total:0},o=a.compacts??{session:0,total:0},n=a.timeSaved??{compact:{sessionSec:0,totalSec:0},cacheHit:{sessionSec:0,totalSec:0}};return e.jsxs("tr",{children:[e.jsx("td",{title:a.repoRoot,children:a.displayName||a.repoRoot}),e.jsx("td",{children:a.model??"—"}),e.jsx("td",{children:a.tier??"—"}),e.jsx("td",{className:"num",children:a.contextPct!=null?`${Math.round(a.contextPct*100)}%`:"—"}),e.jsx("td",{children:a.state??"—"}),e.jsxs("td",{className:"num",children:[o.session," / ",o.total]}),e.jsxs("td",{className:"num",children:[t.session," / ",t.total]}),e.jsxs("td",{className:"num",children:[j(n.compact.sessionSec)," /"," ",j(n.compact.totalSec)]}),e.jsxs("td",{className:"num",children:[j(n.cacheHit.sessionSec)," /"," ",j(n.cacheHit.totalSec)]})]},a.repoRoot)})]})]})})]})}function C(s){if(!s.length)return"—";const a=Math.min(...s),t=Math.max(...s);return a===t?a.toLocaleString():`${a.toLocaleString()}–${t.toLocaleString()}`}function R(s){if(!s.length)return"—";const a=Math.min(...s),t=Math.max(...s),o=n=>`$${n.toFixed(6)}`;return a===t?o(a):`${o(a)}–${o(t)}`}function K(s){const a={};for(const t of s){const o=t.modelName&&t.modelName.trim()||"(unknown)";a[o]||(a[o]={model:o,provider:t.providerName??t.provider??"—",checkpoints:0,tokensSaved:0,tokensIn:0,tokensOut:0,sessions:0,usd:0,inRates:[],outRates:[],ctxWindows:[],maxTokens:[],reasoning:null,lastAt:0});const n=a[o];n.checkpoints+=t.checkpointCount||0,n.tokensSaved+=t.tokensSaved||0,n.tokensIn+=t.tokensDropped||0,n.tokensOut+=t.tokensKept||0,n.sessions+=t.sessions||0,t.inputRate&&(n.usd+=(t.tokensSaved||0)*t.inputRate,n.inRates.push(t.inputRate)),t.outputRate&&n.outRates.push(t.outputRate),t.contextWindow&&n.ctxWindows.push(t.contextWindow),t.maxTokens&&n.maxTokens.push(t.maxTokens),t.reasoning!=null&&(n.reasoning=t.reasoning),t.lastCompactedAt&&t.lastCompactedAt>n.lastAt&&(n.lastAt=t.lastCompactedAt)}return Object.values(a).sort((t,o)=>o.tokensSaved-t.tokensSaved)}const r={tokensIn:"Tokens dropped from context by compaction (the input reclaimed)",tokensOut:"Tokens kept as compacted summaries still in context (the output retained)",ctxWindow:"Model context window (max input tokens the model accepts)",maxOut:"Model max output tokens per turn",reas:"Reasoning-capable model",sessions:"Distinct sessions with at least one checkpoint",inRate:"USD per input token",outRate:"USD per output token"};function P({repos:s}){const a=i.useMemo(()=>K(s),[s]);return e.jsxs("div",{className:"savings-by-model",children:[e.jsx("p",{className:"legend-note",children:"How much context & cost mega-compact has reclaimed, grouped by the model you were running. Compression ratio reflects workload/content, not model quality."}),e.jsx("div",{className:"table-scroll",children:e.jsxs("table",{className:"savings-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Model"}),e.jsx("th",{children:"Provider"}),e.jsx("th",{className:"num",title:r.tokensIn,children:"Tokens In"}),e.jsx("th",{className:"num",title:r.tokensOut,children:"Tokens Out"}),e.jsx("th",{className:"num",children:"Freed"}),e.jsx("th",{className:"num",title:r.ctxWindow,children:"Ctx Window"}),e.jsx("th",{className:"num",title:r.maxOut,children:"Max Out"}),e.jsx("th",{className:"num",title:r.reas,children:"Reas."}),e.jsx("th",{className:"num",title:r.sessions,children:"Sessions"}),e.jsx("th",{className:"num",children:"Checkpoints"}),e.jsx("th",{className:"num",title:r.inRate,children:"In $/tok"}),e.jsx("th",{className:"num",title:r.outRate,children:"Out $/tok"}),e.jsx("th",{className:"num",children:"$ Saved"}),e.jsx("th",{className:"num",children:"Last Used"})]})}),e.jsxs("tbody",{children:[a.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:14,className:"repo-empty",children:"No repositories registered yet."})}),a.map(t=>{const o=(t.tokensIn||0)-(t.tokensOut||0),n=t.usd>0?`$${t.usd.toFixed(4)}`:"—",d=t.lastAt?new Date(t.lastAt).toLocaleString():"—",c=t.reasoning==null?"—":t.reasoning?"yes":"no";return e.jsxs("tr",{children:[e.jsx("td",{className:"repo-model",children:t.model}),e.jsx("td",{children:t.provider}),e.jsx("td",{className:"num",children:t.tokensIn.toLocaleString()}),e.jsx("td",{className:"num",children:t.tokensOut.toLocaleString()}),e.jsx("td",{className:"num",children:o.toLocaleString()}),e.jsx("td",{className:"num",children:C(t.ctxWindows)}),e.jsx("td",{className:"num",children:C(t.maxTokens)}),e.jsx("td",{className:"num",children:c}),e.jsx("td",{className:"num",children:t.sessions.toLocaleString()}),e.jsx("td",{className:"num",children:t.checkpoints.toLocaleString()}),e.jsx("td",{className:"num",children:R(t.inRates)}),e.jsx("td",{className:"num",children:R(t.outRates)}),e.jsx("td",{className:"num",children:n}),e.jsx("td",{className:"num",children:d})]},t.model)})]})]})}),e.jsx("p",{className:"legend-note",children:"Tokens In = Σ original region tokens dropped by compaction. Tokens Out = Σ compacted summary tokens still retained in context. Freed = Tokens In − Tokens Out (net context reclaimed). Ctx Window / Max Out / Reas. come from the latest captured model snapshot for each repo."})]})}async function U(){return await L()}function z(){const[s,a]=i.useState(null),{data:t,error:o}=g(i.useCallback(()=>U(),[]),{pollInterval:1e4}),{data:n}=g(i.useCallback(()=>$(),[]),{pollInterval:1e4});if(o&&!t)return e.jsxs("div",{className:"tab-stub",children:["Error loading repos: ",o.message]});if(!t)return e.jsx("div",{className:"tab-stub",children:"Loading repos…"});const d=t.summary,c=t.repos,x=n?.servers??[];return e.jsxs("div",{className:"repos-tab",children:[e.jsx(A,{totalRepos:d?.totalRepos??0,totalCheckpoints:d?.totalCheckpoints??0,totalTokensSaved:d?.totalTokensSaved??0,compressedOriginalBytes:d?.totalCompressedOriginalBytes??0}),e.jsx("h2",{className:"section-header",children:"All Repositories"}),e.jsx(F,{repos:c,onSelect:a}),e.jsx("h2",{className:"section-header",children:"Active Repos — Live Cache Hits & Compactions"}),e.jsx(H,{servers:x}),e.jsx("h2",{className:"section-header",children:"Savings by Model"}),e.jsx(P,{repos:c}),s&&e.jsx(W,{repo:s,onClose:()=>a(null)})]})}export{z as default}; -//# sourceMappingURL=ReposTab-DuyhOktG.js.map +import{j as e,r as i,u as g,a as $,b as L}from"./index-CqpO7WrQ.js";function M(s){return s>=1048576?`${(s/1048576).toFixed(1)} MiB`:s>=1024?`${(s/1024).toFixed(1)} KiB`:`${s} B`}function O(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:String(s)}function A({totalRepos:s,totalCheckpoints:a,totalTokensSaved:t,compressedOriginalBytes:o}){return e.jsxs("div",{className:"summary-tiles",children:[e.jsxs("div",{className:"tile",children:[e.jsx("span",{className:"tile-label",children:"Repositories"}),e.jsx("span",{className:"tile-value",children:s.toLocaleString()})]}),e.jsxs("div",{className:"tile",children:[e.jsx("span",{className:"tile-label",children:"Total Checkpoints"}),e.jsx("span",{className:"tile-value",children:a.toLocaleString()})]}),e.jsxs("div",{className:"tile tile-highlight",children:[e.jsx("span",{className:"tile-label",children:"Total Tokens Saved"}),e.jsx("span",{className:"tile-value",children:O(t)})]}),e.jsxs("div",{className:"tile",children:[e.jsx("span",{className:"tile-label",children:"Compressed-Original"}),e.jsx("span",{className:"tile-value",children:M(o)})]})]})}const y=[{key:"displayName",label:"Repo"},{key:"modelName",label:"Model"},{key:"checkpointCount",label:"Checkpoints"},{key:"tokensSaved",label:"Tokens Saved"},{key:"compressedOriginalBytes",label:"Retained"},{key:"lastCompactedAt",label:"Last Compacted"}];function B(s){return s>=1048576?`${(s/1048576).toFixed(1)} MiB`:s>=1024?`${(s/1024).toFixed(1)} KiB`:`${s} B`}function D(s){if(s==null)return"—";try{return new Date(s).toLocaleString()}catch{return String(s)}}function F({repos:s,onSelect:a}){const[t,o]=i.useState(""),[n,d]=i.useState("lastCompactedAt"),[c,x]=i.useState("desc"),k=i.useMemo(()=>{const l=t.trim().toLowerCase(),p=l?s.filter(N=>N.displayName.toLowerCase().includes(l)):s.slice();return p.sort((N,w)=>{const m=N[n],h=w[n],v=m==null,f=h==null;if(v&&f)return 0;if(v)return c==="desc"?1:-1;if(f)return c==="desc"?-1:1;const S=typeof m=="number"&&typeof h=="number"?m-h:String(m).localeCompare(String(h));return c==="desc"?-S:S}),p},[s,t,n,c]),T=l=>{n===l?x(p=>p==="asc"?"desc":"asc"):(d(l),x(l==="lastCompactedAt"||l==="tokensSaved"||l==="compressedOriginalBytes"?"desc":"asc"))};return e.jsxs("div",{className:"repo-table-wrap",children:[e.jsx("input",{type:"search",className:"repo-search",placeholder:"Search repos…",value:t,onChange:l=>o(l.target.value),"aria-label":"Search repos"}),e.jsxs("table",{className:"repo-table",children:[e.jsx("thead",{children:e.jsx("tr",{children:y.map(l=>e.jsx("th",{children:e.jsxs("button",{type:"button",className:`sort-header ${n===l.key?`active-${c}`:""}`,onClick:()=>T(l.key),children:[l.label,n===l.key&&e.jsx("span",{className:"sort-arrow",children:c==="asc"?" ▲":" ▼"})]})},l.key))})}),e.jsxs("tbody",{children:[k.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:y.length,className:"repo-empty",children:s.length===0?"No repositories registered yet.":"No repos match your search."})}),k.map(l=>e.jsxs("tr",{onClick:()=>a(l),children:[e.jsx("td",{className:"repo-name",title:l.repoRoot,children:l.displayName}),e.jsx("td",{className:"repo-model",children:l.modelName??"—"}),e.jsx("td",{className:"num",children:l.checkpointCount.toLocaleString()}),e.jsx("td",{className:"num",children:l.tokensSaved.toLocaleString()}),e.jsx("td",{className:"num",children:B(l.compressedOriginalBytes)}),e.jsx("td",{className:"num",children:D(l.lastCompactedAt)})]},l.stateDir))]})]})]})}function u(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:String(s)}function I(s){return s>=1048576?`${(s/1048576).toFixed(1)} MiB`:s>=1024?`${(s/1024).toFixed(1)} KiB`:`${s} B`}function b(s){if(s==null)return"never";try{return new Date(s).toLocaleString()}catch{return String(s)}}function W({repo:s,onClose:a}){return i.useEffect(()=>{const t=o=>{o.key==="Escape"&&a()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[a]),e.jsx("div",{className:"modal-backdrop",onClick:a,role:"dialog","aria-modal":"true",children:e.jsxs("div",{className:"modal-card",onClick:t=>t.stopPropagation(),children:[e.jsxs("header",{className:"modal-header",children:[e.jsx("h2",{children:s.displayName}),e.jsx("button",{type:"button",className:"modal-close",onClick:a,"aria-label":"Close",children:"×"})]}),e.jsx("p",{className:"modal-path",children:s.repoRoot}),e.jsxs("div",{className:"modal-grid",children:[e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Checkpoints"}),e.jsx("span",{className:"modal-value",children:s.checkpointCount.toLocaleString()})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Sessions"}),e.jsx("span",{className:"modal-value",children:s.sessions.toLocaleString()})]}),e.jsxs("div",{className:"modal-stat modal-highlight",children:[e.jsx("span",{className:"modal-label",children:"Tokens saved"}),e.jsx("span",{className:"modal-value",children:u(s.tokensSaved)})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Tokens kept"}),e.jsx("span",{className:"modal-value",children:u(s.tokensKept)})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Tokens dropped"}),e.jsx("span",{className:"modal-value",children:u(s.tokensDropped)})]}),e.jsxs("div",{className:"modal-stat",children:[e.jsx("span",{className:"modal-label",children:"Dedup rate"}),e.jsx("span",{className:"modal-value",children:"—"})]})]}),e.jsx("h3",{children:"Model"}),e.jsxs("dl",{className:"modal-dl",children:[e.jsx("dt",{children:"Provider"}),e.jsx("dd",{children:s.providerName??"—"}),e.jsx("dt",{children:"Model"}),e.jsx("dd",{children:s.modelName??"—"}),e.jsx("dt",{children:"Input rate"}),e.jsx("dd",{children:s.inputRate!==null?`${s.inputRate} tok/s`:"—"}),e.jsx("dt",{children:"Output rate"}),e.jsx("dd",{children:s.outputRate!==null?`${s.outputRate} tok/s`:"—"}),e.jsx("dt",{children:"Context window"}),e.jsx("dd",{children:s.contextWindow!==null?u(s.contextWindow):"—"}),e.jsx("dt",{children:"Max tokens"}),e.jsx("dd",{children:s.maxTokens!==null?u(s.maxTokens):"—"}),e.jsx("dt",{children:"Reasoning"}),e.jsx("dd",{children:s.reasoning===null?"—":s.reasoning?"on":"off"})]}),e.jsx("h3",{children:"Activity"}),e.jsxs("dl",{className:"modal-dl",children:[e.jsx("dt",{children:"Last compacted"}),e.jsx("dd",{children:b(s.lastCompactedAt)}),e.jsx("dt",{children:"Last seen"}),e.jsx("dd",{children:b(s.lastSeen)}),e.jsx("dt",{children:"Compressed-Original"}),e.jsx("dd",{children:I(s.compressedOriginalBytes)})]})]})})}function j(s){const a=s??0;return a>=3600?`${(a/3600).toFixed(1)}h`:a>=60?`${Math.round(a/60)}m`:a>=1?`${a.toFixed(1)}s`:`${Math.round(a*1e3)}ms`}const E=["Repo","Model","Tier","Context %","State","Compactions (s/t)","Cache Hits (s/t)","Compact s/t (s)","CacheHit s/t (s)"];function H({servers:s}){return e.jsxs("div",{className:"active-repos-section",children:[e.jsx("p",{className:"legend-note",children:"Repos seen within the last 30 minutes, with their per-repo cache-hit, compaction, and time-saved (est.) totals pulled live from each repo's dashboard.json."}),e.jsx("div",{className:"table-scroll",children:e.jsxs("table",{className:"active-repos-table",children:[e.jsx("thead",{children:e.jsx("tr",{children:E.map((a,t)=>e.jsx("th",{className:t>=3&&t!==4?"num":void 0,children:a},a))})}),e.jsxs("tbody",{children:[s.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:9,className:"repo-empty",children:"No active repositories."})}),s.map(a=>{const t=a.cacheHits??{session:0,total:0},o=a.compacts??{session:0,total:0},n=a.timeSaved??{compact:{sessionSec:0,totalSec:0},cacheHit:{sessionSec:0,totalSec:0}};return e.jsxs("tr",{children:[e.jsx("td",{title:a.repoRoot,children:a.displayName||a.repoRoot}),e.jsx("td",{children:a.model??"—"}),e.jsx("td",{children:a.tier??"—"}),e.jsx("td",{className:"num",children:a.contextPct!=null?`${Math.round(a.contextPct*100)}%`:"—"}),e.jsx("td",{children:a.state??"—"}),e.jsxs("td",{className:"num",children:[o.session," / ",o.total]}),e.jsxs("td",{className:"num",children:[t.session," / ",t.total]}),e.jsxs("td",{className:"num",children:[j(n.compact.sessionSec)," /"," ",j(n.compact.totalSec)]}),e.jsxs("td",{className:"num",children:[j(n.cacheHit.sessionSec)," /"," ",j(n.cacheHit.totalSec)]})]},a.repoRoot)})]})]})})]})}function C(s){if(!s.length)return"—";const a=Math.min(...s),t=Math.max(...s);return a===t?a.toLocaleString():`${a.toLocaleString()}–${t.toLocaleString()}`}function R(s){if(!s.length)return"—";const a=Math.min(...s),t=Math.max(...s),o=n=>`$${n.toFixed(6)}`;return a===t?o(a):`${o(a)}–${o(t)}`}function K(s){const a={};for(const t of s){const o=t.modelName&&t.modelName.trim()||"(unknown)";a[o]||(a[o]={model:o,provider:t.providerName??t.provider??"—",checkpoints:0,tokensSaved:0,tokensIn:0,tokensOut:0,sessions:0,usd:0,inRates:[],outRates:[],ctxWindows:[],maxTokens:[],reasoning:null,lastAt:0});const n=a[o];n.checkpoints+=t.checkpointCount||0,n.tokensSaved+=t.tokensSaved||0,n.tokensIn+=t.tokensDropped||0,n.tokensOut+=t.tokensKept||0,n.sessions+=t.sessions||0,t.inputRate&&(n.usd+=(t.tokensSaved||0)*t.inputRate,n.inRates.push(t.inputRate)),t.outputRate&&n.outRates.push(t.outputRate),t.contextWindow&&n.ctxWindows.push(t.contextWindow),t.maxTokens&&n.maxTokens.push(t.maxTokens),t.reasoning!=null&&(n.reasoning=t.reasoning),t.lastCompactedAt&&t.lastCompactedAt>n.lastAt&&(n.lastAt=t.lastCompactedAt)}return Object.values(a).sort((t,o)=>o.tokensSaved-t.tokensSaved)}const r={tokensIn:"Tokens dropped from context by compaction (the input reclaimed)",tokensOut:"Tokens kept as compacted summaries still in context (the output retained)",ctxWindow:"Model context window (max input tokens the model accepts)",maxOut:"Model max output tokens per turn",reas:"Reasoning-capable model",sessions:"Distinct sessions with at least one checkpoint",inRate:"USD per input token",outRate:"USD per output token"};function P({repos:s}){const a=i.useMemo(()=>K(s),[s]);return e.jsxs("div",{className:"savings-by-model",children:[e.jsx("p",{className:"legend-note",children:"How much context & cost mega-compact has reclaimed, grouped by the model you were running. Compression ratio reflects workload/content, not model quality."}),e.jsx("div",{className:"table-scroll",children:e.jsxs("table",{className:"savings-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Model"}),e.jsx("th",{children:"Provider"}),e.jsx("th",{className:"num",title:r.tokensIn,children:"Tokens In"}),e.jsx("th",{className:"num",title:r.tokensOut,children:"Tokens Out"}),e.jsx("th",{className:"num",children:"Freed"}),e.jsx("th",{className:"num",title:r.ctxWindow,children:"Ctx Window"}),e.jsx("th",{className:"num",title:r.maxOut,children:"Max Out"}),e.jsx("th",{className:"num",title:r.reas,children:"Reas."}),e.jsx("th",{className:"num",title:r.sessions,children:"Sessions"}),e.jsx("th",{className:"num",children:"Checkpoints"}),e.jsx("th",{className:"num",title:r.inRate,children:"In $/tok"}),e.jsx("th",{className:"num",title:r.outRate,children:"Out $/tok"}),e.jsx("th",{className:"num",children:"$ Saved"}),e.jsx("th",{className:"num",children:"Last Used"})]})}),e.jsxs("tbody",{children:[a.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:14,className:"repo-empty",children:"No repositories registered yet."})}),a.map(t=>{const o=(t.tokensIn||0)-(t.tokensOut||0),n=t.usd>0?`$${t.usd.toFixed(4)}`:"—",d=t.lastAt?new Date(t.lastAt).toLocaleString():"—",c=t.reasoning==null?"—":t.reasoning?"yes":"no";return e.jsxs("tr",{children:[e.jsx("td",{className:"repo-model",children:t.model}),e.jsx("td",{children:t.provider}),e.jsx("td",{className:"num",children:t.tokensIn.toLocaleString()}),e.jsx("td",{className:"num",children:t.tokensOut.toLocaleString()}),e.jsx("td",{className:"num",children:o.toLocaleString()}),e.jsx("td",{className:"num",children:C(t.ctxWindows)}),e.jsx("td",{className:"num",children:C(t.maxTokens)}),e.jsx("td",{className:"num",children:c}),e.jsx("td",{className:"num",children:t.sessions.toLocaleString()}),e.jsx("td",{className:"num",children:t.checkpoints.toLocaleString()}),e.jsx("td",{className:"num",children:R(t.inRates)}),e.jsx("td",{className:"num",children:R(t.outRates)}),e.jsx("td",{className:"num",children:n}),e.jsx("td",{className:"num",children:d})]},t.model)})]})]})}),e.jsx("p",{className:"legend-note",children:"Tokens In = Σ original region tokens dropped by compaction. Tokens Out = Σ compacted summary tokens still retained in context. Freed = Tokens In − Tokens Out (net context reclaimed). Ctx Window / Max Out / Reas. come from the latest captured model snapshot for each repo."})]})}async function U(){return await L()}function z(){const[s,a]=i.useState(null),{data:t,error:o}=g(i.useCallback(()=>U(),[]),{pollInterval:1e4}),{data:n}=g(i.useCallback(()=>$(),[]),{pollInterval:1e4});if(o&&!t)return e.jsxs("div",{className:"tab-stub",children:["Error loading repos: ",o.message]});if(!t)return e.jsx("div",{className:"tab-stub",children:"Loading repos…"});const d=t.summary,c=t.repos,x=n?.servers??[];return e.jsxs("div",{className:"repos-tab",children:[e.jsx(A,{totalRepos:d?.totalRepos??0,totalCheckpoints:d?.totalCheckpoints??0,totalTokensSaved:d?.totalTokensSaved??0,compressedOriginalBytes:d?.totalCompressedOriginalBytes??0}),e.jsx("h2",{className:"section-header",children:"All Repositories"}),e.jsx(F,{repos:c,onSelect:a}),e.jsx("h2",{className:"section-header",children:"Active Repos — Live Cache Hits & Compactions"}),e.jsx(H,{servers:x}),e.jsx("h2",{className:"section-header",children:"Savings by Model"}),e.jsx(P,{repos:c}),s&&e.jsx(W,{repo:s,onClose:()=>a(null)})]})}export{z as default}; +//# sourceMappingURL=ReposTab-Bk0XStsz.js.map diff --git a/extensions/dashboard-client/dist/assets/ReposTab-DuyhOktG.js.map b/extensions/dashboard-client/dist/assets/ReposTab-Bk0XStsz.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/ReposTab-DuyhOktG.js.map rename to extensions/dashboard-client/dist/assets/ReposTab-Bk0XStsz.js.map index 0f8e4fc..0b29775 100644 --- a/extensions/dashboard-client/dist/assets/ReposTab-DuyhOktG.js.map +++ b/extensions/dashboard-client/dist/assets/ReposTab-Bk0XStsz.js.map @@ -1 +1 @@ -{"version":3,"file":"ReposTab-DuyhOktG.js","sources":["../../src/components/SummaryTiles.tsx","../../src/components/RepoTable.tsx","../../src/components/RepoDetailModal.tsx","../../src/components/ActiveReposTable.tsx","../../src/components/SavingsByModelTable.tsx","../../src/tabs/ReposTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/SummaryTiles.tsx — aggregate header tiles.\n *\n * 4 tiles: Repositories, Total Checkpoints, Total Tokens Saved,\n * Compressed-Original. Matches old dashboard #panel-summary tiles.\n */\n\nimport type React from \"react\";\n\nexport interface SummaryTilesProps {\n\t/** Total repos in the registry. */\n\ttotalRepos: number;\n\t/** Total checkpoints across all repos. */\n\ttotalCheckpoints: number;\n\t/** Total tokens saved across all repos. */\n\ttotalTokensSaved: number;\n\t/** Total compressed-original bytes across all repos. */\n\tcompressedOriginalBytes: number;\n}\n\n/** Format bytes → MiB/KiB/B (matches html.ts fmtBytesTop). */\nfunction fmtBytesTop(b: number): string {\n\tif (b >= 1_048_576) return `${(b / 1_048_576).toFixed(1)} MiB`;\n\tif (b >= 1024) return `${(b / 1024).toFixed(1)} KiB`;\n\treturn `${b} B`;\n}\n\n/** Format large numbers with K/M suffix. */\nfunction fmt(n: number): string {\n\tif (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n\tif (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n\treturn String(n);\n}\n\nexport function SummaryTiles({\n\ttotalRepos,\n\ttotalCheckpoints,\n\ttotalTokensSaved,\n\tcompressedOriginalBytes,\n}: SummaryTilesProps): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tRepositories\n\t\t\t\t{totalRepos.toLocaleString()}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tTotal Checkpoints\n\t\t\t\t{totalCheckpoints.toLocaleString()}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tTotal Tokens Saved\n\t\t\t\t{fmt(totalTokensSaved)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCompressed-Original\n\t\t\t\t{fmtBytesTop(compressedOriginalBytes)}\n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/RepoTable.tsx — sortable, searchable repo table.\n *\n * 6 columns: Repo, Model, Checkpoints, Tokens Saved, Retained, Last Compacted.\n * Client-side sort (click header to toggle asc/desc). Search by displayName\n * (case-insensitive substring). Default sort: Last Compacted DESC.\n * Row click opens RepoDetailModal.\n */\n\nimport type React from \"react\";\nimport { useState, useMemo } from \"react\";\nimport type { IndexesIndexRow } from \"@contracts\";\n\nexport interface RepoTableProps {\n\trepos: IndexesIndexRow[];\n\t/** Called when a row is clicked — opens the detail modal. */\n\tonSelect: (repo: IndexesIndexRow) => void;\n}\n\ntype SortKey =\n\t| \"displayName\"\n\t| \"modelName\"\n\t| \"checkpointCount\"\n\t| \"tokensSaved\"\n\t| \"compressedOriginalBytes\"\n\t| \"lastCompactedAt\";\n\ntype SortDir = \"asc\" | \"desc\";\n\nconst COLUMNS: Array<{ key: SortKey; label: string }> = [\n\t{ key: \"displayName\", label: \"Repo\" },\n\t{ key: \"modelName\", label: \"Model\" },\n\t{ key: \"checkpointCount\", label: \"Checkpoints\" },\n\t{ key: \"tokensSaved\", label: \"Tokens Saved\" },\n\t{ key: \"compressedOriginalBytes\", label: \"Retained\" },\n\t{ key: \"lastCompactedAt\", label: \"Last Compacted\" },\n];\n\n/** Format bytes → MiB/KiB/B (matches html.ts fmtBytesTop). */\nfunction fmtBytesTop(b: number): string {\n\tif (b >= 1_048_576) return `${(b / 1_048_576).toFixed(1)} MiB`;\n\tif (b >= 1024) return `${(b / 1024).toFixed(1)} KiB`;\n\treturn `${b} B`;\n}\n\nfunction formatTs(ts: number | null): string {\n\tif (ts === null || ts === undefined) return \"\\u2014\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn String(ts);\n\t}\n}\n\nexport function RepoTable({\n\trepos,\n\tonSelect,\n}: RepoTableProps): React.ReactElement {\n\tconst [search, setSearch] = useState(\"\");\n\tconst [sortKey, setSortKey] = useState(\"lastCompactedAt\");\n\tconst [sortDir, setSortDir] = useState(\"desc\");\n\n\tconst filtered = useMemo(() => {\n\t\tconst q = search.trim().toLowerCase();\n\t\tconst list = q\n\t\t\t? repos.filter((r) => r.displayName.toLowerCase().includes(q))\n\t\t\t: repos.slice();\n\t\tlist.sort((a, b) => {\n\t\t\tconst av = a[sortKey];\n\t\t\tconst bv = b[sortKey];\n\t\t\t// nulls last on desc, first on asc (consistent UX)\n\t\t\tconst aNull = av === null || av === undefined;\n\t\t\tconst bNull = bv === null || bv === undefined;\n\t\t\tif (aNull && bNull) return 0;\n\t\t\tif (aNull) return sortDir === \"desc\" ? 1 : -1;\n\t\t\tif (bNull) return sortDir === \"desc\" ? -1 : 1;\n\t\t\tconst cmp =\n\t\t\t\ttypeof av === \"number\" && typeof bv === \"number\"\n\t\t\t\t\t? av - bv\n\t\t\t\t\t: String(av).localeCompare(String(bv));\n\t\t\treturn sortDir === \"desc\" ? -cmp : cmp;\n\t\t});\n\t\treturn list;\n\t}, [repos, search, sortKey, sortDir]);\n\n\tconst handleSort = (key: SortKey): void => {\n\t\tif (sortKey === key) {\n\t\t\tsetSortDir((d) => (d === \"asc\" ? \"desc\" : \"asc\"));\n\t\t} else {\n\t\t\tsetSortKey(key);\n\t\t\tsetSortDir(\n\t\t\t\tkey === \"lastCompactedAt\" ||\n\t\t\t\tkey === \"tokensSaved\" ||\n\t\t\t\tkey === \"compressedOriginalBytes\"\n\t\t\t\t\t? \"desc\"\n\t\t\t\t\t: \"asc\",\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t setSearch(e.target.value)}\n\t\t\t\taria-label=\"Search repos\"\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{COLUMNS.map((col) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{filtered.length === 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{filtered.map((repo) => (\n\t\t\t\t\t\t onSelect(repo)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\t\t\t\t\t handleSort(col.key)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{col.label}\n\t\t\t\t\t\t\t\t\t{sortKey === col.key && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{sortDir === \"asc\" ? \" ▲\" : \" ▼\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{repos.length === 0\n\t\t\t\t\t\t\t\t\t? \"No repositories registered yet.\"\n\t\t\t\t\t\t\t\t\t: \"No repos match your search.\"}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{repo.displayName}\n\t\t\t\t\t\t\t{repo.modelName ?? \"\\u2014\"}{repo.checkpointCount.toLocaleString()}{repo.tokensSaved.toLocaleString()}{fmtBytesTop(repo.compressedOriginalBytes)}{formatTs(repo.lastCompactedAt)}
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/RepoDetailModal.tsx — repo drill-down.\n *\n * Full detail from an /api/index row: token breakdown (kept/dropped), model\n * info, context window, dedup rate, reasoning flag. Click backdrop to close.\n */\n\nimport type React from \"react\";\nimport { useEffect } from \"react\";\nimport type { IndexesIndexRow } from \"@contracts\";\n\nexport interface RepoDetailModalProps {\n\trepo: IndexesIndexRow;\n\tonClose: () => void;\n}\n\nfunction fmt(n: number): string {\n\tif (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n\tif (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n\treturn String(n);\n}\n\n/** Format bytes → MiB/KiB/B (matches html.ts fmtBytesTop). */\nfunction fmtBytesTop(b: number): string {\n\tif (b >= 1_048_576) return `${(b / 1_048_576).toFixed(1)} MiB`;\n\tif (b >= 1024) return `${(b / 1024).toFixed(1)} KiB`;\n\treturn `${b} B`;\n}\n\nfunction formatTs(ts: number | null): string {\n\tif (ts === null || ts === undefined) return \"never\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn String(ts);\n\t}\n}\n\nexport function RepoDetailModal({\n\trepo,\n\tonClose,\n}: RepoDetailModalProps): React.ReactElement {\n\t// Close on Escape key.\n\tuseEffect(() => {\n\t\tconst handler = (e: KeyboardEvent): void => {\n\t\t\tif (e.key === \"Escape\") onClose();\n\t\t};\n\t\twindow.addEventListener(\"keydown\", handler);\n\t\treturn () => window.removeEventListener(\"keydown\", handler);\n\t}, [onClose]);\n\n\treturn (\n\t\t\n\t\t\t
    e.stopPropagation()}>\n\t\t\t\t
    \n\t\t\t\t\t

    {repo.displayName}

    \n\t\t\t\t\t\n\t\t\t\t\t\t×\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t

    {repo.repoRoot}

    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tCheckpoints\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{repo.checkpointCount.toLocaleString()}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tSessions\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{repo.sessions.toLocaleString()}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTokens saved\n\t\t\t\t\t\t{fmt(repo.tokensSaved)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTokens kept\n\t\t\t\t\t\t{fmt(repo.tokensKept)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTokens dropped\n\t\t\t\t\t\t{fmt(repo.tokensDropped)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tDedup rate\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t

    Model

    \n\t\t\t\t
    \n\t\t\t\t\t
    Provider
    \n\t\t\t\t\t
    {repo.providerName ?? \"—\"}
    \n\t\t\t\t\t
    Model
    \n\t\t\t\t\t
    {repo.modelName ?? \"—\"}
    \n\t\t\t\t\t
    Input rate
    \n\t\t\t\t\t
    {repo.inputRate !== null ? `${repo.inputRate} tok/s` : \"—\"}
    \n\t\t\t\t\t
    Output rate
    \n\t\t\t\t\t
    {repo.outputRate !== null ? `${repo.outputRate} tok/s` : \"—\"}
    \n\t\t\t\t\t
    Context window
    \n\t\t\t\t\t
    {repo.contextWindow !== null ? fmt(repo.contextWindow) : \"—\"}
    \n\t\t\t\t\t
    Max tokens
    \n\t\t\t\t\t
    {repo.maxTokens !== null ? fmt(repo.maxTokens) : \"—\"}
    \n\t\t\t\t\t
    Reasoning
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{repo.reasoning === null ? \"—\" : repo.reasoning ? \"on\" : \"off\"}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t

    Activity

    \n\t\t\t\t
    \n\t\t\t\t\t
    Last compacted
    \n\t\t\t\t\t
    {formatTs(repo.lastCompactedAt)}
    \n\t\t\t\t\t
    Last seen
    \n\t\t\t\t\t
    {formatTs(repo.lastSeen)}
    \n\t\t\t\t\t
    Compressed-Original
    \n\t\t\t\t\t
    {fmtBytesTop(repo.compressedOriginalBytes)}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","/**\n * dashboard-client/src/components/ActiveReposTable.tsx — Active repos table.\n *\n * 9 columns: Repo, Model, Tier, Context %, State, Compactions s/t,\n * Cache Hits s/t, Compact s/t, CacheHit s/t.\n * Data from fetchServers() via useApi with 10s polling.\n */\n\nimport type React from \"react\";\nimport type { ServerEntry } from \"@contracts\";\n\nexport interface ActiveReposTableProps {\n\tservers: ServerEntry[];\n}\n\n/** Format seconds → human-readable duration (matches html.ts fmtSec). */\nfunction fmtSec(s: number | undefined): string {\n\tconst v = s ?? 0;\n\tif (v >= 3600) return `${(v / 3600).toFixed(1)}h`;\n\tif (v >= 60) return `${Math.round(v / 60)}m`;\n\tif (v >= 1) return `${v.toFixed(1)}s`;\n\treturn `${Math.round(v * 1000)}ms`;\n}\n\nconst HEADERS = [\n\t\"Repo\",\n\t\"Model\",\n\t\"Tier\",\n\t\"Context %\",\n\t\"State\",\n\t\"Compactions (s/t)\",\n\t\"Cache Hits (s/t)\",\n\t\"Compact s/t (s)\",\n\t\"CacheHit s/t (s)\",\n] as const;\n\nexport function ActiveReposTable({\n\tservers,\n}: ActiveReposTableProps): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\tRepos seen within the last 30 minutes, with their per-repo\n\t\t\t\tcache-hit, compaction, and time-saved (est.) totals pulled live\n\t\t\t\tfrom each repo's dashboard.json.\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{HEADERS.map((h, i) => (\n\t\t\t\t\t\t\t\t= 3 && i !== 4 ? \"num\" : undefined}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{h}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{servers.length === 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{servers.map((r) => {\n\t\t\t\t\t\t\tconst ch = r.cacheHits ?? {\n\t\t\t\t\t\t\t\tsession: 0,\n\t\t\t\t\t\t\t\ttotal: 0,\n\t\t\t\t\t\t\t\tsessionTokensSaved: 0,\n\t\t\t\t\t\t\t\ttotalTokensSaved: 0,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst cp = r.compacts ?? { session: 0, total: 0 };\n\t\t\t\t\t\t\tconst ts = r.timeSaved ?? {\n\t\t\t\t\t\t\t\tcompact: { sessionSec: 0, totalSec: 0 },\n\t\t\t\t\t\t\t\tcacheHit: { sessionSec: 0, totalSec: 0 },\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\t\t\t\tNo active repositories.\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{r.displayName || r.repoRoot}\n\t\t\t\t\t\t\t\t\t{r.model ?? \"\\u2014\"}{r.tier ?? \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t\t{r.contextPct != null\n\t\t\t\t\t\t\t\t\t\t\t? `${Math.round(r.contextPct * 100)}%`\n\t\t\t\t\t\t\t\t\t\t\t: \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t{r.state ?? \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t\t{cp.session} / {cp.total}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{ch.session} / {ch.total}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.compact.sessionSec)} /{\" \"}\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.compact.totalSec)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.cacheHit.sessionSec)} /{\" \"}\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.cacheHit.totalSec)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/SavingsByModelTable.tsx — Savings by Model.\n *\n * 14 columns aggregated client-side from /api/index repos by model.\n * Replicates html.ts renderByModel logic: group by modelName, accumulate\n * tokens/cost/sessions, collapse numeric ranges when repos disagree.\n */\n\nimport type React from \"react\";\nimport { useMemo } from \"react\";\nimport type { IndexesIndexRow } from \"@contracts\";\n\nexport interface SavingsByModelTableProps {\n\trepos: IndexesIndexRow[];\n}\n\ninterface ModelGroup {\n\tmodel: string;\n\tprovider: string;\n\tcheckpoints: number;\n\ttokensSaved: number;\n\ttokensIn: number;\n\ttokensOut: number;\n\tsessions: number;\n\tusd: number;\n\tinRates: number[];\n\toutRates: number[];\n\tctxWindows: number[];\n\tmaxTokens: number[];\n\treasoning: boolean | null;\n\tlastAt: number;\n}\n\n/** Collapse numeric samples: \"—\" | single | \"lo–hi\" (matches html.ts). */\nfunction collapseNum(samples: number[]): string {\n\tif (!samples.length) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\treturn lo === hi\n\t\t? lo.toLocaleString()\n\t\t: `${lo.toLocaleString()}\\u2013${hi.toLocaleString()}`;\n}\n\n/** Collapse rate samples: \"—\" | \"$rate\" | \"$lo–$hi\" (matches html.ts). */\nfunction collapseRate(samples: number[]): string {\n\tif (!samples.length) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\tconst fmt = (v: number): string => `$${v.toFixed(6)}`;\n\treturn lo === hi ? fmt(lo) : `${fmt(lo)}\\u2013${fmt(hi)}`;\n}\n\n/** Group repos by model, accumulate totals, sort by tokensSaved desc. */\nfunction aggregate(repos: IndexesIndexRow[]): ModelGroup[] {\n\tconst map: Record = {};\n\tfor (const r of repos) {\n\t\tconst key = (r.modelName && r.modelName.trim()) || \"(unknown)\";\n\t\tif (!map[key]) {\n\t\t\tmap[key] = {\n\t\t\t\tmodel: key,\n\t\t\t\tprovider: r.providerName ?? r.provider ?? \"\\u2014\",\n\t\t\t\tcheckpoints: 0,\n\t\t\t\ttokensSaved: 0,\n\t\t\t\ttokensIn: 0,\n\t\t\t\ttokensOut: 0,\n\t\t\t\tsessions: 0,\n\t\t\t\tusd: 0,\n\t\t\t\tinRates: [],\n\t\t\t\toutRates: [],\n\t\t\t\tctxWindows: [],\n\t\t\t\tmaxTokens: [],\n\t\t\t\treasoning: null,\n\t\t\t\tlastAt: 0,\n\t\t\t};\n\t\t}\n\t\tconst g = map[key];\n\t\tg.checkpoints += r.checkpointCount || 0;\n\t\tg.tokensSaved += r.tokensSaved || 0;\n\t\tg.tokensIn += r.tokensDropped || 0;\n\t\tg.tokensOut += r.tokensKept || 0;\n\t\tg.sessions += r.sessions || 0;\n\t\tif (r.inputRate) {\n\t\t\tg.usd += (r.tokensSaved || 0) * r.inputRate;\n\t\t\tg.inRates.push(r.inputRate);\n\t\t}\n\t\tif (r.outputRate) g.outRates.push(r.outputRate);\n\t\tif (r.contextWindow) g.ctxWindows.push(r.contextWindow);\n\t\tif (r.maxTokens) g.maxTokens.push(r.maxTokens);\n\t\tif (r.reasoning != null) g.reasoning = r.reasoning;\n\t\tif (r.lastCompactedAt && r.lastCompactedAt > g.lastAt)\n\t\t\tg.lastAt = r.lastCompactedAt;\n\t}\n\treturn Object.values(map).sort((a, b) => b.tokensSaved - a.tokensSaved);\n}\n\n/** Tooltip text copied verbatim from html.ts title attributes. */\nconst TOOLTIPS = {\n\ttokensIn: \"Tokens dropped from context by compaction (the input reclaimed)\",\n\ttokensOut:\n\t\t\"Tokens kept as compacted summaries still in context (the output retained)\",\n\tctxWindow: \"Model context window (max input tokens the model accepts)\",\n\tmaxOut: \"Model max output tokens per turn\",\n\treas: \"Reasoning-capable model\",\n\tsessions: \"Distinct sessions with at least one checkpoint\",\n\tinRate: \"USD per input token\",\n\toutRate: \"USD per output token\",\n} as const;\n\nexport function SavingsByModelTable({\n\trepos,\n}: SavingsByModelTableProps): React.ReactElement {\n\tconst groups = useMemo(() => aggregate(repos), [repos]);\n\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\tHow much context & cost mega-compact has reclaimed, grouped by\n\t\t\t\tthe model you were running. Compression ratio reflects\n\t\t\t\tworkload/content, not model quality.\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{groups.length === 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{groups.map((g) => {\n\t\t\t\t\t\t\tconst freed = (g.tokensIn || 0) - (g.tokensOut || 0);\n\t\t\t\t\t\t\tconst usd =\n\t\t\t\t\t\t\t\tg.usd > 0 ? `$${g.usd.toFixed(4)}` : \"\\u2014\";\n\t\t\t\t\t\t\tconst when = g.lastAt\n\t\t\t\t\t\t\t\t? new Date(g.lastAt).toLocaleString()\n\t\t\t\t\t\t\t\t: \"\\u2014\";\n\t\t\t\t\t\t\tconst reas =\n\t\t\t\t\t\t\t\tg.reasoning == null\n\t\t\t\t\t\t\t\t\t? \"\\u2014\"\n\t\t\t\t\t\t\t\t\t: g.reasoning\n\t\t\t\t\t\t\t\t\t\t? \"yes\"\n\t\t\t\t\t\t\t\t\t\t: \"no\";\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t
    ModelProvider\n\t\t\t\t\t\t\t\tTokens In\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTokens Out\n\t\t\t\t\t\t\tFreed\n\t\t\t\t\t\t\t\tCtx Window\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMax Out\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tReas.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSessions\n\t\t\t\t\t\t\tCheckpoints\n\t\t\t\t\t\t\t\tIn $/tok\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tOut $/tok\n\t\t\t\t\t\t\t$ SavedLast Used
    \n\t\t\t\t\t\t\t\t\tNo repositories registered yet.\n\t\t\t\t\t\t\t\t
    {g.model}{g.provider}\n\t\t\t\t\t\t\t\t\t\t{g.tokensIn.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{g.tokensOut.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{freed.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseNum(g.ctxWindows)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseNum(g.maxTokens)}\n\t\t\t\t\t\t\t\t\t{reas}\n\t\t\t\t\t\t\t\t\t\t{g.sessions.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{g.checkpoints.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseRate(g.inRates)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseRate(g.outRates)}\n\t\t\t\t\t\t\t\t\t{usd}{when}
    \n\t\t\t
    \n\t\t\t

    \n\t\t\t\tTokens In = Σ original region tokens dropped by compaction. Tokens\n\t\t\t\tOut = Σ compacted summary tokens still retained in context. Freed =\n\t\t\t\tTokens In − Tokens Out (net context reclaimed). Ctx Window / Max Out\n\t\t\t\t/ Reas. come from the latest captured model snapshot for each repo.\n\t\t\t

    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/tabs/ReposTab.tsx — Repos tab (C2 fleshed out).\n *\n * Renders: SummaryTiles (4 tiles), All Repositories table (RepoTable),\n * Active Repos table (ActiveReposTable), Savings by Model table\n * (SavingsByModelTable), and per-repo detail modal (RepoDetailModal).\n *\n * Data sources: fetchIndex() for summary + all repos + savings-by-model;\n * fetchServers() for active repos. Both polled every 10s.\n */\n\nimport type React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchIndex, fetchServers } from \"../api/client\";\nimport type { IndexesIndexRow, ServersResponse } from \"@contracts\";\nimport { SummaryTiles } from \"../components/SummaryTiles\";\nimport { RepoTable } from \"../components/RepoTable\";\nimport { RepoDetailModal } from \"../components/RepoDetailModal\";\nimport { ActiveReposTable } from \"../components/ActiveReposTable\";\nimport { SavingsByModelTable } from \"../components/SavingsByModelTable\";\n\n/**\n * Actual runtime shape of /api/index. The contract's IndexesSummaryResponse\n * puts summary fields at the top level, but the real server nests them under\n * `summary` (matching IndexFallbackResponse shape with non-null summary).\n */\ninterface DashboardIndexSummary {\n\ttotalRepos: number;\n\ttotalCheckpoints: number;\n\ttotalTokensSaved: number;\n\ttotalCompressedOriginalBytes: number;\n}\n\ninterface DashboardIndexResponse {\n\tupdatedAt: string | null;\n\tsummary: DashboardIndexSummary | null;\n\trepos: IndexesIndexRow[];\n}\n\n/** Fetch /api/index and cast to the actual runtime shape. */\nasync function fetchIndexTyped(): Promise {\n\treturn (await fetchIndex()) as unknown as DashboardIndexResponse;\n}\n\nexport default function ReposTab(): React.ReactElement {\n\tconst [selected, setSelected] = useState(null);\n\n\tconst { data: indexData, error: indexErr } =\n\t\tuseApi(\n\t\t\tuseCallback(() => fetchIndexTyped(), []),\n\t\t\t{ pollInterval: 10_000 },\n\t\t);\n\n\tconst { data: serversData } = useApi(\n\t\tuseCallback(() => fetchServers(), []),\n\t\t{ pollInterval: 10_000 },\n\t);\n\n\tif (indexErr && !indexData) {\n\t\treturn (\n\t\t\t
    Error loading repos: {indexErr.message}
    \n\t\t);\n\t}\n\tif (!indexData) {\n\t\treturn
    Loading repos…
    ;\n\t}\n\n\tconst summary = indexData.summary;\n\tconst repos = indexData.repos;\n\tconst servers = serversData?.servers ?? [];\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t

    All Repositories

    \n\t\t\t\n\t\t\t

    \n\t\t\t\tActive Repos — Live Cache Hits & Compactions\n\t\t\t

    \n\t\t\t\n\t\t\t

    Savings by Model

    \n\t\t\t\n\t\t\t{selected && (\n\t\t\t\t setSelected(null)} />\n\t\t\t)}\n\t\t
    \n\t);\n}\n"],"names":["fmtBytesTop","b","fmt","n","SummaryTiles","totalRepos","totalCheckpoints","totalTokensSaved","compressedOriginalBytes","jsxs","jsx","COLUMNS","formatTs","ts","RepoTable","repos","onSelect","search","setSearch","useState","sortKey","setSortKey","sortDir","setSortDir","filtered","useMemo","q","list","r","a","av","bv","aNull","bNull","cmp","handleSort","key","d","e","col","repo","RepoDetailModal","onClose","useEffect","handler","fmtSec","v","HEADERS","ActiveReposTable","servers","h","i","ch","cp","collapseNum","samples","lo","hi","collapseRate","aggregate","map","g","TOOLTIPS","SavingsByModelTable","groups","freed","usd","when","reas","fetchIndexTyped","fetchIndex","ReposTab","selected","setSelected","indexData","indexErr","useApi","useCallback","serversData","fetchServers","summary"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ReposTab-Bk0XStsz.js","sources":["../../src/components/SummaryTiles.tsx","../../src/components/RepoTable.tsx","../../src/components/RepoDetailModal.tsx","../../src/components/ActiveReposTable.tsx","../../src/components/SavingsByModelTable.tsx","../../src/tabs/ReposTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/components/SummaryTiles.tsx — aggregate header tiles.\n *\n * 4 tiles: Repositories, Total Checkpoints, Total Tokens Saved,\n * Compressed-Original. Matches old dashboard #panel-summary tiles.\n */\n\nimport type React from \"react\";\n\nexport interface SummaryTilesProps {\n\t/** Total repos in the registry. */\n\ttotalRepos: number;\n\t/** Total checkpoints across all repos. */\n\ttotalCheckpoints: number;\n\t/** Total tokens saved across all repos. */\n\ttotalTokensSaved: number;\n\t/** Total compressed-original bytes across all repos. */\n\tcompressedOriginalBytes: number;\n}\n\n/** Format bytes → MiB/KiB/B (matches html.ts fmtBytesTop). */\nfunction fmtBytesTop(b: number): string {\n\tif (b >= 1_048_576) return `${(b / 1_048_576).toFixed(1)} MiB`;\n\tif (b >= 1024) return `${(b / 1024).toFixed(1)} KiB`;\n\treturn `${b} B`;\n}\n\n/** Format large numbers with K/M suffix. */\nfunction fmt(n: number): string {\n\tif (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n\tif (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n\treturn String(n);\n}\n\nexport function SummaryTiles({\n\ttotalRepos,\n\ttotalCheckpoints,\n\ttotalTokensSaved,\n\tcompressedOriginalBytes,\n}: SummaryTilesProps): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tRepositories\n\t\t\t\t{totalRepos.toLocaleString()}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tTotal Checkpoints\n\t\t\t\t{totalCheckpoints.toLocaleString()}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tTotal Tokens Saved\n\t\t\t\t{fmt(totalTokensSaved)}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCompressed-Original\n\t\t\t\t{fmtBytesTop(compressedOriginalBytes)}\n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/RepoTable.tsx — sortable, searchable repo table.\n *\n * 6 columns: Repo, Model, Checkpoints, Tokens Saved, Retained, Last Compacted.\n * Client-side sort (click header to toggle asc/desc). Search by displayName\n * (case-insensitive substring). Default sort: Last Compacted DESC.\n * Row click opens RepoDetailModal.\n */\n\nimport type React from \"react\";\nimport { useState, useMemo } from \"react\";\nimport type { IndexesIndexRow } from \"@contracts\";\n\nexport interface RepoTableProps {\n\trepos: IndexesIndexRow[];\n\t/** Called when a row is clicked — opens the detail modal. */\n\tonSelect: (repo: IndexesIndexRow) => void;\n}\n\ntype SortKey =\n\t| \"displayName\"\n\t| \"modelName\"\n\t| \"checkpointCount\"\n\t| \"tokensSaved\"\n\t| \"compressedOriginalBytes\"\n\t| \"lastCompactedAt\";\n\ntype SortDir = \"asc\" | \"desc\";\n\nconst COLUMNS: Array<{ key: SortKey; label: string }> = [\n\t{ key: \"displayName\", label: \"Repo\" },\n\t{ key: \"modelName\", label: \"Model\" },\n\t{ key: \"checkpointCount\", label: \"Checkpoints\" },\n\t{ key: \"tokensSaved\", label: \"Tokens Saved\" },\n\t{ key: \"compressedOriginalBytes\", label: \"Retained\" },\n\t{ key: \"lastCompactedAt\", label: \"Last Compacted\" },\n];\n\n/** Format bytes → MiB/KiB/B (matches html.ts fmtBytesTop). */\nfunction fmtBytesTop(b: number): string {\n\tif (b >= 1_048_576) return `${(b / 1_048_576).toFixed(1)} MiB`;\n\tif (b >= 1024) return `${(b / 1024).toFixed(1)} KiB`;\n\treturn `${b} B`;\n}\n\nfunction formatTs(ts: number | null): string {\n\tif (ts === null || ts === undefined) return \"\\u2014\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn String(ts);\n\t}\n}\n\nexport function RepoTable({\n\trepos,\n\tonSelect,\n}: RepoTableProps): React.ReactElement {\n\tconst [search, setSearch] = useState(\"\");\n\tconst [sortKey, setSortKey] = useState(\"lastCompactedAt\");\n\tconst [sortDir, setSortDir] = useState(\"desc\");\n\n\tconst filtered = useMemo(() => {\n\t\tconst q = search.trim().toLowerCase();\n\t\tconst list = q\n\t\t\t? repos.filter((r) => r.displayName.toLowerCase().includes(q))\n\t\t\t: repos.slice();\n\t\tlist.sort((a, b) => {\n\t\t\tconst av = a[sortKey];\n\t\t\tconst bv = b[sortKey];\n\t\t\t// nulls last on desc, first on asc (consistent UX)\n\t\t\tconst aNull = av === null || av === undefined;\n\t\t\tconst bNull = bv === null || bv === undefined;\n\t\t\tif (aNull && bNull) return 0;\n\t\t\tif (aNull) return sortDir === \"desc\" ? 1 : -1;\n\t\t\tif (bNull) return sortDir === \"desc\" ? -1 : 1;\n\t\t\tconst cmp =\n\t\t\t\ttypeof av === \"number\" && typeof bv === \"number\"\n\t\t\t\t\t? av - bv\n\t\t\t\t\t: String(av).localeCompare(String(bv));\n\t\t\treturn sortDir === \"desc\" ? -cmp : cmp;\n\t\t});\n\t\treturn list;\n\t}, [repos, search, sortKey, sortDir]);\n\n\tconst handleSort = (key: SortKey): void => {\n\t\tif (sortKey === key) {\n\t\t\tsetSortDir((d) => (d === \"asc\" ? \"desc\" : \"asc\"));\n\t\t} else {\n\t\t\tsetSortKey(key);\n\t\t\tsetSortDir(\n\t\t\t\tkey === \"lastCompactedAt\" ||\n\t\t\t\tkey === \"tokensSaved\" ||\n\t\t\t\tkey === \"compressedOriginalBytes\"\n\t\t\t\t\t? \"desc\"\n\t\t\t\t\t: \"asc\",\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t setSearch(e.target.value)}\n\t\t\t\taria-label=\"Search repos\"\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{COLUMNS.map((col) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{filtered.length === 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{filtered.map((repo) => (\n\t\t\t\t\t\t onSelect(repo)}>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\t\t\t\t\t handleSort(col.key)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{col.label}\n\t\t\t\t\t\t\t\t\t{sortKey === col.key && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{sortDir === \"asc\" ? \" ▲\" : \" ▼\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{repos.length === 0\n\t\t\t\t\t\t\t\t\t? \"No repositories registered yet.\"\n\t\t\t\t\t\t\t\t\t: \"No repos match your search.\"}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{repo.displayName}\n\t\t\t\t\t\t\t{repo.modelName ?? \"\\u2014\"}{repo.checkpointCount.toLocaleString()}{repo.tokensSaved.toLocaleString()}{fmtBytesTop(repo.compressedOriginalBytes)}{formatTs(repo.lastCompactedAt)}
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/RepoDetailModal.tsx — repo drill-down.\n *\n * Full detail from an /api/index row: token breakdown (kept/dropped), model\n * info, context window, dedup rate, reasoning flag. Click backdrop to close.\n */\n\nimport type React from \"react\";\nimport { useEffect } from \"react\";\nimport type { IndexesIndexRow } from \"@contracts\";\n\nexport interface RepoDetailModalProps {\n\trepo: IndexesIndexRow;\n\tonClose: () => void;\n}\n\nfunction fmt(n: number): string {\n\tif (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n\tif (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`;\n\treturn String(n);\n}\n\n/** Format bytes → MiB/KiB/B (matches html.ts fmtBytesTop). */\nfunction fmtBytesTop(b: number): string {\n\tif (b >= 1_048_576) return `${(b / 1_048_576).toFixed(1)} MiB`;\n\tif (b >= 1024) return `${(b / 1024).toFixed(1)} KiB`;\n\treturn `${b} B`;\n}\n\nfunction formatTs(ts: number | null): string {\n\tif (ts === null || ts === undefined) return \"never\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn String(ts);\n\t}\n}\n\nexport function RepoDetailModal({\n\trepo,\n\tonClose,\n}: RepoDetailModalProps): React.ReactElement {\n\t// Close on Escape key.\n\tuseEffect(() => {\n\t\tconst handler = (e: KeyboardEvent): void => {\n\t\t\tif (e.key === \"Escape\") onClose();\n\t\t};\n\t\twindow.addEventListener(\"keydown\", handler);\n\t\treturn () => window.removeEventListener(\"keydown\", handler);\n\t}, [onClose]);\n\n\treturn (\n\t\t\n\t\t\t
    e.stopPropagation()}>\n\t\t\t\t
    \n\t\t\t\t\t

    {repo.displayName}

    \n\t\t\t\t\t\n\t\t\t\t\t\t×\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t

    {repo.repoRoot}

    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tCheckpoints\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{repo.checkpointCount.toLocaleString()}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tSessions\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{repo.sessions.toLocaleString()}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTokens saved\n\t\t\t\t\t\t{fmt(repo.tokensSaved)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTokens kept\n\t\t\t\t\t\t{fmt(repo.tokensKept)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tTokens dropped\n\t\t\t\t\t\t{fmt(repo.tokensDropped)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tDedup rate\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t

    Model

    \n\t\t\t\t
    \n\t\t\t\t\t
    Provider
    \n\t\t\t\t\t
    {repo.providerName ?? \"—\"}
    \n\t\t\t\t\t
    Model
    \n\t\t\t\t\t
    {repo.modelName ?? \"—\"}
    \n\t\t\t\t\t
    Input rate
    \n\t\t\t\t\t
    {repo.inputRate !== null ? `${repo.inputRate} tok/s` : \"—\"}
    \n\t\t\t\t\t
    Output rate
    \n\t\t\t\t\t
    {repo.outputRate !== null ? `${repo.outputRate} tok/s` : \"—\"}
    \n\t\t\t\t\t
    Context window
    \n\t\t\t\t\t
    {repo.contextWindow !== null ? fmt(repo.contextWindow) : \"—\"}
    \n\t\t\t\t\t
    Max tokens
    \n\t\t\t\t\t
    {repo.maxTokens !== null ? fmt(repo.maxTokens) : \"—\"}
    \n\t\t\t\t\t
    Reasoning
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{repo.reasoning === null ? \"—\" : repo.reasoning ? \"on\" : \"off\"}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t

    Activity

    \n\t\t\t\t
    \n\t\t\t\t\t
    Last compacted
    \n\t\t\t\t\t
    {formatTs(repo.lastCompactedAt)}
    \n\t\t\t\t\t
    Last seen
    \n\t\t\t\t\t
    {formatTs(repo.lastSeen)}
    \n\t\t\t\t\t
    Compressed-Original
    \n\t\t\t\t\t
    {fmtBytesTop(repo.compressedOriginalBytes)}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","/**\n * dashboard-client/src/components/ActiveReposTable.tsx — Active repos table.\n *\n * 9 columns: Repo, Model, Tier, Context %, State, Compactions s/t,\n * Cache Hits s/t, Compact s/t, CacheHit s/t.\n * Data from fetchServers() via useApi with 10s polling.\n */\n\nimport type React from \"react\";\nimport type { ServerEntry } from \"@contracts\";\n\nexport interface ActiveReposTableProps {\n\tservers: ServerEntry[];\n}\n\n/** Format seconds → human-readable duration (matches html.ts fmtSec). */\nfunction fmtSec(s: number | undefined): string {\n\tconst v = s ?? 0;\n\tif (v >= 3600) return `${(v / 3600).toFixed(1)}h`;\n\tif (v >= 60) return `${Math.round(v / 60)}m`;\n\tif (v >= 1) return `${v.toFixed(1)}s`;\n\treturn `${Math.round(v * 1000)}ms`;\n}\n\nconst HEADERS = [\n\t\"Repo\",\n\t\"Model\",\n\t\"Tier\",\n\t\"Context %\",\n\t\"State\",\n\t\"Compactions (s/t)\",\n\t\"Cache Hits (s/t)\",\n\t\"Compact s/t (s)\",\n\t\"CacheHit s/t (s)\",\n] as const;\n\nexport function ActiveReposTable({\n\tservers,\n}: ActiveReposTableProps): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\tRepos seen within the last 30 minutes, with their per-repo\n\t\t\t\tcache-hit, compaction, and time-saved (est.) totals pulled live\n\t\t\t\tfrom each repo's dashboard.json.\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{HEADERS.map((h, i) => (\n\t\t\t\t\t\t\t\t= 3 && i !== 4 ? \"num\" : undefined}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{h}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{servers.length === 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{servers.map((r) => {\n\t\t\t\t\t\t\tconst ch = r.cacheHits ?? {\n\t\t\t\t\t\t\t\tsession: 0,\n\t\t\t\t\t\t\t\ttotal: 0,\n\t\t\t\t\t\t\t\tsessionTokensSaved: 0,\n\t\t\t\t\t\t\t\ttotalTokensSaved: 0,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tconst cp = r.compacts ?? { session: 0, total: 0 };\n\t\t\t\t\t\t\tconst ts = r.timeSaved ?? {\n\t\t\t\t\t\t\t\tcompact: { sessionSec: 0, totalSec: 0 },\n\t\t\t\t\t\t\t\tcacheHit: { sessionSec: 0, totalSec: 0 },\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\t\t\t\tNo active repositories.\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{r.displayName || r.repoRoot}\n\t\t\t\t\t\t\t\t\t{r.model ?? \"\\u2014\"}{r.tier ?? \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t\t{r.contextPct != null\n\t\t\t\t\t\t\t\t\t\t\t? `${Math.round(r.contextPct * 100)}%`\n\t\t\t\t\t\t\t\t\t\t\t: \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t{r.state ?? \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t\t{cp.session} / {cp.total}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{ch.session} / {ch.total}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.compact.sessionSec)} /{\" \"}\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.compact.totalSec)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.cacheHit.sessionSec)} /{\" \"}\n\t\t\t\t\t\t\t\t\t\t{fmtSec(ts.cacheHit.totalSec)}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/SavingsByModelTable.tsx — Savings by Model.\n *\n * 14 columns aggregated client-side from /api/index repos by model.\n * Replicates html.ts renderByModel logic: group by modelName, accumulate\n * tokens/cost/sessions, collapse numeric ranges when repos disagree.\n */\n\nimport type React from \"react\";\nimport { useMemo } from \"react\";\nimport type { IndexesIndexRow } from \"@contracts\";\n\nexport interface SavingsByModelTableProps {\n\trepos: IndexesIndexRow[];\n}\n\ninterface ModelGroup {\n\tmodel: string;\n\tprovider: string;\n\tcheckpoints: number;\n\ttokensSaved: number;\n\ttokensIn: number;\n\ttokensOut: number;\n\tsessions: number;\n\tusd: number;\n\tinRates: number[];\n\toutRates: number[];\n\tctxWindows: number[];\n\tmaxTokens: number[];\n\treasoning: boolean | null;\n\tlastAt: number;\n}\n\n/** Collapse numeric samples: \"—\" | single | \"lo–hi\" (matches html.ts). */\nfunction collapseNum(samples: number[]): string {\n\tif (!samples.length) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\treturn lo === hi\n\t\t? lo.toLocaleString()\n\t\t: `${lo.toLocaleString()}\\u2013${hi.toLocaleString()}`;\n}\n\n/** Collapse rate samples: \"—\" | \"$rate\" | \"$lo–$hi\" (matches html.ts). */\nfunction collapseRate(samples: number[]): string {\n\tif (!samples.length) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\tconst fmt = (v: number): string => `$${v.toFixed(6)}`;\n\treturn lo === hi ? fmt(lo) : `${fmt(lo)}\\u2013${fmt(hi)}`;\n}\n\n/** Group repos by model, accumulate totals, sort by tokensSaved desc. */\nfunction aggregate(repos: IndexesIndexRow[]): ModelGroup[] {\n\tconst map: Record = {};\n\tfor (const r of repos) {\n\t\tconst key = (r.modelName && r.modelName.trim()) || \"(unknown)\";\n\t\tif (!map[key]) {\n\t\t\tmap[key] = {\n\t\t\t\tmodel: key,\n\t\t\t\tprovider: r.providerName ?? r.provider ?? \"\\u2014\",\n\t\t\t\tcheckpoints: 0,\n\t\t\t\ttokensSaved: 0,\n\t\t\t\ttokensIn: 0,\n\t\t\t\ttokensOut: 0,\n\t\t\t\tsessions: 0,\n\t\t\t\tusd: 0,\n\t\t\t\tinRates: [],\n\t\t\t\toutRates: [],\n\t\t\t\tctxWindows: [],\n\t\t\t\tmaxTokens: [],\n\t\t\t\treasoning: null,\n\t\t\t\tlastAt: 0,\n\t\t\t};\n\t\t}\n\t\tconst g = map[key];\n\t\tg.checkpoints += r.checkpointCount || 0;\n\t\tg.tokensSaved += r.tokensSaved || 0;\n\t\tg.tokensIn += r.tokensDropped || 0;\n\t\tg.tokensOut += r.tokensKept || 0;\n\t\tg.sessions += r.sessions || 0;\n\t\tif (r.inputRate) {\n\t\t\tg.usd += (r.tokensSaved || 0) * r.inputRate;\n\t\t\tg.inRates.push(r.inputRate);\n\t\t}\n\t\tif (r.outputRate) g.outRates.push(r.outputRate);\n\t\tif (r.contextWindow) g.ctxWindows.push(r.contextWindow);\n\t\tif (r.maxTokens) g.maxTokens.push(r.maxTokens);\n\t\tif (r.reasoning != null) g.reasoning = r.reasoning;\n\t\tif (r.lastCompactedAt && r.lastCompactedAt > g.lastAt)\n\t\t\tg.lastAt = r.lastCompactedAt;\n\t}\n\treturn Object.values(map).sort((a, b) => b.tokensSaved - a.tokensSaved);\n}\n\n/** Tooltip text copied verbatim from html.ts title attributes. */\nconst TOOLTIPS = {\n\ttokensIn: \"Tokens dropped from context by compaction (the input reclaimed)\",\n\ttokensOut:\n\t\t\"Tokens kept as compacted summaries still in context (the output retained)\",\n\tctxWindow: \"Model context window (max input tokens the model accepts)\",\n\tmaxOut: \"Model max output tokens per turn\",\n\treas: \"Reasoning-capable model\",\n\tsessions: \"Distinct sessions with at least one checkpoint\",\n\tinRate: \"USD per input token\",\n\toutRate: \"USD per output token\",\n} as const;\n\nexport function SavingsByModelTable({\n\trepos,\n}: SavingsByModelTableProps): React.ReactElement {\n\tconst groups = useMemo(() => aggregate(repos), [repos]);\n\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\tHow much context & cost mega-compact has reclaimed, grouped by\n\t\t\t\tthe model you were running. Compression ratio reflects\n\t\t\t\tworkload/content, not model quality.\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{groups.length === 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{groups.map((g) => {\n\t\t\t\t\t\t\tconst freed = (g.tokensIn || 0) - (g.tokensOut || 0);\n\t\t\t\t\t\t\tconst usd =\n\t\t\t\t\t\t\t\tg.usd > 0 ? `$${g.usd.toFixed(4)}` : \"\\u2014\";\n\t\t\t\t\t\t\tconst when = g.lastAt\n\t\t\t\t\t\t\t\t? new Date(g.lastAt).toLocaleString()\n\t\t\t\t\t\t\t\t: \"\\u2014\";\n\t\t\t\t\t\t\tconst reas =\n\t\t\t\t\t\t\t\tg.reasoning == null\n\t\t\t\t\t\t\t\t\t? \"\\u2014\"\n\t\t\t\t\t\t\t\t\t: g.reasoning\n\t\t\t\t\t\t\t\t\t\t? \"yes\"\n\t\t\t\t\t\t\t\t\t\t: \"no\";\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t
    ModelProvider\n\t\t\t\t\t\t\t\tTokens In\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTokens Out\n\t\t\t\t\t\t\tFreed\n\t\t\t\t\t\t\t\tCtx Window\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tMax Out\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tReas.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSessions\n\t\t\t\t\t\t\tCheckpoints\n\t\t\t\t\t\t\t\tIn $/tok\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tOut $/tok\n\t\t\t\t\t\t\t$ SavedLast Used
    \n\t\t\t\t\t\t\t\t\tNo repositories registered yet.\n\t\t\t\t\t\t\t\t
    {g.model}{g.provider}\n\t\t\t\t\t\t\t\t\t\t{g.tokensIn.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{g.tokensOut.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{freed.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseNum(g.ctxWindows)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseNum(g.maxTokens)}\n\t\t\t\t\t\t\t\t\t{reas}\n\t\t\t\t\t\t\t\t\t\t{g.sessions.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{g.checkpoints.toLocaleString()}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseRate(g.inRates)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{collapseRate(g.outRates)}\n\t\t\t\t\t\t\t\t\t{usd}{when}
    \n\t\t\t
    \n\t\t\t

    \n\t\t\t\tTokens In = Σ original region tokens dropped by compaction. Tokens\n\t\t\t\tOut = Σ compacted summary tokens still retained in context. Freed =\n\t\t\t\tTokens In − Tokens Out (net context reclaimed). Ctx Window / Max Out\n\t\t\t\t/ Reas. come from the latest captured model snapshot for each repo.\n\t\t\t

    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/tabs/ReposTab.tsx — Repos tab (C2 fleshed out).\n *\n * Renders: SummaryTiles (4 tiles), All Repositories table (RepoTable),\n * Active Repos table (ActiveReposTable), Savings by Model table\n * (SavingsByModelTable), and per-repo detail modal (RepoDetailModal).\n *\n * Data sources: fetchIndex() for summary + all repos + savings-by-model;\n * fetchServers() for active repos. Both polled every 10s.\n */\n\nimport type React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchIndex, fetchServers } from \"../api/client\";\nimport type { IndexesIndexRow, ServersResponse } from \"@contracts\";\nimport { SummaryTiles } from \"../components/SummaryTiles\";\nimport { RepoTable } from \"../components/RepoTable\";\nimport { RepoDetailModal } from \"../components/RepoDetailModal\";\nimport { ActiveReposTable } from \"../components/ActiveReposTable\";\nimport { SavingsByModelTable } from \"../components/SavingsByModelTable\";\n\n/**\n * Actual runtime shape of /api/index. The contract's IndexesSummaryResponse\n * puts summary fields at the top level, but the real server nests them under\n * `summary` (matching IndexFallbackResponse shape with non-null summary).\n */\ninterface DashboardIndexSummary {\n\ttotalRepos: number;\n\ttotalCheckpoints: number;\n\ttotalTokensSaved: number;\n\ttotalCompressedOriginalBytes: number;\n}\n\ninterface DashboardIndexResponse {\n\tupdatedAt: string | null;\n\tsummary: DashboardIndexSummary | null;\n\trepos: IndexesIndexRow[];\n}\n\n/** Fetch /api/index and cast to the actual runtime shape. */\nasync function fetchIndexTyped(): Promise {\n\treturn (await fetchIndex()) as unknown as DashboardIndexResponse;\n}\n\nexport default function ReposTab(): React.ReactElement {\n\tconst [selected, setSelected] = useState(null);\n\n\tconst { data: indexData, error: indexErr } =\n\t\tuseApi(\n\t\t\tuseCallback(() => fetchIndexTyped(), []),\n\t\t\t{ pollInterval: 10_000 },\n\t\t);\n\n\tconst { data: serversData } = useApi(\n\t\tuseCallback(() => fetchServers(), []),\n\t\t{ pollInterval: 10_000 },\n\t);\n\n\tif (indexErr && !indexData) {\n\t\treturn (\n\t\t\t
    Error loading repos: {indexErr.message}
    \n\t\t);\n\t}\n\tif (!indexData) {\n\t\treturn
    Loading repos…
    ;\n\t}\n\n\tconst summary = indexData.summary;\n\tconst repos = indexData.repos;\n\tconst servers = serversData?.servers ?? [];\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t

    All Repositories

    \n\t\t\t\n\t\t\t

    \n\t\t\t\tActive Repos — Live Cache Hits & Compactions\n\t\t\t

    \n\t\t\t\n\t\t\t

    Savings by Model

    \n\t\t\t\n\t\t\t{selected && (\n\t\t\t\t setSelected(null)} />\n\t\t\t)}\n\t\t
    \n\t);\n}\n"],"names":["fmtBytesTop","b","fmt","n","SummaryTiles","totalRepos","totalCheckpoints","totalTokensSaved","compressedOriginalBytes","jsxs","jsx","COLUMNS","formatTs","ts","RepoTable","repos","onSelect","search","setSearch","useState","sortKey","setSortKey","sortDir","setSortDir","filtered","useMemo","q","list","r","a","av","bv","aNull","bNull","cmp","handleSort","key","d","e","col","repo","RepoDetailModal","onClose","useEffect","handler","fmtSec","v","HEADERS","ActiveReposTable","servers","h","i","ch","cp","collapseNum","samples","lo","hi","collapseRate","aggregate","map","g","TOOLTIPS","SavingsByModelTable","groups","freed","usd","when","reas","fetchIndexTyped","fetchIndex","ReposTab","selected","setSelected","indexData","indexErr","useApi","useCallback","serversData","fetchServers","summary"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/SessionsTab-mz_vz8i2.js b/extensions/dashboard-client/dist/assets/SessionsTab-DfxFUEFC.js similarity index 99% rename from extensions/dashboard-client/dist/assets/SessionsTab-mz_vz8i2.js rename to extensions/dashboard-client/dist/assets/SessionsTab-DfxFUEFC.js index 9bd2842..7547ca0 100644 --- a/extensions/dashboard-client/dist/assets/SessionsTab-mz_vz8i2.js +++ b/extensions/dashboard-client/dist/assets/SessionsTab-DfxFUEFC.js @@ -1,4 +1,4 @@ -import{i as di,k as se,r as L,R as _,j as U,u as Ms,f as om,l as um}from"./index-CqLN7STl.js";import{u as cm}from"./useSSE-CXrQSbVY.js";function Tp(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t-1}var ub=ob,cb=Ia;function sb(e,t){var r=this.__data__,n=cb(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var lb=sb,fb=Kg,hb=tb,pb=ib,db=ub,vb=lb;function Yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t-1}var ub=ob,cb=Ia;function sb(e,t){var r=this.__data__,n=cb(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var lb=sb,fb=Kg,hb=tb,pb=ib,db=ub,vb=lb;function Yr(e){var t=-1,r=e==null?0:e.length;for(this.clear();++te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function B3(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function F3(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W3(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?o:t&&t.length&&R(i)&&R(a)?t.slice(i,a+1):[]};function am(e){return e==="number"?[0,"auto"]:void 0}var Oc=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,u=wo(r,t);return n<0||!a||!a.length||n>=u.length?null:a.reduce(function(c,s){var f,l=(f=s.props.data)!==null&&f!==void 0?f:r;l&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(l=l.slice(t.dataStartIndex,t.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=l===void 0?u:l;h=Ei(p,o.dataKey,i)}else h=l&&l[n]||u[n];return h?[].concat(qr(c),[Yv(s,h)]):c},[])},bp=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=Q3(a,n),u=t.orderedTooltipTicks,c=t.tooltipAxis,s=t.tooltipTicks,f=e2(o,u,s,c);if(f>=0&&s){var l=s[f]&&s[f].value,h=Oc(t,r,f,l),p=eW(n,u,f,a);return{activeTooltipIndex:f,activeLabel:l,activePayload:h,activeCoordinate:p}}return null},tW=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.layout,l=t.children,h=t.stackOffset,p=Kv(f,a);return n.reduce(function(y,v){var d,b=v.type.defaultProps!==void 0?M(M({},v.type.defaultProps),v.props):v.props,x=b.type,w=b.dataKey,O=b.allowDataOverflow,m=b.allowDuplicatedCategory,g=b.scale,A=b.ticks,S=b.includeHidden,P=b[o];if(y[P])return y;var E=wo(t.data,{graphicalItems:i.filter(function(z){var X,le=o in z.props?z.props[o]:(X=z.type.defaultProps)===null||X===void 0?void 0:X[o];return le===P}),dataStartIndex:c,dataEndIndex:s}),T=E.length,$,k,C;$3(b.domain,O,x)&&($=Bu(b.domain,null,O),p&&(x==="number"||g!=="auto")&&(C=wn(E,w,"category")));var j=am(x);if(!$||$.length===0){var I,D=(I=b.domain)!==null&&I!==void 0?I:j;if(w){if($=wn(E,w,x),x==="category"&&p){var B=W0($);m&&B?(k=$,$=ma(0,T)):m||($=Jf(D,$,v).reduce(function(z,X){return z.indexOf(X)>=0?z:[].concat(qr(z),[X])},[]))}else if(x==="category")m?$=$.filter(function(z){return z!==""&&!Q(z)}):$=Jf(D,$,v).reduce(function(z,X){return z.indexOf(X)>=0||X===""||Q(X)?z:[].concat(qr(z),[X])},[]);else if(x==="number"){var F=a2(E,i.filter(function(z){var X,le,ye=o in z.props?z.props[o]:(X=z.type.defaultProps)===null||X===void 0?void 0:X[o],Be="hide"in z.props?z.props.hide:(le=z.type.defaultProps)===null||le===void 0?void 0:le.hide;return ye===P&&(S||!Be)}),w,a,f);F&&($=F)}p&&(x==="number"||g!=="auto")&&(C=wn(E,w,"category"))}else p?$=ma(0,T):u&&u[P]&&u[P].hasStack&&x==="number"?$=h==="expand"?[0,1]:Vv(u[P].stackGroups,c,s):$=qv(E,i.filter(function(z){var X=o in z.props?z.props[o]:z.type.defaultProps[o],le="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return X===P&&(S||!le)}),x,f,!0);if(x==="number")$=bc(l,$,P,a,A),D&&($=Bu(D,$,O));else if(x==="category"&&D){var G=D,K=$.every(function(z){return G.indexOf(z)>=0});K&&($=G)}}return M(M({},y),{},q({},P,M(M({},b),{},{axisType:a,domain:$,categoricalDomain:C,duplicateDomain:k,originalDomain:(d=b.domain)!==null&&d!==void 0?d:j,isCategorical:p,layout:f})))},{})},rW=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.layout,l=t.children,h=wo(t.data,{graphicalItems:n,dataStartIndex:c,dataEndIndex:s}),p=h.length,y=Kv(f,a),v=-1;return n.reduce(function(d,b){var x=b.type.defaultProps!==void 0?M(M({},b.type.defaultProps),b.props):b.props,w=x[o],O=am("number");if(!d[w]){v++;var m;return y?m=ma(0,p):u&&u[w]&&u[w].hasStack?(m=Vv(u[w].stackGroups,c,s),m=bc(l,m,w,a)):(m=Bu(O,qv(h,n.filter(function(g){var A,S,P=o in g.props?g.props[o]:(A=g.type.defaultProps)===null||A===void 0?void 0:A[o],E="hide"in g.props?g.props.hide:(S=g.type.defaultProps)===null||S===void 0?void 0:S.hide;return P===w&&!E}),"number",f),i.defaultProps.allowDataOverflow),m=bc(l,m,w,a)),M(M({},d),{},q({},w,M(M({axisType:a},i.defaultProps),{},{hide:!0,orientation:Xe(Z3,"".concat(a,".").concat(v%2),null),domain:m,originalDomain:O,isCategorical:y,layout:f})))}return d},{})},nW=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.children,l="".concat(i,"Id"),h=Ve(f,a),p={};return h&&h.length?p=tW(t,{axes:h,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:c,dataEndIndex:s}):o&&o.length&&(p=rW(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:c,dataEndIndex:s})),p},iW=function(t){var r=jt(t),n=yt(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:qc(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:ua(r,n)}},xp=function(t){var r=t.children,n=t.defaultShowTooltip,i=ze(r,Dr),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},aW=function(t){return!t||!t.length?!1:t.some(function(r){var n=mt(r&&r.type);return n&&n.indexOf("Bar")>=0})},wp=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},oW=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,u=t.yAxisMap,c=u===void 0?{}:u,s=n.width,f=n.height,l=n.children,h=n.margin||{},p=ze(l,Dr),y=ze(l,Jt),v=Object.keys(c).reduce(function(m,g){var A=c[g],S=A.orientation;return!A.mirror&&!A.hide?M(M({},m),{},q({},S,m[S]+A.width)):m},{left:h.left||0,right:h.right||0}),d=Object.keys(o).reduce(function(m,g){var A=o[g],S=A.orientation;return!A.mirror&&!A.hide?M(M({},m),{},q({},S,Xe(m,"".concat(S))+A.height)):m},{top:h.top||0,bottom:h.bottom||0}),b=M(M({},d),v),x=b.bottom;p&&(b.bottom+=p.props.height||Dr.defaultProps.height),y&&r&&(b=n2(b,i,n,r));var w=s-b.left-b.right,O=f-b.top-b.bottom;return M(M({brushBottom:x},b),{},{width:Math.max(w,0),height:Math.max(O,0)})},uW=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},cW=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,u=o===void 0?["axis"]:o,c=t.axisComponents,s=t.legendContent,f=t.formatAxisMap,l=t.defaultProps,h=function(b,x){var w=x.graphicalItems,O=x.stackGroups,m=x.offset,g=x.updateId,A=x.dataStartIndex,S=x.dataEndIndex,P=b.barSize,E=b.layout,T=b.barGap,$=b.barCategoryGap,k=b.maxBarSize,C=wp(E),j=C.numericAxisName,I=C.cateAxisName,D=aW(w),B=[];return w.forEach(function(F,G){var K=wo(b.data,{graphicalItems:[F],dataStartIndex:A,dataEndIndex:S}),z=F.type.defaultProps!==void 0?M(M({},F.type.defaultProps),F.props):F.props,X=z.dataKey,le=z.maxBarSize,ye=z["".concat(j,"Id")],Be=z["".concat(I,"Id")],Ft={},De=c.reduce(function(Wt,zt){var Oo=x["".concat(zt.axisType,"Map")],Es=z["".concat(zt.axisType,"Id")];Oo&&Oo[Es]||zt.axisType==="zAxis"||ir();var js=Oo[Es];return M(M({},Wt),{},q(q({},zt.axisType,js),"".concat(zt.axisType,"Ticks"),yt(js)))},Ft),W=De[I],Y=De["".concat(I,"Ticks")],J=O&&O[ye]&&O[ye].hasStack&&m2(F,O[ye].stackGroups),N=mt(F.type).indexOf("Bar")>=0,de=ua(W,Y),te=[],be=D&&t2({barSize:P,stackGroups:O,totalSize:uW(De,I)});if(N){var xe,Ne,$t=Q(le)?k:le,fr=(xe=(Ne=ua(W,Y,!0))!==null&&Ne!==void 0?Ne:$t)!==null&&xe!==void 0?xe:0;te=r2({barGap:T,barCategoryGap:$,bandSize:fr!==de?fr:de,sizeList:be[Be],maxBarSize:$t}),fr!==de&&(te=te.map(function(Wt){return M(M({},Wt),{},{position:M(M({},Wt.position),{},{offset:Wt.position.offset-fr/2})})}))}var pi=F&&F.type&&F.type.getComposedData;pi&&B.push({props:M(M({},pi(M(M({},De),{},{displayedData:K,props:b,dataKey:X,item:F,bandSize:de,barPosition:te,offset:m,stackedData:J,layout:E,dataStartIndex:A,dataEndIndex:S}))),{},q(q(q({key:F.key||"item-".concat(G)},j,De[j]),I,De[I]),"animationId",g)),childIndex:Q0(F,b.children),item:F})}),B},p=function(b,x){var w=b.props,O=b.dataStartIndex,m=b.dataEndIndex,g=b.updateId;if(!Gs({props:w}))return null;var A=w.children,S=w.layout,P=w.stackOffset,E=w.data,T=w.reverseStackOrder,$=wp(S),k=$.numericAxisName,C=$.cateAxisName,j=Ve(A,n),I=d2(E,j,"".concat(k,"Id"),"".concat(C,"Id"),P,T),D=c.reduce(function(z,X){var le="".concat(X.axisType,"Map");return M(M({},z),{},q({},le,nW(w,M(M({},X),{},{graphicalItems:j,stackGroups:X.axisType===k&&I,dataStartIndex:O,dataEndIndex:m}))))},{}),B=oW(M(M({},D),{},{props:w,graphicalItems:j}),x?.legendBBox);Object.keys(D).forEach(function(z){D[z]=f(w,D[z],B,z.replace("Map",""),r)});var F=D["".concat(C,"Map")],G=iW(F),K=h(w,M(M({},D),{},{dataStartIndex:O,dataEndIndex:m,updateId:g,graphicalItems:j,stackGroups:I,offset:B}));return M(M({formattedGraphicalItems:K,graphicalItems:j,offset:B,stackGroups:I},G),D)},y=function(d){function b(x){var w,O,m;return F3(this,b),m=U3(this,b,[x]),q(m,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),q(m,"accessibilityManager",new P3),q(m,"handleLegendBBoxUpdate",function(g){if(g){var A=m.state,S=A.dataStartIndex,P=A.dataEndIndex,E=A.updateId;m.setState(M({legendBBox:g},p({props:m.props,dataStartIndex:S,dataEndIndex:P,updateId:E},M(M({},m.state),{},{legendBBox:g}))))}}),q(m,"handleReceiveSyncEvent",function(g,A,S){if(m.props.syncId===g){if(S===m.eventEmitterSymbol&&typeof m.props.syncMethod!="function")return;m.applySyncEvent(A)}}),q(m,"handleBrushChange",function(g){var A=g.startIndex,S=g.endIndex;if(A!==m.state.dataStartIndex||S!==m.state.dataEndIndex){var P=m.state.updateId;m.setState(function(){return M({dataStartIndex:A,dataEndIndex:S},p({props:m.props,dataStartIndex:A,dataEndIndex:S,updateId:P},m.state))}),m.triggerSyncEvent({dataStartIndex:A,dataEndIndex:S})}}),q(m,"handleMouseEnter",function(g){var A=m.getMouseInfo(g);if(A){var S=M(M({},A),{},{isTooltipActive:!0});m.setState(S),m.triggerSyncEvent(S);var P=m.props.onMouseEnter;V(P)&&P(S,g)}}),q(m,"triggeredAfterMouseMove",function(g){var A=m.getMouseInfo(g),S=A?M(M({},A),{},{isTooltipActive:!0}):{isTooltipActive:!1};m.setState(S),m.triggerSyncEvent(S);var P=m.props.onMouseMove;V(P)&&P(S,g)}),q(m,"handleItemMouseEnter",function(g){m.setState(function(){return{isTooltipActive:!0,activeItem:g,activePayload:g.tooltipPayload,activeCoordinate:g.tooltipPosition||{x:g.cx,y:g.cy}}})}),q(m,"handleItemMouseLeave",function(){m.setState(function(){return{isTooltipActive:!1}})}),q(m,"handleMouseMove",function(g){g.persist(),m.throttleTriggeredAfterMouseMove(g)}),q(m,"handleMouseLeave",function(g){m.throttleTriggeredAfterMouseMove.cancel();var A={isTooltipActive:!1};m.setState(A),m.triggerSyncEvent(A);var S=m.props.onMouseLeave;V(S)&&S(A,g)}),q(m,"handleOuterEvent",function(g){var A=J0(g),S=Xe(m.props,"".concat(A));if(A&&V(S)){var P,E;/.*touch.*/i.test(A)?E=m.getMouseInfo(g.changedTouches[0]):E=m.getMouseInfo(g),S((P=E)!==null&&P!==void 0?P:{},g)}}),q(m,"handleClick",function(g){var A=m.getMouseInfo(g);if(A){var S=M(M({},A),{},{isTooltipActive:!0});m.setState(S),m.triggerSyncEvent(S);var P=m.props.onClick;V(P)&&P(S,g)}}),q(m,"handleMouseDown",function(g){var A=m.props.onMouseDown;if(V(A)){var S=m.getMouseInfo(g);A(S,g)}}),q(m,"handleMouseUp",function(g){var A=m.props.onMouseUp;if(V(A)){var S=m.getMouseInfo(g);A(S,g)}}),q(m,"handleTouchMove",function(g){g.changedTouches!=null&&g.changedTouches.length>0&&m.throttleTriggeredAfterMouseMove(g.changedTouches[0])}),q(m,"handleTouchStart",function(g){g.changedTouches!=null&&g.changedTouches.length>0&&m.handleMouseDown(g.changedTouches[0])}),q(m,"handleTouchEnd",function(g){g.changedTouches!=null&&g.changedTouches.length>0&&m.handleMouseUp(g.changedTouches[0])}),q(m,"handleDoubleClick",function(g){var A=m.props.onDoubleClick;if(V(A)){var S=m.getMouseInfo(g);A(S,g)}}),q(m,"handleContextMenu",function(g){var A=m.props.onContextMenu;if(V(A)){var S=m.getMouseInfo(g);A(S,g)}}),q(m,"triggerSyncEvent",function(g){m.props.syncId!==void 0&&Vo.emit(Yo,m.props.syncId,g,m.eventEmitterSymbol)}),q(m,"applySyncEvent",function(g){var A=m.props,S=A.layout,P=A.syncMethod,E=m.state.updateId,T=g.dataStartIndex,$=g.dataEndIndex;if(g.dataStartIndex!==void 0||g.dataEndIndex!==void 0)m.setState(M({dataStartIndex:T,dataEndIndex:$},p({props:m.props,dataStartIndex:T,dataEndIndex:$,updateId:E},m.state)));else if(g.activeTooltipIndex!==void 0){var k=g.chartX,C=g.chartY,j=g.activeTooltipIndex,I=m.state,D=I.offset,B=I.tooltipTicks;if(!D)return;if(typeof P=="function")j=P(B,g);else if(P==="value"){j=-1;for(var F=0;F=0){var J,N;if(k.dataKey&&!k.allowDuplicatedCategory){var de=typeof k.dataKey=="function"?Y:"payload.".concat(k.dataKey.toString());J=Ei(F,de,j),N=G&&K&&Ei(K,de,j)}else J=F?.[C],N=G&&K&&K[C];if(Be||ye){var te=g.props.activeIndex!==void 0?g.props.activeIndex:C;return[L.cloneElement(g,M(M(M({},P.props),De),{},{activeIndex:te})),null,null]}if(!Q(J))return[W].concat(qr(m.renderActivePoints({item:P,activePoint:J,basePoint:N,childIndex:C,isRange:G})))}else{var be,xe=(be=m.getItemByXY(m.state.activeCoordinate))!==null&&be!==void 0?be:{graphicalItem:W},Ne=xe.graphicalItem,$t=Ne.item,fr=$t===void 0?g:$t,pi=Ne.childIndex,Wt=M(M(M({},P.props),De),{},{activeIndex:pi});return[L.cloneElement(fr,Wt),null,null]}return G?[W,null,null]:[W,null]}),q(m,"renderCustomized",function(g,A,S){return L.cloneElement(g,M(M({key:"recharts-customized-".concat(S)},m.props),m.state))}),q(m,"renderMap",{CartesianGrid:{handler:Ti,once:!0},ReferenceArea:{handler:m.renderReferenceElement},ReferenceLine:{handler:Ti},ReferenceDot:{handler:m.renderReferenceElement},XAxis:{handler:Ti},YAxis:{handler:Ti},Brush:{handler:m.renderBrush,once:!0},Bar:{handler:m.renderGraphicChild},Line:{handler:m.renderGraphicChild},Area:{handler:m.renderGraphicChild},Radar:{handler:m.renderGraphicChild},RadialBar:{handler:m.renderGraphicChild},Scatter:{handler:m.renderGraphicChild},Pie:{handler:m.renderGraphicChild},Funnel:{handler:m.renderGraphicChild},Tooltip:{handler:m.renderCursor,once:!0},PolarGrid:{handler:m.renderPolarGrid,once:!0},PolarAngleAxis:{handler:m.renderPolarAxis},PolarRadiusAxis:{handler:m.renderPolarAxis},Customized:{handler:m.renderCustomized}}),m.clipPathId="".concat((w=x.id)!==null&&w!==void 0?w:Qr("recharts"),"-clip"),m.throttleTriggeredAfterMouseMove=Hd(m.triggeredAfterMouseMove,(O=x.throttleDelay)!==null&&O!==void 0?O:1e3/60),m.state={},m}return q3(b,d),z3(b,[{key:"componentDidMount",value:function(){var w,O;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var w=this.props,O=w.children,m=w.data,g=w.height,A=w.layout,S=ze(O,at);if(S){var P=S.props.defaultIndex;if(!(typeof P!="number"||P<0||P>this.state.tooltipTicks.length-1)){var E=this.state.tooltipTicks[P]&&this.state.tooltipTicks[P].value,T=Oc(this.state,m,P,E),$=this.state.tooltipTicks[P].coordinate,k=(this.state.offset.top+g)/2,C=A==="horizontal",j=C?{x:$,y:k}:{y:$,x:k},I=this.state.formattedGraphicalItems.find(function(B){var F=B.item;return F.type.name==="Scatter"});I&&(j=M(M({},j),I.props.points[P].tooltipPosition),T=I.props.points[P].tooltipPayload);var D={activeTooltipIndex:P,isTooltipActive:!0,activeLabel:E,activePayload:T,activeCoordinate:j};this.setState(D),this.renderCursor(S),this.accessibilityManager.setIndex(P)}}}},{key:"getSnapshotBeforeUpdate",value:function(w,O){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==O.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==w.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==w.margin){var m,g;this.accessibilityManager.setDetails({offset:{left:(m=this.props.margin.left)!==null&&m!==void 0?m:0,top:(g=this.props.margin.top)!==null&&g!==void 0?g:0}})}return null}},{key:"componentDidUpdate",value:function(w){eu([ze(w.children,at)],[ze(this.props.children,at)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var w=ze(this.props.children,at);if(w&&typeof w.props.shared=="boolean"){var O=w.props.shared?"axis":"item";return u.indexOf(O)>=0?O:a}return a}},{key:"getMouseInfo",value:function(w){if(!this.container)return null;var O=this.container,m=O.getBoundingClientRect(),g=PE(m),A={chartX:Math.round(w.pageX-g.left),chartY:Math.round(w.pageY-g.top)},S=m.width/O.offsetWidth||1,P=this.inRange(A.chartX,A.chartY,S);if(!P)return null;var E=this.state,T=E.xAxisMap,$=E.yAxisMap,k=this.getTooltipEventType(),C=bp(this.state,this.props.data,this.props.layout,P);if(k!=="axis"&&T&&$){var j=jt(T).scale,I=jt($).scale,D=j&&j.invert?j.invert(A.chartX):null,B=I&&I.invert?I.invert(A.chartY):null;return M(M({},A),{},{xValue:D,yValue:B},C)}return C?M(M({},A),C):null}},{key:"inRange",value:function(w,O){var m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,g=this.props.layout,A=w/m,S=O/m;if(g==="horizontal"||g==="vertical"){var P=this.state.offset,E=A>=P.left&&A<=P.left+P.width&&S>=P.top&&S<=P.top+P.height;return E?{x:A,y:S}:null}var T=this.state,$=T.angleAxisMap,k=T.radiusAxisMap;if($&&k){var C=jt($);return th({x:A,y:S},C)}return null}},{key:"parseEventsOfWrapper",value:function(){var w=this.props.children,O=this.getTooltipEventType(),m=ze(w,at),g={};m&&O==="axis"&&(m.props.trigger==="click"?g={onClick:this.handleClick}:g={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var A=ji(this.props,this.handleOuterEvent);return M(M({},A),g)}},{key:"addListener",value:function(){Vo.on(Yo,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){Vo.removeListener(Yo,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(w,O,m){for(var g=this.state.formattedGraphicalItems,A=0,S=g.length;Ai.sessionId);for(const i of e)for(const a of i.data){let o=r.get(a.ts);if(!o){o={ts:a.ts,total:0};for(const u of n)o[u]=0;r.set(a.ts,o)}o[i.sessionId]=a.tokens}for(const i of t){let a=r.get(i.ts);if(!a){a={ts:i.ts,total:0};for(const o of n)a[o]=0;r.set(i.ts,a)}a.total=i.tokens}return[...r.values()].sort((i,a)=>i.ts-a.ts)}function Op(e){return new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Ap(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString():String(e)}function Sp(e){return`grad-${e.replace(/[^a-zA-Z0-9_-]/g,"_")}`}function fW({series:e,totals:t}){const r=L.useMemo(()=>lW(e,t),[e,t]);return e.length===0?U.jsx("div",{className:"sessions-chart-empty",children:"No token samples in this window yet."}):U.jsx("div",{className:"sessions-chart",children:U.jsx(bE,{width:"100%",height:360,children:U.jsxs(sW,{data:r,margin:{top:8,right:16,left:0,bottom:0},children:[U.jsx("defs",{children:e.map(n=>U.jsxs("linearGradient",{id:Sp(n.sessionId),x1:"0",y1:"0",x2:"0",y2:"1",children:[U.jsx("stop",{offset:"5%",stopColor:n.color,stopOpacity:.7}),U.jsx("stop",{offset:"95%",stopColor:n.color,stopOpacity:.25})]},`${n.sessionId}-grad`))}),U.jsx(By,{strokeDasharray:"3 3",stroke:"#30363d"}),U.jsx(bo,{dataKey:"ts",type:"number",domain:["dataMin","dataMax"],tickFormatter:n=>Op(n),stroke:"#8b949e",tick:{fontSize:11},scale:"time"}),U.jsx(xo,{stroke:"#8b949e",tick:{fontSize:11},width:56,tickFormatter:n=>Ap(n)}),U.jsx(at,{labelFormatter:n=>Op(n),formatter:n=>[Ap(n),"tokens"],contentStyle:{background:"#161b22",border:"1px solid #30363d",borderRadius:"6px",color:"#e6edf3"},labelStyle:{color:"#8b949e",fontSize:12}}),U.jsx(Jt,{wrapperStyle:{fontSize:12}}),e.map(n=>U.jsx(Bt,{type:"monotone",dataKey:n.sessionId,name:n.label,stackId:"1",stroke:n.color,fill:`url(#${Sp(n.sessionId)})`,fillOpacity:1,isAnimationActive:!1,dot:!1},n.sessionId)),U.jsx(go,{type:"monotone",dataKey:"total",name:"Total",stroke:"#e6edf3",strokeWidth:1.5,strokeDasharray:"4 2",dot:!1,isAnimationActive:!1})]})})})}const _p=["PID","Repo","Model","Context %","Tokens / Window","Last Heartbeat","State Dir","Trend"];function hW(e){const t=Math.max(0,Math.round(e/1e3));if(t<60)return`${t}s ago`;const r=Math.floor(t/60);return r<60?`${r}m ${t%60}s ago`:`${Math.floor(r/60)}h ${r%60}m ago`}function Pp(e){return e==null?"—":e>=1e5?`${(e/1e3).toFixed(0)}k`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function pW(e){return e==null?"sessions-pct-ok":e>=85?"sessions-pct-err":e>=60?"sessions-pct-warn":"sessions-pct-ok"}function dW(e){return e==null?"—":`${Math.round(e)}%`}function vW(e,t){return e==null?"—":`${Pp(e)} / ${Pp(t)}`}function yW({points:e,color:t}){if(e.length<2)return U.jsx("span",{className:"sessions-sparkline-empty",children:"—"});const r=Math.min(...e),i=Math.max(...e)-r||1,a=64,o=18,u=a/(e.length-1),c=e.map((s,f)=>{const l=f*u,h=o-(s-r)/i*o;return`${f===0?"M":"L"} ${l.toFixed(1)} ${h.toFixed(1)}`});return U.jsx("svg",{className:"sessions-sparkline",width:a,height:o,viewBox:`0 0 ${a} ${o}`,role:"img","aria-label":"token trend",children:U.jsx("path",{d:c.join(" "),fill:"none",stroke:t,strokeWidth:"1.5",strokeLinejoin:"round",strokeLinecap:"round"})})}function mW(e){const t=new Map;for(const r of e)t.set(r.sessionId,r);return t}function gW({sessions:e,series:t}){const r=mW(t),n=Date.now();return U.jsx("div",{className:"sessions-table-scroll",children:U.jsxs("table",{className:"sessions-table",children:[U.jsx("thead",{children:U.jsx("tr",{children:_p.map((i,a)=>U.jsx("th",{className:a>=3&&a!==6?"num":void 0,children:i},i))})}),U.jsxs("tbody",{children:[e.length===0&&U.jsx("tr",{className:"sessions-empty-row",children:U.jsx("td",{colSpan:_p.length,children:"No active sessions."})}),e.map(i=>{const a=r.get(i.sessionId),o=a?.data.map(c=>c.tokens)??[],u=a?.color??"#58a6ff";return U.jsxs("tr",{children:[U.jsx("td",{className:"num",children:i.pid}),U.jsx("td",{title:i.repoRoot??void 0,children:i.displayName||i.repoRoot||"—"}),U.jsx("td",{children:i.model??"—"}),U.jsx("td",{className:"num",children:U.jsx("span",{className:`sessions-pct-pill ${pW(i.percent)}`,children:dW(i.percent)})}),U.jsx("td",{className:"num",children:vW(i.tokens,i.ctxWindow)}),U.jsx("td",{className:"num",children:hW(n-i.lastSeen)}),U.jsx("td",{title:i.stateDir??void 0,className:"sessions-meta",children:i.stateDir?i.stateDir.split("/").pop()||i.stateDir:"—"}),U.jsx("td",{children:U.jsx(yW,{points:o,color:u})})]},`${i.pid}:${i.sessionId}`)})]})]})})}function bW(e){return e.type==="session_sample"}const $p=[{value:5,label:"5m"},{value:15,label:"15m"},{value:30,label:"30m"},{value:60,label:"60m"}];function xW({sessions:e}){const t=e.sessions.length,r=e.sessions.reduce((a,o)=>a+(o.tokens??0),0),n=e.sessions.reduce((a,o)=>Math.max(a,o.ctxWindow),0),i=n>0?r/n*100:0;return U.jsxs("div",{className:"sessions-summary-tiles",children:[U.jsxs("div",{className:"tile",children:[U.jsx("span",{className:"tile-label",children:"Active sessions"}),U.jsx("span",{className:"tile-value",children:t})]}),U.jsxs("div",{className:"tile",children:[U.jsx("span",{className:"tile-label",children:"Combined tokens"}),U.jsx("span",{className:"tile-value",children:r>=1e5?`${(r/1e3).toFixed(0)}k`:r.toLocaleString()})]}),U.jsxs("div",{className:"tile",children:[U.jsx("span",{className:"tile-label",children:"Combined % of max window"}),U.jsxs("span",{className:"tile-value",children:[Math.round(i),"%"]})]}),U.jsxs("div",{className:"tile",children:[U.jsx("span",{className:"tile-label",children:"Pruned (stale)"}),U.jsx("span",{className:"tile-value",children:e.pruned})]})]})}function AW(){const[e,t]=L.useState(30),{data:r,error:n,refetch:i}=Ms(L.useCallback(()=>om(),[]),{pollInterval:2e3}),{data:a,error:o,refetch:u}=Ms(L.useCallback(()=>um(e),[e]),{pollInterval:2e3}),{events:c}=cm(),s=L.useMemo(()=>c.filter(bW),[c]),f=L.useMemo(()=>s.length===0?null:s[s.length-1].ts,[s]);if(L.useEffect(()=>{f!=null&&(i(),u())},[f,i,u]),n&&!r)return U.jsxs("div",{className:"tab-stub",children:["Error loading sessions: ",n.message]});if(o&&!a)return U.jsxs("div",{className:"tab-stub",children:["Error loading timeseries: ",o.message]});if(!r)return U.jsx("div",{className:"tab-stub",children:"Loading sessions…"});const l=r.sessions,h=a?.series??[],p=a?.totals??[],y=$p.find(v=>v.value===e)?.label??`${e}m`;return U.jsxs("div",{className:"sessions-tab",children:[U.jsxs("div",{className:"sessions-toolbar",children:[U.jsx("h2",{children:"Session Memory Graph"}),U.jsx("div",{className:"sessions-window-select",children:$p.map(v=>U.jsx("button",{type:"button",className:`sessions-window-btn ${e===v.value?"active":""}`,onClick:()=>t(v.value),"aria-pressed":e===v.value,children:v.label},v.value))})]}),l.length===0?U.jsx("div",{className:"sessions-empty",children:"No active sessions."}):U.jsxs(U.Fragment,{children:[U.jsx(xW,{sessions:r}),U.jsx(fW,{series:h,totals:p}),U.jsx("h2",{className:"section-header",children:"Active Sessions"}),U.jsx(gW,{sessions:l,series:h}),U.jsxs("div",{className:"sessions-footer",children:[h.length," series · ",p.length," timestamps ·"," ",y," window · updated"," ",a?.updatedAt??r.updatedAt]})]})]})}export{AW as default}; -//# sourceMappingURL=SessionsTab-mz_vz8i2.js.map +//# sourceMappingURL=SessionsTab-DfxFUEFC.js.map diff --git a/extensions/dashboard-client/dist/assets/SessionsTab-mz_vz8i2.js.map b/extensions/dashboard-client/dist/assets/SessionsTab-DfxFUEFC.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/SessionsTab-mz_vz8i2.js.map rename to extensions/dashboard-client/dist/assets/SessionsTab-DfxFUEFC.js.map index 9b3bd69..8693441 100644 --- a/extensions/dashboard-client/dist/assets/SessionsTab-mz_vz8i2.js.map +++ b/extensions/dashboard-client/dist/assets/SessionsTab-DfxFUEFC.js.map @@ -1 +1 @@ -{"version":3,"file":"SessionsTab-mz_vz8i2.js","sources":["../../node_modules/clsx/dist/clsx.mjs","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../../node_modules/lodash/isNil.js","../../node_modules/lodash/isString.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/index.js","../../node_modules/lodash/isNumber.js","../../node_modules/lodash/isNaN.js","../../node_modules/recharts/es6/util/DataUtils.js","../../node_modules/recharts/es6/util/ShallowEqual.js","../../node_modules/recharts/es6/util/types.js","../../node_modules/recharts/es6/util/ReactUtils.js","../../node_modules/recharts/es6/container/Surface.js","../../node_modules/recharts/es6/container/Layer.js","../../node_modules/recharts/es6/util/LogUtils.js","../../node_modules/lodash/_baseSlice.js","../../node_modules/lodash/_castSlice.js","../../node_modules/lodash/_hasUnicode.js","../../node_modules/lodash/_asciiToArray.js","../../node_modules/lodash/_unicodeToArray.js","../../node_modules/lodash/_stringToArray.js","../../node_modules/lodash/_createCaseFirst.js","../../node_modules/lodash/upperFirst.js","../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-path/src/path.js","../../node_modules/d3-shape/src/path.js","../../node_modules/d3-shape/src/array.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-shape/src/area.js","../../node_modules/d3-shape/src/curve/bump.js","../../node_modules/d3-shape/src/symbol/circle.js","../../node_modules/d3-shape/src/symbol/cross.js","../../node_modules/d3-shape/src/symbol/diamond.js","../../node_modules/d3-shape/src/symbol/square.js","../../node_modules/d3-shape/src/symbol/star.js","../../node_modules/d3-shape/src/symbol/triangle.js","../../node_modules/d3-shape/src/symbol/wye.js","../../node_modules/d3-shape/src/symbol.js","../../node_modules/d3-shape/src/noop.js","../../node_modules/d3-shape/src/curve/basis.js","../../node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/d3-shape/src/curve/monotone.js","../../node_modules/d3-shape/src/curve/natural.js","../../node_modules/d3-shape/src/curve/step.js","../../node_modules/d3-shape/src/offset/none.js","../../node_modules/d3-shape/src/order/none.js","../../node_modules/d3-shape/src/stack.js","../../node_modules/d3-shape/src/offset/expand.js","../../node_modules/d3-shape/src/offset/silhouette.js","../../node_modules/d3-shape/src/offset/wiggle.js","../../node_modules/recharts/es6/shape/Symbols.js","../../node_modules/recharts/es6/component/DefaultLegendContent.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/_baseIsArguments.js","../../node_modules/lodash/isArguments.js","../../node_modules/lodash/stubFalse.js","../../node_modules/lodash/isBuffer.js","../../node_modules/lodash/_isIndex.js","../../node_modules/lodash/isLength.js","../../node_modules/lodash/_baseIsTypedArray.js","../../node_modules/lodash/_baseUnary.js","../../node_modules/lodash/_nodeUtil.js","../../node_modules/lodash/isTypedArray.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/_isPrototype.js","../../node_modules/lodash/_overArg.js","../../node_modules/lodash/_nativeKeys.js","../../node_modules/lodash/_baseKeys.js","../../node_modules/lodash/isArrayLike.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_DataView.js","../../node_modules/lodash/_Promise.js","../../node_modules/lodash/_Set.js","../../node_modules/lodash/_WeakMap.js","../../node_modules/lodash/_getTag.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/identity.js","../../node_modules/lodash/_baseProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseIteratee.js","../../node_modules/lodash/_baseFindIndex.js","../../node_modules/lodash/_baseIsNaN.js","../../node_modules/lodash/_strictIndexOf.js","../../node_modules/lodash/_baseIndexOf.js","../../node_modules/lodash/_arrayIncludes.js","../../node_modules/lodash/_arrayIncludesWith.js","../../node_modules/lodash/noop.js","../../node_modules/lodash/_createSet.js","../../node_modules/lodash/_baseUniq.js","../../node_modules/lodash/uniqBy.js","../../node_modules/recharts/es6/util/payload/getUniqPayload.js","../../node_modules/recharts/es6/component/Legend.js","../../node_modules/lodash/_isFlattenable.js","../../node_modules/lodash/_baseFlatten.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_baseForOwn.js","../../node_modules/lodash/_createBaseEach.js","../../node_modules/lodash/_baseEach.js","../../node_modules/lodash/_baseMap.js","../../node_modules/lodash/_baseSortBy.js","../../node_modules/lodash/_compareAscending.js","../../node_modules/lodash/_compareMultiple.js","../../node_modules/lodash/_baseOrderBy.js","../../node_modules/lodash/_apply.js","../../node_modules/lodash/_overRest.js","../../node_modules/lodash/constant.js","../../node_modules/lodash/_defineProperty.js","../../node_modules/lodash/_baseSetToString.js","../../node_modules/lodash/_shortOut.js","../../node_modules/lodash/_setToString.js","../../node_modules/lodash/_baseRest.js","../../node_modules/lodash/_isIterateeCall.js","../../node_modules/lodash/sortBy.js","../../node_modules/recharts/es6/component/DefaultTooltipContent.js","../../node_modules/recharts/es6/util/tooltip/translate.js","../../node_modules/recharts/es6/component/TooltipBoundingBox.js","../../node_modules/recharts/es6/util/Global.js","../../node_modules/recharts/es6/component/Tooltip.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/throttle.js","../../node_modules/recharts/es6/component/ResponsiveContainer.js","../../node_modules/recharts/es6/component/Cell.js","../../node_modules/recharts/es6/util/DOMUtils.js","../../node_modules/recharts/es6/util/ReduceCSSCalc.js","../../node_modules/recharts/es6/component/Text.js","../../node_modules/d3-array/src/ascending.js","../../node_modules/d3-array/src/descending.js","../../node_modules/d3-array/src/bisector.js","../../node_modules/d3-array/src/number.js","../../node_modules/d3-array/src/bisect.js","../../node_modules/internmap/src/index.js","../../node_modules/d3-array/src/sort.js","../../node_modules/d3-array/src/ticks.js","../../node_modules/d3-array/src/max.js","../../node_modules/d3-array/src/min.js","../../node_modules/d3-array/src/quickselect.js","../../node_modules/d3-array/src/quantile.js","../../node_modules/d3-array/src/range.js","../../node_modules/d3-scale/src/init.js","../../node_modules/d3-scale/src/ordinal.js","../../node_modules/d3-scale/src/band.js","../../node_modules/d3-color/src/define.js","../../node_modules/d3-color/src/color.js","../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/d3-interpolate/src/piecewise.js","../../node_modules/d3-scale/src/constant.js","../../node_modules/d3-scale/src/number.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-format/src/formatDecimal.js","../../node_modules/d3-format/src/exponent.js","../../node_modules/d3-format/src/formatGroup.js","../../node_modules/d3-format/src/formatNumerals.js","../../node_modules/d3-format/src/formatSpecifier.js","../../node_modules/d3-format/src/formatTrim.js","../../node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/d3-format/src/formatRounded.js","../../node_modules/d3-format/src/formatTypes.js","../../node_modules/d3-format/src/identity.js","../../node_modules/d3-format/src/locale.js","../../node_modules/d3-format/src/defaultLocale.js","../../node_modules/d3-format/src/precisionFixed.js","../../node_modules/d3-format/src/precisionPrefix.js","../../node_modules/d3-format/src/precisionRound.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-scale/src/linear.js","../../node_modules/d3-scale/src/identity.js","../../node_modules/d3-scale/src/nice.js","../../node_modules/d3-scale/src/log.js","../../node_modules/d3-scale/src/symlog.js","../../node_modules/d3-scale/src/pow.js","../../node_modules/d3-scale/src/radial.js","../../node_modules/d3-scale/src/quantile.js","../../node_modules/d3-scale/src/quantize.js","../../node_modules/d3-scale/src/threshold.js","../../node_modules/d3-time/src/interval.js","../../node_modules/d3-time/src/millisecond.js","../../node_modules/d3-time/src/duration.js","../../node_modules/d3-time/src/second.js","../../node_modules/d3-time/src/minute.js","../../node_modules/d3-time/src/hour.js","../../node_modules/d3-time/src/day.js","../../node_modules/d3-time/src/week.js","../../node_modules/d3-time/src/month.js","../../node_modules/d3-time/src/year.js","../../node_modules/d3-time/src/ticks.js","../../node_modules/d3-time-format/src/locale.js","../../node_modules/d3-time-format/src/defaultLocale.js","../../node_modules/d3-scale/src/time.js","../../node_modules/d3-scale/src/utcTime.js","../../node_modules/d3-scale/src/sequential.js","../../node_modules/d3-scale/src/sequentialQuantile.js","../../node_modules/d3-scale/src/diverging.js","../../node_modules/lodash/_baseExtremum.js","../../node_modules/lodash/_baseGt.js","../../node_modules/lodash/max.js","../../node_modules/lodash/_baseLt.js","../../node_modules/lodash/min.js","../../node_modules/lodash/map.js","../../node_modules/lodash/flatMap.js","../../node_modules/lodash/isEqual.js","../../node_modules/decimal.js-light/decimal.mjs","../../node_modules/recharts-scale/es6/util/utils.js","../../node_modules/recharts-scale/es6/util/arithmetic.js","../../node_modules/recharts-scale/es6/getNiceTickValues.js","../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../node_modules/recharts/es6/cartesian/ErrorBar.js","../../node_modules/recharts/es6/util/getLegendProps.js","../../node_modules/recharts/es6/util/ChartUtils.js","../../node_modules/recharts/es6/util/PolarUtils.js","../../node_modules/recharts/es6/component/Label.js","../../node_modules/lodash/last.js","../../node_modules/recharts/es6/component/LabelList.js","../../node_modules/recharts/es6/shape/Sector.js","../../node_modules/recharts/es6/shape/Curve.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/fast-equals/dist/es/index.mjs","../../node_modules/react-smooth/es6/setRafTimeout.js","../../node_modules/react-smooth/es6/AnimateManager.js","../../node_modules/react-smooth/es6/util.js","../../node_modules/react-smooth/es6/easing.js","../../node_modules/react-smooth/es6/configUpdate.js","../../node_modules/react-smooth/es6/Animate.js","../../node_modules/recharts/es6/shape/Rectangle.js","../../node_modules/recharts/es6/shape/Dot.js","../../node_modules/recharts/es6/shape/Cross.js","../../node_modules/lodash/_getPrototype.js","../../node_modules/lodash/isPlainObject.js","../../node_modules/lodash/isBoolean.js","../../node_modules/recharts/es6/shape/Trapezoid.js","../../node_modules/recharts/es6/util/ActiveShapeUtils.js","../../node_modules/lodash/_baseRange.js","../../node_modules/lodash/toFinite.js","../../node_modules/lodash/_createRange.js","../../node_modules/lodash/range.js","../../node_modules/recharts/es6/util/CssPrefixUtils.js","../../node_modules/recharts/es6/cartesian/Brush.js","../../node_modules/lodash/_baseSome.js","../../node_modules/lodash/some.js","../../node_modules/recharts/es6/util/IfOverflowMatches.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/lodash/mapValues.js","../../node_modules/lodash/_arrayEvery.js","../../node_modules/lodash/_baseEvery.js","../../node_modules/lodash/every.js","../../node_modules/recharts/es6/util/BarUtils.js","../../node_modules/recharts/es6/cartesian/Bar.js","../../node_modules/recharts/es6/util/CartesianUtils.js","../../node_modules/lodash/_createFind.js","../../node_modules/lodash/toInteger.js","../../node_modules/lodash/findIndex.js","../../node_modules/lodash/find.js","../../node_modules/recharts/es6/util/calculateViewBox.js","../../node_modules/recharts/es6/context/chartLayoutContext.js","../../node_modules/recharts/es6/cartesian/ReferenceLine.js","../../node_modules/recharts/es6/cartesian/ReferenceDot.js","../../node_modules/recharts/es6/cartesian/ReferenceArea.js","../../node_modules/recharts/es6/util/getEveryNthWithCondition.js","../../node_modules/recharts/es6/util/TickUtils.js","../../node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../../node_modules/recharts/es6/cartesian/getTicks.js","../../node_modules/recharts/es6/cartesian/CartesianAxis.js","../../node_modules/recharts/es6/cartesian/CartesianGrid.js","../../node_modules/recharts/es6/cartesian/Line.js","../../node_modules/recharts/es6/cartesian/Area.js","../../node_modules/recharts/es6/cartesian/XAxis.js","../../node_modules/recharts/es6/cartesian/YAxis.js","../../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../../node_modules/eventemitter3/index.js","../../node_modules/recharts/es6/util/Events.js","../../node_modules/recharts/es6/chart/AccessibilityManager.js","../../node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../../node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../../node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../../node_modules/recharts/es6/util/cursor/getCursorPoints.js","../../node_modules/recharts/es6/component/Cursor.js","../../node_modules/recharts/es6/chart/generateCategoricalChart.js","../../node_modules/recharts/es6/chart/AreaChart.js","../../src/components/SessionsMemoryChart.tsx","../../src/components/ActiveSessionsTable.tsx","../../src/tabs/SessionsTab.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","import isString from 'lodash/isString';\nimport isNan from 'lodash/isNaN';\nimport get from 'lodash/get';\nimport lodashIsNumber from 'lodash/isNumber';\nimport isNil from 'lodash/isNil';\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return lodashIsNumber(value) && !isNan(value);\n};\nexport var isNullish = function isNullish(value) {\n return isNil(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};\n\n/**\n * Compare values.\n *\n * This function is intended to be passed to `Array.prototype.sort()`. It properly compares generic homogeneous arrays that are either `string[]`,\n * `number[]`, or `Date[]`. When comparing heterogeneous arrays or homogeneous arrays of other types, it will attempt to compare items properly but\n * will fall back to string comparison for mismatched or unsupported types.\n *\n * For some background, `Array.prototype.sort()`'s default comparator coerces each of the array's items into a string and compares the strings. This\n * often leads to undesirable behavior, especially with numerical items.\n *\n * @param {unknown} a The first item to compare\n * @param {unknown} b The second item to compare\n * @return {number} A negative number if a < b, a positive number if a > b, 0 if equal\n */\nexport var compareValues = function compareValues(a, b) {\n if (isNumber(a) && isNumber(b)) {\n return a - b;\n }\n if (isString(a) && isString(b)) {\n return a.localeCompare(b);\n }\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() - b.getTime();\n }\n return String(a).localeCompare(String(b));\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks are always shown.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport get from 'lodash/get';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart',\n contextmenu: 'onContextMenu',\n dblclick: 'onDoubleClick'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\nexport var hasClipDot = function hasClipDot(dot) {\n return dot && _typeof(dot) === 'object' && 'clipDot' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return key.startsWith('data-') || !isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(Array.isArray(nextChildren) ? nextChildren[0] : nextChildren, Array.isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (Array.isArray(nextChild) || Array.isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (isNil(nextChild) && isNil(prevChild)) {\n return true;\n }\n if (!isNil(nextChild) && !isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _inherits(DefaultLegendContent, _PureComponent);\n return _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","import uniqBy from 'lodash/uniqBy';\nimport isFunction from 'lodash/isFunction';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (isFunction(option)) {\n return uniqBy(payload, option);\n }\n return payload;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_this, \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _inherits(Legend, _PureComponent);\n return _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n box.height = this.wrapperNode.offsetHeight;\n box.width = this.wrapperNode.offsetWidth;\n return box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var box = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var _this$defaultProps$it = _objectSpread(_objectSpread({}, this.defaultProps), item.props),\n layout = _this$defaultProps$it.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n };\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_this, \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n },\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n _defineProperty(_this, \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _inherits(TooltipBoundingBox, _PureComponent);\n return _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.state.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.state.lastBoundingBox.height) > EPSILON) {\n this.setState({\n lastBoundingBox: {\n width: box.width,\n height: box.height\n }\n });\n }\n } else if (this.state.lastBoundingBox.width !== -1 || this.state.lastBoundingBox.height !== -1) {\n this.setState({\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: this.state.lastBoundingBox,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n}(PureComponent);","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _inherits(Tooltip, _PureComponent);\n return _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport clsx from 'clsx';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useMemo, useCallback } from 'react';\nimport throttle from 'lodash/throttle';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { getDisplayName } from '../util/ReactUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var containerRef = useRef(null);\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, function () {\n return Object.defineProperty(containerRef.current, 'current', {\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The usage of ref.current.current is deprecated and will no longer be supported.');\n return containerRef.current;\n },\n configurable: true\n });\n });\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback(function (newWidth, newHeight) {\n setSizes(function (prevState) {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(function () {\n var callback = function callback(entries) {\n var _onResizeRef$current;\n var _entries$0$contentRec = entries[0].contentRect,\n containerWidth = _entries$0$contentRec.width,\n containerHeight = _entries$0$contentRec.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return function () {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n var isCharts = !Array.isArray(children) && getDisplayName(children.type).endsWith('Chart');\n return React.Children.map(children, function (child) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n return /*#__PURE__*/cloneElement(child, _objectSpread({\n width: calculatedWidth,\n height: calculatedHeight\n }, isCharts ? {\n style: _objectSpread({\n height: '100%',\n width: '100%',\n maxHeight: calculatedHeight,\n maxWidth: calculatedWidth\n }, child.props.style)\n } : {}));\n }\n return child;\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n }),\n ref: containerRef\n }, chartContent);\n});","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nfunction removeInvalidKeys(obj) {\n var copyObj = _objectSpread({}, obj);\n Object.keys(copyObj).forEach(function (key) {\n if (!copyObj[key]) {\n delete copyObj[key];\n }\n });\n return copyObj;\n}\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var copyStyle = removeInvalidKeys(style);\n var cacheKey = JSON.stringify({\n text: text,\n copyStyle: copyStyle\n });\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), copyStyle);\n Object.assign(measurementSpan.style, measurementSpanStyle);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(rect) {\n return {\n top: rect.top + window.scrollY - document.documentElement.clientTop,\n left: rect.left + window.scrollX - document.documentElement.clientLeft\n };\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n return _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return (\n /*#__PURE__*/\n // duplicate words will cause duplicate keys\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: \"\".concat(words, \"-\").concat(index)\n }, words)\n );\n }));\n};","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n// ------------------------------------ EDITABLE DEFAULTS ------------------------------------- //\r\n\r\n\r\n// The limit on the value of `precision`, and on the value of the first argument to\r\n// `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\nvar MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n defaults = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n// ------------------------------------ END OF EDITABLE DEFAULTS -------------------------------- //\r\n\r\n\r\n Decimal,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n};\r\n\r\n\r\n/*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\nP.exponent = function () {\r\n return getBase10Exponent(this);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return this.s === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = P.valueOf = P.val = P.toJSON = P[Symbol.for('nodejs.util.inspect.custom')] = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\nfunction add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\nfunction exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\nfunction ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n}\r\n\r\n\r\nfunction toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = clone(defaults);\r\n\r\n// Internal constant.\r\nONE = new Decimal(1);\r\n\r\nexport default Decimal;\r\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ErrorBar = /*#__PURE__*/function (_React$Component) {\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n return _callSuper(this, ErrorBar, arguments);\n }\n _inherits(ErrorBar, _React$Component);\n return _createClass(ErrorBar, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, _excluded);\n var svgProps = filterProps(others, false);\n !!(this.props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n }\n }]);\n}(React.Component);\n_defineProperty(ErrorBar, \"defaultProps\", {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n});\n_defineProperty(ErrorBar, \"displayName\", 'ErrorBar');","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Legend } from '../component/Legend';\nimport { getMainColorOfGraphicItem } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formattedGraphicalItems = _ref.formattedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendDefaultProps = Legend.defaultProps;\n var legendProps = legendDefaultProps !== undefined ? _objectSpread(_objectSpread({}, legendDefaultProps), legendItem.props) : {};\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : {};\n var dataKey = itemProps.dataKey,\n name = itemProps.name,\n legendType = itemProps.legendType,\n hide = itemProps.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendProps.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n // @ts-expect-error property strokeDasharray is required in Payload but optional in props\n payload: itemProps\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendProps), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _item$type;\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var defaultedProps = (_item$type = item.type) !== null && _item$type !== void 0 && _item$type.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stroke = defaultedProps.stroke,\n fill = defaultedProps.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var barItemDefaultProps = barItems[0].type.defaultProps;\n var barItemProps = barItemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, barItemDefaultProps), barItems[0].props) : barItems[0].props;\n var selfSize = barItemProps.barSize;\n var cateId = barItemProps[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array} sizeList Sizes of all groups\n * @param {number} maxBarSize The maximum size of each bar\n * @return {Array} The size and offset of each bar\n */\nexport var getBarPosition = function getBarPosition(_ref3) {\n var barGap = _ref3.barGap,\n barCategoryGap = _ref3.barCategoryGap,\n bandSize = _ref3.bandSize,\n _ref3$sizeList = _ref3.sizeList,\n sizeList = _ref3$sizeList === void 0 ? [] : _ref3$sizeList,\n maxBarSize = _ref3.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n // @ts-expect-error the type check above does not check for type number explicitly\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newPosition = {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n // @ts-expect-error the type check above does not check for type number explicitly\n size: useFull ? fullBarSize : entry.barSize\n }\n };\n var newRes = [].concat(_toConsumableArray(res), [newPosition]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, initialValue);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, _unused, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n if (legendProps) {\n var _ref4 = legendBox || {},\n boxWidth = _ref4.width,\n boxHeight = _ref4.height;\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, offset[align] + (boxWidth || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, offset[verticalAlign] + (boxHeight || 0)));\n }\n }\n return offset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey);\n if (isNil(entryValue)) return result;\n var mainValue = Array.isArray(entryValue) ? [min(entryValue), max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(Array.isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(Array.isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(\n // @ts-expect-error if (type === number) means that the domain is numerical type\n // - but this link is missing in the type definition\n function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n // @ts-expect-error Date cannot index an object\n if (!tag[entry[i]]) {\n // @ts-expect-error Date cannot index an object\n tag[entry[i]] = true;\n\n // @ts-expect-error Date cannot index an object\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimun value of axis\n * @param {Number} maxValue The maximun value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, minValue, maxValue, syncWithTicks) {\n if (syncWithTicks) {\n return ticks.map(function (entry) {\n return entry.coordinate;\n });\n }\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !isNan(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar handlerWeakMap = new WeakMap();\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, childHandler) {\n if (typeof childHandler !== 'function') {\n return defaultHandler;\n }\n if (!handlerWeakMap.has(defaultHandler)) {\n handlerWeakMap.set(defaultHandler, new WeakMap());\n }\n var childWeakMap = handlerWeakMap.get(defaultHandler);\n if (childWeakMap.has(childHandler)) {\n return childWeakMap.get(childHandler);\n }\n var combineHandler = function combineHandler() {\n defaultHandler.apply(void 0, arguments);\n childHandler.apply(void 0, arguments);\n };\n childWeakMap.set(childHandler, combineHandler);\n return combineHandler;\n};\n\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {object} The scale function and resolved name\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (isString(scale)) {\n var name = \"scale\".concat(upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param {Array} value input that will be truncated\n * @param {Array} domain boundaries\n * @returns {Array} tuple of two numbers\n */\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack()\n // @ts-expect-error stack.keys type wants an array of strings, but we provide array of DataKeys\n .keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var parentStackGroupsInitialValue = {};\n var stackGroups = items.reduce(function (result, item) {\n var _item$type2;\n var defaultedProps = (_item$type2 = item.type) !== null && _item$type2 !== void 0 && _item$type2.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId,\n hide = defaultedProps.hide;\n if (hide) {\n return result;\n }\n var axisId = defaultedProps[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, parentStackGroupsInitialValue);\n var axisStackGroupsInitialValue = {};\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n var stackGroupsInitialValue = {};\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, stackGroupsInitialValue);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, axisStackGroupsInitialValue);\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([min(tickValues), max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport function getCateCoordinateOfLine(_ref5) {\n var axis = _ref5.axis,\n ticks = _ref5.ticks,\n bandSize = _ref5.bandSize,\n entry = _ref5.entry,\n index = _ref5.index,\n dataKey = _ref5.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n offset = _ref6.offset,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref7) {\n var numericAxis = _ref7.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var _item$type3;\n var defaultedProps = (_item$type3 = item.type) !== null && _item$type3 !== void 0 && _item$type3.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group) {\n var itemIndex = group.items.indexOf(item);\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [min(entry.concat([result[0]]).filter(isNumber)), max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!Array.isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n // @ts-expect-error we need to rethink scale type\n if (axis && axis.scale && axis.scale.bandwidth) {\n // @ts-expect-error we need to rethink scale type\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis ReactElement\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (isEqual(specifiedDomain, get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var defaultedProps = graphicalItem.type.defaultProps ? _objectSpread(_objectSpread({}, graphicalItem.type.defaultProps), graphicalItem.props) : graphicalItem.props;\n var dataKey = defaultedProps.dataKey,\n name = defaultedProps.name,\n unit = defaultedProps.unit,\n formatter = defaultedProps.formatter,\n tooltipType = defaultedProps.tooltipType,\n chartType = defaultedProps.chartType,\n hide = defaultedProps.hide;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem, false)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType,\n hide: hide\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport isNil from 'lodash/isNil';\nimport { isValidElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};\nexport var getTickClassName = function getTickClassName(tick) {\n return ! /*#__PURE__*/isValidElement(tick) && !isFunction(tick) && typeof tick !== 'boolean' ? tick.className : '';\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport * as React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","const { getOwnPropertyNames, getOwnPropertySymbols } = Object;\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst { hasOwnProperty } = Object.prototype;\n/**\n * Combine two comparators into a single comparators.\n */\nfunction combineComparators(comparatorA, comparatorB) {\n return function isEqual(a, b, state) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nfunction createIsCircular(areItemsEqual) {\n return function isCircular(a, b, state) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n const { cache } = state;\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n cache.set(a, b);\n cache.set(b, a);\n const result = areItemsEqual(a, b, state);\n cache.delete(a);\n cache.delete(b);\n return result;\n };\n}\n/**\n * Get the `@@toStringTag` of the value, if it exists.\n */\nfunction getShortTag(value) {\n return value != null ? value[Symbol.toStringTag] : undefined;\n}\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nfunction getStrictProperties(object) {\n return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));\n}\n/**\n * Whether the object contains the property passed as an own property.\n */\nconst hasOwn = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nObject.hasOwn || ((object, property) => hasOwnProperty.call(object, property));\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nfunction sameValueZeroEqual(a, b) {\n return a === b || (!a && !b && a !== a && b !== b);\n}\n\nconst PREACT_VNODE = '__v';\nconst PREACT_OWNER = '__o';\nconst REACT_OWNER = '_owner';\nconst { getOwnPropertyDescriptor, keys } = Object;\n/**\n * Whether the array buffers are equal in value.\n */\nfunction areArrayBuffersEqual(a, b) {\n return a.byteLength === b.byteLength && areTypedArraysEqual(new Uint8Array(a), new Uint8Array(b));\n}\n/**\n * Whether the arrays are equal in value.\n */\nfunction areArraysEqual(a, b, state) {\n let index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the dataviews are equal in value.\n */\nfunction areDataViewsEqual(a, b) {\n return (a.byteLength === b.byteLength\n && areTypedArraysEqual(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)));\n}\n/**\n * Whether the dates passed are equal in value.\n */\nfunction areDatesEqual(a, b) {\n return sameValueZeroEqual(a.getTime(), b.getTime());\n}\n/**\n * Whether the errors passed are equal in value.\n */\nfunction areErrorsEqual(a, b) {\n return a.name === b.name && a.message === b.message && a.cause === b.cause && a.stack === b.stack;\n}\n/**\n * Whether the functions passed are equal in value.\n */\nfunction areFunctionsEqual(a, b) {\n return a === b;\n}\n/**\n * Whether the `Map`s are equal in value.\n */\nfunction areMapsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Array(size);\n const aIterable = a.entries();\n let aResult;\n let bResult;\n let index = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.entries();\n let hasMatch = false;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (matchedIndices[matchIndex]) {\n matchIndex++;\n continue;\n }\n const aEntry = aResult.value;\n const bEntry = bResult.value;\n if (state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state)\n && state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = true;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n index++;\n }\n return true;\n}\n/**\n * Whether the numbers are equal in value.\n */\nconst areNumbersEqual = sameValueZeroEqual;\n/**\n * Whether the objects are equal in value.\n */\nfunction areObjectsEqual(a, b, state) {\n const properties = keys(a);\n let index = properties.length;\n if (keys(b).length !== index) {\n return false;\n }\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n if (!isPropertyEqual(a, b, state, properties[index])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nfunction areObjectsEqualStrict(a, b, state) {\n const properties = getStrictProperties(a);\n let index = properties.length;\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n let property;\n let descriptorA;\n let descriptorB;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (!isPropertyEqual(a, b, state, property)) {\n return false;\n }\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n if ((descriptorA || descriptorB)\n && (!descriptorA\n || !descriptorB\n || descriptorA.configurable !== descriptorB.configurable\n || descriptorA.enumerable !== descriptorB.enumerable\n || descriptorA.writable !== descriptorB.writable)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nfunction arePrimitiveWrappersEqual(a, b) {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n/**\n * Whether the regexps passed are equal in value.\n */\nfunction areRegExpsEqual(a, b) {\n return a.source === b.source && a.flags === b.flags;\n}\n/**\n * Whether the `Set`s are equal in value.\n */\nfunction areSetsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Array(size);\n const aIterable = a.values();\n let aResult;\n let bResult;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.values();\n let hasMatch = false;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (!matchedIndices[matchIndex]\n && state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = true;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the TypedArray instances are equal in value.\n */\nfunction areTypedArraysEqual(a, b) {\n let index = a.byteLength;\n if (b.byteLength !== index || a.byteOffset !== b.byteOffset) {\n return false;\n }\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the URL instances are equal in value.\n */\nfunction areUrlsEqual(a, b) {\n return (a.hostname === b.hostname\n && a.pathname === b.pathname\n && a.protocol === b.protocol\n && a.port === b.port\n && a.hash === b.hash\n && a.username === b.username\n && a.password === b.password);\n}\nfunction isPropertyEqual(a, b, state, property) {\n if ((property === REACT_OWNER || property === PREACT_OWNER || property === PREACT_VNODE)\n && (a.$$typeof || b.$$typeof)) {\n return true;\n }\n return hasOwn(b, property) && state.equals(a[property], b[property], property, property, a, b, state);\n}\n\nconst ARRAY_BUFFER_TAG = '[object ArrayBuffer]';\nconst ARGUMENTS_TAG = '[object Arguments]';\nconst BOOLEAN_TAG = '[object Boolean]';\nconst DATA_VIEW_TAG = '[object DataView]';\nconst DATE_TAG = '[object Date]';\nconst ERROR_TAG = '[object Error]';\nconst MAP_TAG = '[object Map]';\nconst NUMBER_TAG = '[object Number]';\nconst OBJECT_TAG = '[object Object]';\nconst REG_EXP_TAG = '[object RegExp]';\nconst SET_TAG = '[object Set]';\nconst STRING_TAG = '[object String]';\nconst TYPED_ARRAY_TAGS = {\n '[object Int8Array]': true,\n '[object Uint8Array]': true,\n '[object Uint8ClampedArray]': true,\n '[object Int16Array]': true,\n '[object Uint16Array]': true,\n '[object Int32Array]': true,\n '[object Uint32Array]': true,\n '[object Float16Array]': true,\n '[object Float32Array]': true,\n '[object Float64Array]': true,\n '[object BigInt64Array]': true,\n '[object BigUint64Array]': true,\n};\nconst URL_TAG = '[object URL]';\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst toString = Object.prototype.toString;\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nfunction createEqualityComparator({ areArrayBuffersEqual, areArraysEqual, areDataViewsEqual, areDatesEqual, areErrorsEqual, areFunctionsEqual, areMapsEqual, areNumbersEqual, areObjectsEqual, arePrimitiveWrappersEqual, areRegExpsEqual, areSetsEqual, areTypedArraysEqual, areUrlsEqual, unknownTagComparators, }) {\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a, b, state) {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n // If either of the items are nullish and fail the strictly equal check\n // above, then they must be unequal.\n if (a == null || b == null) {\n return false;\n }\n const type = typeof a;\n if (type !== typeof b) {\n return false;\n }\n if (type !== 'object') {\n if (type === 'number') {\n return areNumbersEqual(a, b, state);\n }\n if (type === 'function') {\n return areFunctionsEqual(a, b, state);\n }\n // If a primitive value that is not strictly equal, it must be unequal.\n return false;\n }\n const constructor = a.constructor;\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid capturing the string tag.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` check.\n if (Array.isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is subclassing a native class, it will be handled\n // with the string tag comparison.\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n // Since this is a custom object, capture the string tag to determing its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n const tag = toString.call(a);\n if (tag === DATE_TAG) {\n return areDatesEqual(a, b, state);\n }\n // For RegExp, the properties are not enumerable, and therefore will give false positives if\n // tested like a standard object.\n if (tag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, state);\n }\n if (tag === MAP_TAG) {\n return areMapsEqual(a, b, state);\n }\n if (tag === SET_TAG) {\n return areSetsEqual(a, b, state);\n }\n if (tag === OBJECT_TAG) {\n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n return typeof a.then !== 'function' && typeof b.then !== 'function' && areObjectsEqual(a, b, state);\n }\n // If a URL tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n if (tag === URL_TAG) {\n return areUrlsEqual(a, b, state);\n }\n // If an error tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n if (tag === ERROR_TAG) {\n return areErrorsEqual(a, b, state);\n }\n // If an arguments tag, it should be treated as a standard object.\n if (tag === ARGUMENTS_TAG) {\n return areObjectsEqual(a, b, state);\n }\n if (TYPED_ARRAY_TAGS[tag]) {\n return areTypedArraysEqual(a, b, state);\n }\n if (tag === ARRAY_BUFFER_TAG) {\n return areArrayBuffersEqual(a, b, state);\n }\n if (tag === DATA_VIEW_TAG) {\n return areDataViewsEqual(a, b, state);\n }\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {\n return arePrimitiveWrappersEqual(a, b, state);\n }\n if (unknownTagComparators) {\n let unknownTagComparator = unknownTagComparators[tag];\n if (!unknownTagComparator) {\n const shortTag = getShortTag(a);\n if (shortTag) {\n unknownTagComparator = unknownTagComparators[shortTag];\n }\n }\n // If the custom config has an unknown tag comparator that matches the captured tag or the\n // @@toStringTag, it is the source of truth for whether the values are equal.\n if (unknownTagComparator) {\n return unknownTagComparator(a, b, state);\n }\n }\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n/**\n * Create the configuration object used for building comparators.\n */\nfunction createEqualityComparatorConfig({ circular, createCustomConfig, strict, }) {\n let config = {\n areArrayBuffersEqual,\n areArraysEqual: strict ? areObjectsEqualStrict : areArraysEqual,\n areDataViewsEqual,\n areDatesEqual: areDatesEqual,\n areErrorsEqual: areErrorsEqual,\n areFunctionsEqual: areFunctionsEqual,\n areMapsEqual: strict ? combineComparators(areMapsEqual, areObjectsEqualStrict) : areMapsEqual,\n areNumbersEqual: areNumbersEqual,\n areObjectsEqual: strict ? areObjectsEqualStrict : areObjectsEqual,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqual,\n areRegExpsEqual: areRegExpsEqual,\n areSetsEqual: strict ? combineComparators(areSetsEqual, areObjectsEqualStrict) : areSetsEqual,\n areTypedArraysEqual: strict\n ? combineComparators(areTypedArraysEqual, areObjectsEqualStrict)\n : areTypedArraysEqual,\n areUrlsEqual: areUrlsEqual,\n unknownTagComparators: undefined,\n };\n if (createCustomConfig) {\n config = Object.assign({}, config, createCustomConfig(config));\n }\n if (circular) {\n const areArraysEqual = createIsCircular(config.areArraysEqual);\n const areMapsEqual = createIsCircular(config.areMapsEqual);\n const areObjectsEqual = createIsCircular(config.areObjectsEqual);\n const areSetsEqual = createIsCircular(config.areSetsEqual);\n config = Object.assign({}, config, {\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areSetsEqual,\n });\n }\n return config;\n}\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nfunction createInternalEqualityComparator(compare) {\n return function (a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {\n return compare(a, b, state);\n };\n}\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nfunction createIsEqual({ circular, comparator, createState, equals, strict }) {\n if (createState) {\n return function isEqual(a, b) {\n const { cache = circular ? new WeakMap() : undefined, meta } = createState();\n return comparator(a, b, {\n cache,\n equals,\n meta,\n strict,\n });\n };\n }\n if (circular) {\n return function isEqual(a, b) {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals,\n meta: undefined,\n strict,\n });\n };\n }\n const state = {\n cache: undefined,\n equals,\n meta: undefined,\n strict,\n };\n return function isEqual(a, b) {\n return comparator(a, b, state);\n };\n}\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nconst deepEqual = createCustomEqual();\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nconst strictDeepEqual = createCustomEqual({ strict: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nconst circularDeepEqual = createCustomEqual({ circular: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nconst shallowEqual = createCustomEqual({\n createInternalComparator: () => sameValueZeroEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nconst strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nconst circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n strict: true,\n});\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nfunction createCustomEqual(options = {}) {\n const { circular = false, createInternalComparator: createCustomInternalComparator, createState, strict = false, } = options;\n const config = createEqualityComparatorConfig(options);\n const comparator = createEqualityComparator(config);\n const equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n return createIsEqual({ circular, comparator, createState, equals, strict });\n}\n\nexport { circularDeepEqual, circularShallowEqual, createCustomEqual, deepEqual, sameValueZeroEqual, shallowEqual, strictCircularDeepEqual, strictCircularShallowEqual, strictDeepEqual, strictShallowEqual };\n//# sourceMappingURL=index.mjs.map\n","function safeRequestAnimationFrame(callback) {\n if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);\n}\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n safeRequestAnimationFrame(shouldUpdate);\n }\n };\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-console: 0 */\n\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\nexport var log = function log() {\n var _console;\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n default:\n {\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + \"oneOf 'linear', 'ease', 'ease-in', 'ease-out', \" + \"'ease-in-out','cubic-bezier(x1,y1,x2,y2)', instead received %s\", args);\n }\n }\n }\n }\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var easing = args[0];\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n warn(false, \"[configEasing]: first argument should be one of 'ease', 'ease-in', \" + \"'ease-out', 'ease-in-out','cubic-bezier(x1,y1,x2,y2)', 'linear' and 'spring', instead received %s\", args);\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n warn(false, '[configEasing]: first argument type should be function or string, instead received %s', args);\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getIntersectionKeys, mapObject } from './util';\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n var update = function update() {\n return null;\n };\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n };\n\n // stepper timing function like spring\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n };\n\n // t => val timing function like cubic-bezier\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n requestAnimationFrame(update);\n\n // return stop animation method\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity } from './util';\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n var _super = _createSuper(Animate);\n function Animate(props, context) {\n var _this;\n _classCallCheck(this, Animate);\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children,\n duration = _this$props.duration;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n if (!isActive || duration <= 0) {\n _this.state = {\n style: {}\n };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n return _possibleConstructorReturn(_this);\n }\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n return _this;\n }\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n if (!isActive || !canBegin) {\n return;\n }\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate,\n to = _this$props3.to,\n currentFrom = _this$props3.from;\n var style = this.state.style;\n if (!canBegin) {\n return;\n }\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, to) : to\n };\n if (this.state && style) {\n if (attributeName && style[attributeName] !== to || !attributeName && style !== to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n return;\n }\n if (deepEqual(prevProps.to, to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n if (this.manager) {\n this.manager.stop();\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n var from = isTriggered || shouldReAnimate ? currentFrom : prevProps.to;\n if (this.state && style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n if (attributeName && style[attributeName] !== from || !attributeName && style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n var onAnimationEnd = this.props.onAnimationEnd;\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n var transition = getTransitionVal(properties, duration, easing);\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, _excluded);\n var count = Children.count(children);\n // eslint-disable-next-line react/destructuring-assignment\n var stateStyle = this.state.style;\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n if (!isActive || count === 0 || duration <= 0) {\n return children;\n }\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n return Animate;\n}(PureComponent);\nAnimate.displayName = 'Animate';\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nexport default Animate;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Dot\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_this, \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_this, \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_this, \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_this, \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_this, \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_this, 'startX'),\n endX: _this.handleTravellerDragStart.bind(_this, 'endX')\n };\n _this.state = {};\n return _this;\n }\n _inherits(Brush, _PureComponent);\n return _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _data$startIndex,\n _data$endIndex,\n _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat((_data$startIndex = data[startIndex]) === null || _data$startIndex === void 0 ? void 0 : _data$startIndex.name, \", Max value: \").concat((_data$endIndex = data[endIndex]) === null || _data$endIndex === void 0 ? void 0 : _data$endIndex.name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\nimport { isNullish, isNumber } from './DataUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumberOrNil = isNumber(value) || isNullish(value);\n if (isValueNumberOrNil) {\n return minPointSize(value, index);\n }\n !isValueNumberOrNil ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers or null/undefined are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Bar, _PureComponent);\n return _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n // https://github.com/recharts/recharts/issues/5415\n // eslint-disable-next-line react/no-array-index-key\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value, \"-\").concat(i)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i),\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n children = itemProps.children,\n minPointSizeProp = itemProps.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { compareValues, getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort(compareValues);\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n return _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nfunction ReferenceLineImpl(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceLine = /*#__PURE__*/function (_React$Component) {\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n return _callSuper(this, ReferenceLine, arguments);\n }\n _inherits(ReferenceLine, _React$Component);\n return _createClass(ReferenceLine, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ReferenceLineImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceLine, \"displayName\", 'ReferenceLine');\n_defineProperty(ReferenceLine, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceDot = /*#__PURE__*/function (_React$Component) {\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n return _callSuper(this, ReferenceDot, arguments);\n }\n _inherits(ReferenceDot, _React$Component);\n return _createClass(ReferenceDot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n r = _this$props.r,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(this.props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props2 = this.props,\n shape = _this$props2.shape,\n className = _this$props2.className;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceDot, \"displayName\", 'ReferenceDot');\n_defineProperty(ReferenceDot, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n});\n_defineProperty(ReferenceDot, \"renderDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceArea = /*#__PURE__*/function (_React$Component) {\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n return _callSuper(this, ReferenceArea, arguments);\n }\n _inherits(ReferenceArea, _React$Component);\n return _createClass(ReferenceArea, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x1 = _this$props.x1,\n x2 = _this$props.x2,\n y1 = _this$props.y1,\n y2 = _this$props.y2,\n className = _this$props.className,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = this.props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, this.props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), rect)), Label.renderCallByParent(this.props, rect));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceArea, \"displayName\", 'ReferenceArea');\n_defineProperty(ReferenceArea, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n});\n_defineProperty(ReferenceArea, \"renderRect\", function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n});","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _inherits(CartesianAxis, _Component);\n return _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n var combinedClassName = clsx(props.className, 'recharts-cartesian-axis-tick-value');\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, props), {}, {\n className: combinedClassName\n }));\n } else if (isFunction(option)) {\n tickItem = option(_objectSpread(_objectSpread({}, props), {}, {\n className: combinedClassName\n }));\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useArbitraryXAxis, useChartHeight, useChartWidth, useOffset, useYAxisWithFiniteDomainOrRandom } from '../context/chartLayoutContext';\n\n/**\n * The = 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport isNil from 'lodash/isNil';\nimport isEqual from 'lodash/isEqual';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { ErrorBar } from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType, filterProps, hasClipDot } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Line, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: true,\n totalLength: 0\n });\n _defineProperty(_this, \"generateSimpleStrokeDasharray\", function (totalLength, length) {\n return \"\".concat(length, \"px \").concat(totalLength - length, \"px\");\n });\n _defineProperty(_this, \"getStrokeDasharray\", function (length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n\n // if lineLength is 0 return the default when no strokeDasharray is provided\n if (!lineLength) {\n return _this.generateSimpleStrokeDasharray(totalLength, length);\n }\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n for (var i = 0, sum = 0; i < lines.length; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-line-'));\n _defineProperty(_this, \"pathRef\", function (node) {\n _this.mainCurve = node;\n });\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Line, _PureComponent);\n return _createClass(Line, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n if (totalLength !== this.state.totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n points = _this$props.points,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n layout = _this$props.layout,\n children = _this$props.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"bar-\".concat(item.props.dataKey),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var lineProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n index: i,\n cx: entry.x,\n cy: entry.y,\n value: entry.value,\n dataKey: dataKey,\n payload: entry.payload,\n points: points\n });\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = _this2.generateSimpleStrokeDasharray(totalLength, curLength);\n }\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-line', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = hasClipDot(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(needClip, clipPathId), (hasSinglePoint || dot) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var key = props.key,\n dotProps = _objectWithoutProperties(props, _excluded2);\n var className = clsx('recharts-line-dot', typeof option !== 'boolean' ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({\n key: key\n }, dotProps, {\n className: className\n }));\n }\n return dotItem;\n }\n }]);\n}(PureComponent);\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n label: false\n});\n/**\n * Compose the data of each group\n * @param {Object} props The props from the component\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {String} dataKey The unique key of a group\n * @return {Array} Composed data\n */\n_defineProperty(Line, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n dataKey = _ref4.dataKey,\n bandSize = _ref4.bandSize,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n return {\n x: isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n});","var _excluded = [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"],\n _excluded2 = [\"key\"];\nvar _Area;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Area\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport max from 'lodash/max';\nimport isNil from 'lodash/isNil';\nimport isNan from 'lodash/isNaN';\nimport isEqual from 'lodash/isEqual';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { Global } from '../util/Global';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps, hasClipDot } from '../util/ReactUtils';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n function Area() {\n var _this;\n _classCallCheck(this, Area);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Area, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: true\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-area-'));\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Area, _PureComponent);\n return _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n dot = _this$props.dot,\n points = _this$props.points,\n dataKey = _this$props.dataKey;\n var areaProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps), customDotProps), {}, {\n index: i,\n cx: entry.x,\n cy: entry.y,\n dataKey: dataKey,\n value: entry.value,\n payload: entry.payload,\n points: points\n });\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props2 = this.props,\n baseLine = _this$props2.baseLine,\n points = _this$props2.points,\n strokeWidth = _this$props2.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n var maxY = max(points.map(function (entry) {\n return entry.y || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxY = Math.max(max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n var maxX = max(points.map(function (entry) {\n return entry.x || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxX = Math.max(max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n type = _this$props4.type,\n stroke = _this$props4.stroke,\n connectNulls = _this$props4.connectNulls,\n isRange = _this$props4.isRange,\n ref = _this$props4.ref,\n others = _objectWithoutProperties(_this$props4, _excluded);\n return /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(others, true), {\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props, false), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props, false), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props5 = this.props,\n points = _this$props5.points,\n baseLine = _this$props5.baseLine,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine;\n // const clipPathId = isNil(id) ? this.id : id;\n\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n // update animtaion\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n return entry;\n });\n var stepBaseLine;\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (isNil(baseLine) || isNan(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n return entry;\n });\n }\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this2.renderClipRect(t))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points) || !isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n top = _this$props7.top,\n left = _this$props7.left,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-area', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = hasClipDot(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\n };\n }\n if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {\n return {\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_Area = Area;\n_defineProperty(Area, \"displayName\", 'Area');\n_defineProperty(Area, \"defaultProps\", {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n});\n_defineProperty(Area, \"getBaseValue\", function (props, item, xAxis, yAxis) {\n var layout = props.layout,\n chartBaseValue = props.baseValue;\n var itemBaseValue = item.props.baseValue;\n\n // The baseValue can be defined both on the AreaChart as well as on the Area.\n // The value for the item takes precedence.\n var baseValue = itemBaseValue !== null && itemBaseValue !== void 0 ? itemBaseValue : chartBaseValue;\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var domainMax = Math.max(domain[0], domain[1]);\n var domainMin = Math.min(domain[0], domain[1]);\n if (baseValue === 'dataMin') {\n return domainMin;\n }\n if (baseValue === 'dataMax') {\n return domainMax;\n }\n return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n return domain[0];\n});\n_defineProperty(Area, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n item = _ref4.item,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n bandSize = _ref4.bandSize,\n dataKey = _ref4.dataKey,\n stackedData = _ref4.stackedData,\n dataStartIndex = _ref4.dataStartIndex,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = _Area.getBaseValue(props, item, xAxis, yAxis);\n var isHorizontalLayout = layout === 'horizontal';\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var value;\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n var isBreakPoint = value[1] == null || hasStack && getValueByDataKey(entry, dataKey) == null;\n if (isHorizontalLayout) {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isBreakPoint ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n return {\n x: isBreakPoint ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n var x = Array.isArray(entry.value) ? entry.value[0] : null;\n if (isHorizontalLayout) {\n return {\n x: entry.x,\n y: x != null && entry.y != null ? yAxis.scale(x) : null\n };\n }\n return {\n x: x != null ? xAxis.scale(x) : null,\n y: entry.y\n };\n });\n } else {\n baseLine = isHorizontalLayout ? yAxis.scale(baseValue) : xAxis.scale(baseValue);\n }\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n});\n_defineProperty(Area, \"renderDotItem\", function (option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = clsx('recharts-area-dot', typeof option !== 'boolean' ? option.className : '');\n var key = props.key,\n rest = _objectWithoutProperties(props, _excluded2);\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, rest, {\n key: key,\n className: className\n }));\n }\n return dotItem;\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview X Axis\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nfunction XAxisImpl(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var XAxis = /*#__PURE__*/function (_React$Component) {\n function XAxis() {\n _classCallCheck(this, XAxis);\n return _callSuper(this, XAxis, arguments);\n }\n _inherits(XAxis, _React$Component);\n return _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(XAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(XAxis, \"displayName\", 'XAxis');\n_defineProperty(XAxis, \"defaultProps\", {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Y Axis\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nvar YAxisImpl = function YAxisImpl(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var YAxis = /*#__PURE__*/function (_React$Component) {\n function YAxis() {\n _classCallCheck(this, YAxis);\n return _callSuper(this, YAxis, arguments);\n }\n _inherits(YAxis, _React$Component);\n return _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(YAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(YAxis, \"displayName\", 'YAxis');\n_defineProperty(YAxis, \"defaultProps\", {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n return _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n}();","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var _element$props$cursor, _defaultProps;\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n var elementPropsCursor = (_element$props$cursor = element.props.cursor) !== null && _element$props$cursor !== void 0 ? _element$props$cursor : (_defaultProps = element.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps.cursor;\n if (!element || !elementPropsCursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(elementPropsCursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', elementPropsCursor.className)\n });\n return /*#__PURE__*/isValidElement(elementPropsCursor) ? /*#__PURE__*/cloneElement(elementPropsCursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement, forwardRef } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0 &&\n // https://github.com/recharts/recharts/issues/4717\n // The data is sliced only when the active index is within the start/end index range.\n state.dataEndIndex - state.dataStartIndex >= activeIndex) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _childProps$domain2;\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var type = childProps.type,\n dataKey = childProps.dataKey,\n allowDataOverflow = childProps.allowDataOverflow,\n allowDuplicatedCategory = childProps.allowDuplicatedCategory,\n scale = childProps.scale,\n ticks = childProps.ticks,\n includeHidden = childProps.includeHidden;\n var axisId = childProps[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n var _defaultProps;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps = item.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps[axisIdKey];\n return itemAxisId === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(childProps.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(childProps.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _childProps$domain;\n var childDomain = (_childProps$domain = childProps.domain) !== null && _childProps$domain !== void 0 ? _childProps$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps2, _defaultProps3;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps2 = item.type.defaultProps) === null || _defaultProps2 === void 0 ? void 0 : _defaultProps2[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps3 = item.type.defaultProps) === null || _defaultProps3 === void 0 ? void 0 : _defaultProps3.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : item.type.defaultProps[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : item.type.defaultProps.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, childProps), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_childProps$domain2 = childProps.domain) !== null && _childProps$domain2 !== void 0 ? _childProps$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var axisId = childProps[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps4, _defaultProps5;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps4 = item.type.defaultProps) === null || _defaultProps4 === void 0 ? void 0 : _defaultProps4[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps5 = item.type.defaultProps) === null || _defaultProps5 === void 0 ? void 0 : _defaultProps5.hide;\n return itemAxisId === axisId && !itemHide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n childMaxBarSize = itemProps.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = itemProps[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = itemProps[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = itemProps[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n var CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_this, \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_this, \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_this, \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_this, \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_this, \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_this, \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_this, \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_this, \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_this, \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_this, \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_this, \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_this, \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_this, \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDoubleClick\", function (e) {\n var onDoubleClick = _this.props.onDoubleClick;\n if (isFunction(onDoubleClick)) {\n var _nextState5 = _this.getMouseInfo(e);\n onDoubleClick(_nextState5, e);\n }\n });\n _defineProperty(_this, \"handleContextMenu\", function (e) {\n var onContextMenu = _this.props.onContextMenu;\n if (isFunction(onContextMenu)) {\n var _nextState6 = _this.getMouseInfo(e);\n onContextMenu(_nextState6, e);\n }\n });\n _defineProperty(_this, \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_this, \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_this, \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_this, \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var elementDefaultProps = element.type.defaultProps;\n var elementProps = elementDefaultProps !== undefined ? _objectSpread(_objectSpread({}, elementDefaultProps), element.props) : element.props;\n var axisOption = axisMap && axisMap[elementProps[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_this, \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_this, \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_this, \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_this, \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_this, \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _this2 = _this,\n clipPathId = _this2.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var elementDefaultProps = element.type.defaultProps || {};\n var _element$props2 = element.props,\n _element$props2$xAxis = _element$props2.xAxisId,\n xAxisId = _element$props2$xAxis === void 0 ? elementDefaultProps.xAxisId : _element$props2$xAxis,\n _element$props2$yAxis = _element$props2.yAxisId,\n yAxisId = _element$props2$yAxis === void 0 ? elementDefaultProps.yAxisId : _element$props2$yAxis;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_this, \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n // item is not a React Element so we don't need to resolve defaultProps.\n var key = item.props.key;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n dataKey = itemItemProps.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps, \"\".concat(key, \"-activePoint-\").concat(childIndex)));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y\n }), \"\".concat(key, \"-basePoint-\").concat(childIndex)));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_this, \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n // item is not a React Element so we don't need to resolve defaultProps\n var _item$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n hide = itemItemProps.hide,\n activeBar = itemItemProps.activeBar,\n activeShape = itemItemProps.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_this, \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_this, \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _inherits(CategoricalChartWrapper, _Component);\n return _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length - 1) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n }, toolTipData);\n }\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onDoubleClick: this.handleDoubleClick,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd,\n onContextMenu: this.handleContextMenu\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n // graphicalItem is not a React Element so we don't need to resolve defaultProps\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: itemProps.data\n });\n var childIndex = itemProps.activeIndex === undefined ? activeIndex : itemProps.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? itemProps.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this3.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this3.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this3.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n }(Component);\n _defineProperty(CategoricalChartWrapper, \"displayName\", chartName);\n // todo join specific chart propTypes\n _defineProperty(CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps));\n _defineProperty(CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n });\n _defineProperty(CategoricalChartWrapper, \"renderActiveDot\", function (option, props, key) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: key\n }, dot);\n });\n var CategoricalChart = /*#__PURE__*/forwardRef(function CategoricalChart(props, ref) {\n return /*#__PURE__*/React.createElement(CategoricalChartWrapper, _extends({}, props, {\n ref: ref\n }));\n });\n CategoricalChart.displayName = CategoricalChartWrapper.displayName;\n return CategoricalChart;\n};","/**\n * @fileOverview Area Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var AreaChart = generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * dashboard-client/src/components/SessionsMemoryChart.tsx — Stacked memory graph (S39).\n *\n * Recharts stacked `` per session + total `` + `` +\n * `` + ``. Data comes from `/api/sessions/timeseries`\n * which returns `SessionSeries[]` (per-session data points + stable hex color)\n * and a `totals[]` array (sum across all sessions per timestamp).\n *\n * PREVENT-PI-004: recharts is bundled into this localhost-served static\n * dashboard bundle; it makes no runtime network calls. Chart data arrives via\n * same-origin fetch to the dashboard server (loopback, ports 9320–9329).\n */\n\nimport type React from \"react\";\nimport { useMemo } from \"react\";\nimport {\n\tResponsiveContainer,\n\tAreaChart,\n\tArea,\n\tLine,\n\tXAxis,\n\tYAxis,\n\tCartesianGrid,\n\tTooltip,\n\tLegend,\n} from \"recharts\";\nimport type { SessionSeries } from \"@contracts\";\n\nexport interface SessionsMemoryChartProps {\n\t/** Per-session series with stable colors (from /api/sessions/timeseries). */\n\tseries: SessionSeries[];\n\t/** Totals (sum across all sessions) per timestamp. */\n\ttotals: ReadonlyArray<{ ts: number; tokens: number }>;\n}\n\n/** A row in the pivoted data table passed to recharts ``. */\ninterface PivotedRow {\n\t/** Unix timestamp (ms). */\n\tts: number;\n\t/** Total tokens across all sessions at this timestamp. */\n\ttotal: number;\n\t/** Per-session token count keyed by sessionId. */\n\t[sessionId: string]: number;\n}\n\n/**\n * Pivot the per-session series + totals into recharts' expected flat shape:\n * one row per unique timestamp, with each session's token count as a column\n * keyed by sessionId. Missing values for a session at a given timestamp are\n * filled with zero so the stack renders continuously.\n */\nfunction pivot(\n\tseries: SessionSeries[],\n\ttotals: ReadonlyArray<{ ts: number; tokens: number }>,\n): PivotedRow[] {\n\tconst map = new Map();\n\tconst sessionIds = series.map((s) => s.sessionId);\n\n\tfor (const s of series) {\n\t\tfor (const pt of s.data) {\n\t\t\tlet row = map.get(pt.ts);\n\t\t\tif (!row) {\n\t\t\t\trow = { ts: pt.ts, total: 0 } as PivotedRow;\n\t\t\t\tfor (const sid of sessionIds) row[sid] = 0;\n\t\t\t\tmap.set(pt.ts, row);\n\t\t\t}\n\t\t\trow[s.sessionId] = pt.tokens;\n\t\t}\n\t}\n\tfor (const t of totals) {\n\t\tlet row = map.get(t.ts);\n\t\tif (!row) {\n\t\t\trow = { ts: t.ts, total: 0 } as PivotedRow;\n\t\t\tfor (const sid of sessionIds) row[sid] = 0;\n\t\t\tmap.set(t.ts, row);\n\t\t}\n\t\trow.total = t.tokens;\n\t}\n\n\treturn [...map.values()].sort((a, b) => a.ts - b.ts);\n}\n\nfunction fmtTs(ts: number): string {\n\treturn new Date(ts).toLocaleTimeString([], {\n\t\thour: \"2-digit\",\n\t\tminute: \"2-digit\",\n\t\tsecond: \"2-digit\",\n\t});\n}\n\nfunction fmtTokens(value: number | string): string {\n\tconst n = Number(value);\n\treturn Number.isFinite(n) ? n.toLocaleString() : String(value);\n}\n\n/** Sanitize an arbitrary sessionId for use in an SVG gradient id. */\nfunction gradId(sessionId: string): string {\n\tconst safe = sessionId.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n\treturn `grad-${safe}`;\n}\n\nexport function SessionsMemoryChart({\n\tseries,\n\ttotals,\n}: SessionsMemoryChartProps): React.ReactElement {\n\tconst data = useMemo(\n\t\t() => pivot(series, totals),\n\t\t[series, totals],\n\t);\n\n\tif (series.length === 0) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\tNo token samples in this window yet.\n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{series.map((s) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t fmtTs(ts)}\n\t\t\t\t\t\tstroke=\"#8b949e\"\n\t\t\t\t\t\ttick={{ fontSize: 11 }}\n\t\t\t\t\t\tscale=\"time\"\n\t\t\t\t\t/>\n\t\t\t\t\t fmtTokens(v)}\n\t\t\t\t\t/>\n\t\t\t\t\t fmtTs(ts)}\n\t\t\t\t\t\tformatter={(value) =>\n\t\t\t\t\t\t\t[fmtTokens(value as number), \"tokens\"] as [string, string]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontentStyle={{\n\t\t\t\t\t\t\tbackground: \"#161b22\",\n\t\t\t\t\t\t\tborder: \"1px solid #30363d\",\n\t\t\t\t\t\t\tborderRadius: \"6px\",\n\t\t\t\t\t\t\tcolor: \"#e6edf3\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlabelStyle={{ color: \"#8b949e\", fontSize: 12 }}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{series.map((s) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/ActiveSessionsTable.tsx — Active sessions table (S39).\n *\n * Per-session rows: PID, Repo, Model, Context %, Tokens/Window,\n * Heartbeat age, State dir, Sparkline.\n *\n * Data from /api/sessions (active sessions list) and /api/sessions/timeseries\n * (per-session data points used to render inline sparklines).\n */\n\nimport type React from \"react\";\nimport type { ActiveSession, SessionSeries } from \"@contracts\";\n\nexport interface ActiveSessionsTableProps {\n\t/** Active sessions, sorted by lastSeen descending (from /api/sessions). */\n\tsessions: ActiveSession[];\n\t/** Per-session timeseries used to render the inline sparkline column. */\n\tseries: SessionSeries[];\n}\n\nconst HEADERS = [\n\t\"PID\",\n\t\"Repo\",\n\t\"Model\",\n\t\"Context %\",\n\t\"Tokens / Window\",\n\t\"Last Heartbeat\",\n\t\"State Dir\",\n\t\"Trend\",\n] as const;\n\n/** Format a duration in milliseconds → human-readable age string. */\nfunction fmtAge(ms: number): string {\n\tconst s = Math.max(0, Math.round(ms / 1000));\n\tif (s < 60) return `${s}s ago`;\n\tconst m = Math.floor(s / 60);\n\tif (m < 60) return `${m}m ${s % 60}s ago`;\n\tconst h = Math.floor(m / 60);\n\treturn `${h}h ${m % 60}m ago`;\n}\n\nfunction fmtTokens(n: number | null): string {\n\tif (n == null) return \"\\u2014\";\n\tif (n >= 100_000) return `${(n / 1000).toFixed(0)}k`;\n\tif (n >= 1000) return `${(n / 1000).toFixed(1)}k`;\n\treturn n.toLocaleString();\n}\n\nfunction pctClass(pct: number | null): string {\n\tif (pct == null) return \"sessions-pct-ok\";\n\tif (pct >= 85) return \"sessions-pct-err\";\n\tif (pct >= 60) return \"sessions-pct-warn\";\n\treturn \"sessions-pct-ok\";\n}\n\nfunction fmtPct(pct: number | null): string {\n\tif (pct == null) return \"\\u2014\";\n\treturn `${Math.round(pct)}%`;\n}\n\nfunction fmtWindow(tokens: number | null, window: number): string {\n\tif (tokens == null) return \"\\u2014\";\n\treturn `${fmtTokens(tokens)} / ${fmtTokens(window)}`;\n}\n\ninterface SparklineProps {\n\t/** Token counts over time (oldest → newest). */\n\tpoints: number[];\n\t/** Stable hex color for the stroke. */\n\tcolor: string;\n}\n\nfunction Sparkline({ points, color }: SparklineProps): React.ReactElement {\n\tif (points.length < 2) {\n\t\treturn {\"\\u2014\"};\n\t}\n\tconst min = Math.min(...points);\n\tconst max = Math.max(...points);\n\tconst range = max - min || 1;\n\tconst w = 64;\n\tconst h = 18;\n\tconst stepX = w / (points.length - 1);\n\tconst segments = points.map((p, i) => {\n\t\tconst x = i * stepX;\n\t\tconst y = h - ((p - min) / range) * h;\n\t\treturn `${i === 0 ? \"M\" : \"L\"} ${x.toFixed(1)} ${y.toFixed(1)}`;\n\t});\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\n/** Map sessionId → series for the sparkline column lookup. */\nfunction indexSeries(\n\tseries: SessionSeries[],\n): Map {\n\tconst m = new Map();\n\tfor (const s of series) m.set(s.sessionId, s);\n\treturn m;\n}\n\nexport function ActiveSessionsTable({\n\tsessions,\n\tseries,\n}: ActiveSessionsTableProps): React.ReactElement {\n\tconst seriesById = indexSeries(series);\n\tconst now = Date.now();\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{HEADERS.map((h, i) => (\n\t\t\t\t\t\t\t= 3 && i !== 6 ? \"num\" : undefined}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{h}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{sessions.length === 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{sessions.map((s) => {\n\t\t\t\t\t\tconst srs = seriesById.get(s.sessionId);\n\t\t\t\t\t\tconst sparkPts =\n\t\t\t\t\t\t\tsrs?.data.map((d) => d.tokens) ?? [];\n\t\t\t\t\t\tconst color = srs?.color ?? \"#58a6ff\";\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{s.stateDir\n\t\t\t\t\t\t\t\t\t\t? s.stateDir.split(\"/\").pop() || s.stateDir\n\t\t\t\t\t\t\t\t\t\t: \"\\u2014\"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
    No active sessions.
    {s.pid}\n\t\t\t\t\t\t\t\t\t{s.displayName || s.repoRoot || \"\\u2014\"}\n\t\t\t\t\t\t\t\t{s.model ?? \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fmtPct(s.percent)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{fmtWindow(s.tokens, s.ctxWindow)}\n\t\t\t\t\t\t\t\t{fmtAge(now - s.lastSeen)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/tabs/SessionsTab.tsx — Sessions tab (S39).\n *\n * Renders: window selector (5/15/30/60 min), sessions summary tiles,\n * the stacked-memory graph (SessionsMemoryChart), and the active sessions\n * table (ActiveSessionsTable).\n *\n * Data sources: fetchSessions() + fetchSessionTimeseries(minutes). Both poll\n * every 2s for near-real-time updates. useSSE() listens for session_sample\n * events emitted by appendTokenSample (Step 5) so the chart refetches\n * instantly between polls when a new token sample is appended to events.log.\n *\n * Empty state: shows \"No active sessions.\" when the /api/sessions response\n * returns an empty array (e.g. no pi processes are running yet).\n */\n\nimport type React from \"react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { useSSE } from \"../hooks/useSSE\";\nimport { fetchSessions, fetchSessionTimeseries } from \"../api/client\";\nimport type { SseEvent, SseSessionSample, SessionsResponse, SessionTimeseriesResponse } from \"@contracts\";\nimport { SessionsMemoryChart } from \"../components/SessionsMemoryChart\";\nimport { ActiveSessionsTable } from \"../components/ActiveSessionsTable\";\n\n/**\n * Shape of the {@link SseSessionSample} SSE event appended to events.log by\n * `appendTokenSample` (src/store/sqlite/global-index.ts). The contract now\n * defines this variant as part of the {@link SseEvent} union (Step 5); the\n * local alias keeps the surface terser in this file.\n */\ntype SessionSampleEvent = SseSessionSample;\n\n/** Type guard: narrows an SSE event to a session_sample event. */\nfunction isSessionSample(\n\te: SseEvent,\n): e is SessionSampleEvent {\n\treturn e.type === \"session_sample\";\n}\n\nconst WINDOWS: ReadonlyArray<{ value: number; label: string }> = [\n\t{ value: 5, label: \"5m\" },\n\t{ value: 15, label: \"15m\" },\n\t{ value: 30, label: \"30m\" },\n\t{ value: 60, label: \"60m\" },\n] as const;\n\ninterface SummaryTilesProps {\n\tsessions: SessionsResponse;\n}\n\nfunction SummaryTiles({ sessions }: SummaryTilesProps): React.ReactElement {\n\tconst active = sessions.sessions.length;\n\tconst combinedTokens = sessions.sessions.reduce(\n\t\t(sum, s) => sum + (s.tokens ?? 0),\n\t\t0,\n\t);\n\tconst maxWindow = sessions.sessions.reduce(\n\t\t(max, s) => Math.max(max, s.ctxWindow),\n\t\t0,\n\t);\n\tconst combinedPct = maxWindow > 0 ? (combinedTokens / maxWindow) * 100 : 0;\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tActive sessions\n\t\t\t\t{active}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCombined tokens\n\t\t\t\t\n\t\t\t\t\t{combinedTokens >= 100_000\n\t\t\t\t\t\t? `${(combinedTokens / 1000).toFixed(0)}k`\n\t\t\t\t\t\t: combinedTokens.toLocaleString()}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCombined % of max window\n\t\t\t\t{Math.round(combinedPct)}%\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tPruned (stale)\n\t\t\t\t{sessions.pruned}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nexport default function SessionsTab(): React.ReactElement {\n\tconst [minutes, setMinutes] = useState(30);\n\n\tconst {\n\t\tdata: sessionsData,\n\t\terror: sessionsErr,\n\t\trefetch: refetchSessions,\n\t} = useApi(\n\t\tuseCallback(() => fetchSessions(), []),\n\t\t{ pollInterval: 2_000 },\n\t);\n\n\tconst {\n\t\tdata: timeseriesData,\n\t\terror: timeseriesErr,\n\t\trefetch: refetchTimeseries,\n\t} = useApi(\n\t\tuseCallback(() => fetchSessionTimeseries(minutes), [minutes]),\n\t\t{ pollInterval: 2_000 },\n\t);\n\n\tconst { events } = useSSE();\n\n\t// Filter SSE events for session_sample pushes (Step 5) and trigger an\n\t// immediate refetch when a new sample arrives, so the chart updates\n\t// between the 2s polls. The events array grows as new samples arrive; the\n\t// length-based dependency means the effect re-runs when a new sample event\n\t// lands (not on every poll). We debounce via a microtask guard.\n\tconst sampleEvents = useMemo(\n\t\t() => events.filter(isSessionSample),\n\t\t[events],\n\t);\n\n\tconst lastSampleTs = useMemo(() => {\n\t\tif (sampleEvents.length === 0) return null;\n\t\treturn sampleEvents[sampleEvents.length - 1].ts;\n\t}, [sampleEvents]);\n\n\tuseEffect(() => {\n\t\tif (lastSampleTs == null) return;\n\t\trefetchSessions();\n\t\trefetchTimeseries();\n\t}, [lastSampleTs, refetchSessions, refetchTimeseries]);\n\n\tif (sessionsErr && !sessionsData) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\tError loading sessions: {sessionsErr.message}\n\t\t\t
    \n\t\t);\n\t}\n\tif (timeseriesErr && !timeseriesData) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\tError loading timeseries: {timeseriesErr.message}\n\t\t\t
    \n\t\t);\n\t}\n\tif (!sessionsData) {\n\t\treturn
    Loading sessions…
    ;\n\t}\n\n\tconst sessions = sessionsData.sessions;\n\tconst series = timeseriesData?.series ?? [];\n\tconst totals = timeseriesData?.totals ?? [];\n\tconst windowLabel =\n\t\tWINDOWS.find((w) => w.value === minutes)?.label ?? `${minutes}m`;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    Session Memory Graph

    \n\t\t\t\t
    \n\t\t\t\t\t{WINDOWS.map((w) => (\n\t\t\t\t\t\t setMinutes(w.value)}\n\t\t\t\t\t\t\taria-pressed={minutes === w.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{w.label}\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{sessions.length === 0 ? (\n\t\t\t\t
    No active sessions.
    \n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

    Active Sessions

    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{series.length} series · {totals.length} timestamps ·{\" \"}\n\t\t\t\t\t\t{windowLabel} window · updated{\" \"}\n\t\t\t\t\t\t{timeseriesData?.updatedAt ?? sessionsData.updatedAt}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n}\n"],"names":["r","f","o","clsx","isArray","isArray_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","root","_root","Symbol","_Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","_getRawTag","objectToString","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","object","type","_isKey","isObject","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","func","_isMasked","funcProto","funcToString","toSource","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","_baseIsNative","getValue","key","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","data","_hashGet","hashHas","_hashHas","hashSet","_hashSet","require$$4","Hash","entries","index","length","entry","_Hash","listCacheClear","_listCacheClear","eq","other","eq_1","assocIndexOf","array","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","map","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","size","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","args","cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","_stringToPath","arrayMap","iteratee","_arrayMap","symbolProto","symbolToString","baseToString","_baseToString","toString","toString_1","castPath","_castPath","toKey","_toKey","baseGet","path","_baseGet","get","defaultValue","get_1","isNil","isNil_1","stringTag","isString","isString_1","b","c","d","e","g","h","k","l","m","n","p","q","t","u","v","a","reactIs_production_min","reactIsModule","numberTag","isNumber","isNumber_1","isNaN","_isNaN","mathSign","isPercent","lodashIsNumber","isNan","isNullish","isNumOrStr","idCounter","uniqueId","prefix","id","getPercentValue","percent","totalValue","validate","getAnyElementOfObject","obj","keys","hasDuplicate","ary","len","interpolateNumber","numberA","numberB","findEntryInArray","specifiedKey","specifiedValue","compareValues","shallowEqual","_key","_typeof","SVGContainerPropKeys","SVGElementPropKeys","PolyElementKeys","FilteredElementKeyMap","EventKeys","adaptEventHandlers","props","newHandler","inputProps","isValidElement","out","getEventHandlerOfChild","originalHandler","adaptEventsOfChild","item","_excluded","_excluded2","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","REACT_BROWSER_EVENT_MAP","getDisplayName","Comp","lastChildren","lastResult","toArray","children","Children","child","isFragment","findAllByType","types","childType","findChildByType","validateWidthHeight","el","_el$props","width","height","SVG_TAGS","isSvgElement","hasClipDot","dot","isValidSpreadableProp","property","includeEvents","svgElementType","_FilteredElementKeyMa","matchingElementTypeKeys","filterProps","_inputProps","isChildrenEqual","nextChildren","prevChildren","count","isSingleChildEqual","nextChild","prevChild","_ref","nextProps","_ref2","prevProps","renderByOrder","renderMap","elements","record","displayName","_ref3","handler","once","results","getReactEventByType","parseChildIndex","_extends","i","Surface","viewBox","className","style","title","desc","others","svgView","layerClass","React","Layer","ref","warn","condition","format","_len","baseSlice","start","end","_baseSlice","castSlice","_castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","_hasUnicode","asciiToArray","_asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","_unicodeToArray","stringToArray","_stringToArray","createCaseFirst","methodName","strSymbols","chr","trailing","_createCaseFirst","upperFirst","upperFirst_1","constant$3","x","cos","sin","sqrt","pi","tau","epsilon","tauEpsilon","append","strings","appendRound","digits","Path","y","x1","y1","x2","y2","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","withPath","shape","_","Linear","context","curveLinear","shapeLine","defined","constant","curve","output","line","pointX","pointY","defined0","buffer","shapeArea","area","j","x0z","y0z","arealine","Bump","bumpX","bumpY","symbolCircle","symbolCross","tan30","tan30_2","symbolDiamond","symbolSquare","ka","kr","kx","ky","symbolStar","s","sqrt3","symbolTriangle","symbolWye","symbol","circle","noop$2","point","that","Basis","curveBasis","BasisClosed","noop","curveBasisClosed","BasisOpen","curveBasisOpen","LinearClosed","curveLinearClosed","sign","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","i0","i1","curveNatural","Step","curveStep","stepBefore","stepAfter","stackOffsetNone","series","order","stackOrderNone","stackValue","stackSeries","shapeStack","orderNone","offset","offsetNone","stack","sz","oz","stackOffsetExpand","none","stackOffsetSilhouette","stackOffsetWiggle","s2","si","sij0","sij1","s3","sk","skj0","skj1","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","symbolFactories","RADIAN","getSymbolFactory","name","calculateAreaSize","sizeType","angle","registerSymbol","factory","Symbols","_ref$type","_ref$size","_ref$sizeType","rest","getPath","symbolFactory","shapeSymbol","cx","cy","filteredProps","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","self","call","_assertThisInitialized","_inherits","subClass","superClass","_setPrototypeOf","SIZE","DefaultLegendContent","_PureComponent","inactiveColor","halfSize","sixthSize","thirdSize","color","iconProps","_this","_this$props","payload","iconSize","layout","formatter","itemStyle","svgStyle","finalFormatter","entryValue","_this$props2","align","finalStyle","PureComponent","stackClear","_stackClear","stackDelete","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","_stackSet","require$$5","Stack","_Stack","setCacheAdd","_setCacheAdd","setCacheHas","_setCacheHas","SetCache","values","_SetCache","arraySome","predicate","_arraySome","cacheHas","_cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","customizer","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_equalArrays","Uint8Array","_Uint8Array","mapToArray","_mapToArray","setToArray","set","_setToArray","boolTag","dateTag","errorTag","mapTag","regexpTag","setTag","arrayBufferTag","dataViewTag","symbolValueOf","equalByTag","convert","stacked","_equalByTag","arrayPush","_arrayPush","baseGetAllKeys","keysFunc","symbolsFunc","_baseGetAllKeys","arrayFilter","resIndex","_arrayFilter","stubArray","stubArray_1","propertyIsEnumerable","nativeGetSymbols","getSymbols","_getSymbols","baseTimes","_baseTimes","argsTag","baseIsArguments","_baseIsArguments","isArguments","isArguments_1","stubFalse","stubFalse_1","freeExports","exports","freeModule","module","moduleExports","Buffer","nativeIsBuffer","isBuffer","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","isLength","isLength_1","arrayTag","objectTag","weakMapTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","_baseIsTypedArray","baseUnary","_baseUnary","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","isTypedArray_1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","isPrototype","Ctor","proto","_isPrototype","overArg","transform","arg","_overArg","nativeKeys","_nativeKeys","baseKeys","_baseKeys","isArrayLike","isArrayLike_1","keys_1","getAllKeys","_getAllKeys","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","_equalObjects","DataView","_DataView","Promise","_Promise","Set","_Set","WeakMap","_WeakMap","require$$6","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","require$$7","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqual","_baseIsEqual","baseIsMatch","matchData","noCustomizer","srcValue","_baseIsMatch","isStrictComparable","_isStrictComparable","getMatchData","_getMatchData","matchesStrictComparable","_matchesStrictComparable","baseMatches","_baseMatches","baseHasIn","_baseHasIn","hasPath","hasFunc","_hasPath","hasIn","hasIn_1","baseMatchesProperty","_baseMatchesProperty","identity","identity_1","baseProperty","_baseProperty","basePropertyDeep","_basePropertyDeep","property_1","baseIteratee","_baseIteratee","baseFindIndex","fromIndex","fromRight","_baseFindIndex","baseIsNaN","_baseIsNaN","strictIndexOf","_strictIndexOf","baseIndexOf","_baseIndexOf","arrayIncludes","_arrayIncludes","arrayIncludesWith","comparator","_arrayIncludesWith","noop_1","INFINITY","createSet","_createSet","baseUniq","includes","isCommon","outer","computed","seenIndex","_baseUniq","uniqBy","uniqBy_1","getUniqPayload","option","defaultUniqBy","renderContent","content","otherProps","EPS","Legend","box","onBBoxUpdate","verticalAlign","margin","chartWidth","chartHeight","hPos","vPos","_box","_this2","wrapperStyle","payloadUniqBy","outerStyle","node","_this$defaultProps$it","spreadableSymbol","isFlattenable","_isFlattenable","baseFlatten","depth","isStrict","_baseFlatten","createBaseFor","iterable","_createBaseFor","baseFor","_baseFor","baseForOwn","_baseForOwn","createBaseEach","eachFunc","collection","_createBaseEach","baseEach","_baseEach","baseMap","_baseMap","baseSortBy","comparer","_baseSortBy","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_compareAscending","compareMultiple","orders","objCriteria","othCriteria","ordersLength","_compareMultiple","require$$8","baseOrderBy","iteratees","criteria","_baseOrderBy","apply","thisArg","_apply","nativeMax","overRest","otherArgs","_overRest","constant_1","defineProperty","baseSetToString","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","lastCalled","stamp","remaining","_shortOut","setToString","_setToString","baseRest","_baseRest","isIterateeCall","_isIterateeCall","sortBy","sortBy_1","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","defaultFormatter","DefaultTooltipContent","_props$separator","separator","_props$contentStyle","contentStyle","_props$itemStyle","_props$labelStyle","labelStyle","itemSorter","wrapperClassName","labelClassName","label","labelFormatter","_props$accessibilityL","accessibilityLayer","listStyle","items","finalItemStyle","finalValue","finalName","formatted","_formatted","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","getTooltipCSSClassName","coordinate","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","position","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","_tooltipBoundary","_viewBoxBoundary","tooltipBoundary","viewBoxBoundary","getTransformStyle","useTranslate3d","getTooltipTranslate","_ref4","tooltipBox","cssProperties","EPSILON","TooltipBoundingBox","event","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","_this$props$coordinat5","_this$props$coordinat6","active","animationDuration","animationEasing","hasPayload","isAnimationActive","_getTooltipTranslate","cssClasses","parseIsSsrByDefault","Global","Tooltip","filterNull","finalPayload","now","now_1","reWhitespace","trimmedEndIndex","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","isBinary","toNumber_1","nativeMin","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","throttle","throttle_1","ResponsiveContainer","forwardRef","aspect","_ref$initialDimension","initialDimension","_ref$width","_ref$height","_ref$minWidth","minWidth","minHeight","maxHeight","_ref$debounce","onResize","_ref$style","containerRef","useRef","onResizeRef","useImperativeHandle","_useState","useState","_useState2","sizes","setSizes","setContainerSize","useCallback","newWidth","newHeight","prevState","roundedWidth","roundedHeight","useEffect","callback","_onResizeRef$current","_entries$0$contentRec","containerWidth","containerHeight","observer","_containerRef$current","chartContent","useMemo","calculatedWidth","calculatedHeight","isCharts","cloneElement","Cell","_props","stringCache","MAX_CACHE_NUM","SPAN_STYLE","MEASUREMENT_SPAN_ID","removeInvalidKeys","copyObj","getStringSize","text","copyStyle","cacheKey","measurementSpan","measurementSpanStyle","rect","getOffset","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","FIXED_CSS_LENGTH_UNITS","STR_NAN","convertToPx","unit","DecimalCSS","num","str","_NUM_SPLIT_REGEX$exec","numStr","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","_ref5","_ref6","_leftOperand","_operator","_rightOperand","_lTs","_rTs","_result","PARENTHESES_REGEX","calculateParentheses","_PARENTHESES_REGEX$ex","_PARENTHESES_REGEX$ex2","parentheticalExpression","evaluateExpression","expression","safeEvaluateExpression","reduceCSSCalc","BREAKING_SPACES","calculateWordWidths","breakAll","words","wordsWithComputedWidth","word","spaceWidth","calculateWordsByLines","initialWordsWithComputedWith","lineWidth","scaleToFit","maxLines","shouldLimitLines","calculate","currentLine","newLine","originalResult","findLongestLine","suffix","checkOverflow","tempText","doesOverflow","iterations","trimmedResult","middle","prev","_checkOverflow","_checkOverflow2","doesPrevOverflow","_checkOverflow3","_checkOverflow4","doesMiddleOverflow","getWordsWithoutCalculate","getWordsByLines","wordWidths","wcw","sw","DEFAULT_FILL","Text","_ref5$x","propsX","_ref5$y","propsY","_ref5$lineHeight","lineHeight","_ref5$capHeight","capHeight","_ref5$scaleToFit","_ref5$textAnchor","textAnchor","_ref5$verticalAnchor","verticalAnchor","_ref5$fill","fill","wordsByLines","textProps","startDy","transforms","ascending","descending","bisector","compare1","compare2","delta","zero","left","lo","hi","mid","right","center","numbers","valueof","ascendingBisect","bisectRight","InternMap","keyof","intern_get","intern_set","intern_delete","_intern","compareDefined","compare","ascendingDefined","e10","e5","e2","tickSpec","stop","step","power","error","factor","i2","inc","ticks","reverse","tickIncrement","tickStep","max","min","quickselect","z","sd","newLeft","newRight","swap","quantile","value0","value1","quantileSorted","range","initRange","domain","initInterpolator","interpolator","implicit","ordinal","unknown","scale","band","ordinalRange","r0","r1","bandwidth","round","paddingInner","paddingOuter","rescale","sequence","pointish","copy","define","constructor","prototype","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","rgbn","Rgb","rgba","hsla","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","Hsl","hsl","m2","m1","hsl2rgb","clamph","clampt","linear","exponential","gamma","nogamma","rgbGamma","colorRgb","numberArray","isNumberArray","genericArray","nb","na","date$1","interpolateNumber$1","reA","reB","one","bi","am","bm","bs","interpolate","date","interpolateRound","piecewise","I","constants","normalize","clamper","bimap","d0","d1","polymap","bisect","transformer","interpolateValue","untransform","clamp","input","continuous","formatDecimal","formatDecimalParts","coefficient","exponent","formatGroup","grouping","thousands","formatNumerals","numerals","re","formatSpecifier","specifier","FormatSpecifier","formatTrim","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$5","prefixes","formatLocale$1","locale","group","currencyPrefix","currencySuffix","decimal","minus","nan","newFormat","comma","precision","trim","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","defaultLocale","formatLocale","precisionFixed","precisionPrefix","precisionRound","tickFormat","linearish","prestep","maxIter","nice","interval","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","reflect","loggish","logs","pows","log","transformSymlog","transformSymexp","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","pow","square","unsquare","radial","squared","thresholds","threshold","quantize","timeInterval","floori","offseti","field","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","parseSpecifier","parse","numberRe","percentRe","requoteRe","requote","names","dISO","dow","UTCdISO","timeFormat","utcFormat","calendar","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","t2","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","baseExtremum","current","_baseExtremum","baseGt","_baseGt","max_1","baseLt","_baseLt","min_1","map_1","flatMap","flatMap_1","isEqual","isEqual_1","MAX_DIGITS","defaults","Decimal","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","ONE","BASE","LOG_BASE","MAX_E","P","xdL","ydL","dp","divide","getBase10Exponent","pr","wpr","ln","subtract","add","exp","digitsToString","carry","rL","xd","yd","rm","checkInt32","yIsInt","guard","yn","truncate","ws","indexOfLastWord","getZeroString","multiplyInteger","temp","aL","bL","cmp","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c0","numerator","parseDecimal","rd","doRound","xdi","xe","xLTy","isExp","clone","ps","config","Decimal$1","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","PLACE_HOLDER","isPlaceHolder","val","curry0","fn","_curried","curryN","argsLength","_len2","restArgs","_key2","newArgs","curry","begin","compose","_len3","_key3","fns","firstFn","tailsFn","res","_len4","_key4","getDigitCount","rangeStep","newA","newB","uninterpolateNumber","diff","uninterpolateTruncation","Arithmetic","_arr","_n","_d","_e","_i","_s","err","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","digitCountValue","stepRatio","stepRatioScale","amendStepRatio","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","belowCount","upCount","scaleCount","getNiceTickValuesFn","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","tickMin","tickMax","getTickValuesFixedDomainFn","_ref7","_ref8","_getValidInterval5","_getValidInterval6","getNiceTickValues","getTickValuesFixedDomain","invariant","message","ErrorBar","_React$Component","dataKey","dataPointFormatter","xAxis","yAxis","svgProps","errorBars","_dataPointFormatter","errorVal","lineCoordinates","lowBound","highBound","_errorVal","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","getLegendProps","formattedGraphicalItems","legendWidth","legendContent","legendItem","legendDefaultProps","legendProps","legendData","itemDefaultProps","itemProps","legendType","hide","getMainColorOfGraphicItem","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","validateData","calculateActiveTickIndex","_ticks$length","unsortedTicks","axis","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","minValue","maxValue","_item$type","defaultedProps","stroke","getBarSizeList","globalSize","totalSize","_ref2$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","barItemDefaultProps","barItemProps","selfSize","cateId","barSize","getBarPosition","barGap","barCategoryGap","bandSize","_ref3$sizeList","sizeList","maxBarSize","realBarGap","initialValue","useFull","fullBarSize","newPosition","newRes","_offset","originalSize","appendOffsetOfLegend","_unused","legendBox","boxWidth","boxHeight","isErrorBarRelevantForAxis","axisType","direction","getDomainOfErrorBars","errorBarChild","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","syncWithTicks","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","offsetForBand","scaleContent","row","handlerWeakMap","combineEventHandlers","defaultHandler","childHandler","childWeakMap","combineHandler","parseScale","chartType","hasBar","d3Scales.scaleBand","d3Scales.scaleLinear","d3Scales.scalePoint","d3Scales","checkDomainOfScale","first","last","findPositionOfBar","barPosition","truncateByDomain","offsetSign","offsetPositive","STACK_OFFSET_MAP","getStackedData","stackItems","offsetType","dataKeys","offsetAccessor","getStackGroupsByAxisId","_items","numericAxisId","reverseStackOrder","parentStackGroupsInitialValue","_item$type2","stackId","axisId","parentGroup","childGroup","axisStackGroupsInitialValue","stackGroupsInitialValue","getTicksOfScale","opts","realScaleType","originalDomain","scaleType","tickValues","_domain","_tickValues","getCateCoordinateOfLine","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","numericAxis","getStackedDataOfItem","_item$type3","itemIndex","getDomainOfSingle","getDomainOfStackGroups","startIndex","endIndex","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","graphicalItem","tooltipType","radianToDegree","angleInRadian","polarToCartesian","radius","distanceBetweenPoints","anotherPoint","getAngleOfPoint","formatAngleOfSector","startAngle","endAngle","startCnt","endCnt","reverseFormatAngleOfSetor","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","_formatAngleOfSector","formatAngle","inRange","getLabel","getDeltaAngle","deltaAngle","renderRadialLabel","labelProps","attrs","clockWise","labelAngle","startPoint","endPoint","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_x","_y","_polarToCartesian2","getAttrsOfCartesianLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs","_attrs2","_attrs3","sizeAttrs","isPolar","Label","_ref4$offset","restProps","_props$className","textBreakAll","createElement","isPolarLabel","positionAttrs","parseViewBox","top","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","last_1","defaultAccessor","LabelList","_ref$valueAccessor","valueAccessor","idProps","parseLabelList","implicitLabelList","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","centerAngle","circleTangency","lineTangencyAngle","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","getSectorWithCorner","forceCornerRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","defaultProps","Sector","sectorProps","deltaRadius","cr","CURVE_FACTORIES","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveStepAfter","curveStepBefore","getX","getY","getCurveFactory","_ref$points","points","baseLine","_ref$connectNulls","connectNulls","curveFactory","formatPoints","lineFunction","formatBaseLine","areaPoints","Curve","pathRef","realPath","React.createElement","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","propTypesModule","getOwnPropertyNames","getOwnPropertySymbols","combineComparators","comparatorA","comparatorB","state","createIsCircular","areItemsEqual","cachedA","cachedB","getShortTag","getStrictProperties","hasOwn","sameValueZeroEqual","PREACT_VNODE","PREACT_OWNER","REACT_OWNER","getOwnPropertyDescriptor","areArrayBuffersEqual","areTypedArraysEqual","areArraysEqual","areDataViewsEqual","areDatesEqual","areErrorsEqual","areFunctionsEqual","areMapsEqual","matchedIndices","aIterable","aResult","bResult","bIterable","hasMatch","matchIndex","aEntry","bEntry","areNumbersEqual","areObjectsEqual","properties","isPropertyEqual","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areUrlsEqual","ARRAY_BUFFER_TAG","ARGUMENTS_TAG","BOOLEAN_TAG","DATA_VIEW_TAG","DATE_TAG","ERROR_TAG","MAP_TAG","NUMBER_TAG","OBJECT_TAG","REG_EXP_TAG","SET_TAG","STRING_TAG","TYPED_ARRAY_TAGS","URL_TAG","createEqualityComparator","unknownTagComparators","unknownTagComparator","shortTag","createEqualityComparatorConfig","circular","createCustomConfig","strict","createInternalEqualityComparator","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","createState","equals","meta","deepEqual","createCustomEqual","createCustomInternalComparator","safeRequestAnimationFrame","setRafTimeout","timeout","currTime","shouldUpdate","_toArray","createAnimateManager","currStyle","handleChange","shouldStop","setStyle","_style","styles","_styles","curr","restStyles","_handleChange","hint","prim","getIntersectionKeys","preObj","nextObj","param","getDashCase","mapObject","getTransitionVal","duration","easing","prop","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","FSpring","FDamping","newV","newX","configEasing","alpha","needContinue","from","to","calStepperVals","preVals","steps","nextStepVals","_easing","_easing2","configUpdate","render","interKeys","timingStyle","stepperStyle","cafId","preTime","beginTime","update","getCurrStyle","shouldStopAnimation","stepperUpdate","deltaTime","timingUpdate","sourceKeys","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","Animate","_super","isActive","attributeName","canBegin","_this$props3","shouldReAnimate","currentFrom","newState","isTriggered","_newState","onAnimationEnd","onAnimationStart","startAnimation","finalStartAnimation","_this3","_steps$","initialStyle","_steps$$duration","initialTime","addStyle","nextItem","_nextItem$easing","nextProperties","preItem","transition","newStyle","propsTo","manager","_this$props4","stateStyle","cloneContainer","container","_container$props","_container$props$styl","PropTypes","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","isInRectangle","minX","maxX","minY","maxY","Rectangle","rectangleProps","totalLength","setTotalLength","pathTotalLength","animationBegin","isUpdateAnimationActive","currWidth","currHeight","currY","Dot","Cross","_ref$x","_ref$y","_ref$top","_ref$left","getPrototype","_getPrototype","objectCtorString","isPlainObject","isPlainObject_1","isBoolean","isBoolean_1","getTrapezoidPath","upperWidth","lowerWidth","widthGap","Trapezoid","trapezoidProps","currUpperWidth","currLowerWidth","defaultPropTransformer","isSymbolsProps","shapeType","_elementProps","ShapeSelector","elementProps","getPropsFromShapeOption","Shape","_ref2$propTransformer","propTransformer","_ref2$activeClassName","activeClassName","isFunnel","_item","isPie","isScatter","compareFunnel","shapeData","activeTooltipItem","_activeTooltipItem$la","_activeTooltipItem$la2","xMatches","yMatches","comparePie","startAngleMatches","endAngleMatches","compareScatter","zMatches","getComparisonFn","activeItem","comparison","getShapeDataKey","shapeKey","getActiveShapeTooltipPayload","_activeItem$tooltipPa","_activeItem$tooltipPa2","getActiveShapeIndexForTooltip","itemData","tooltipPayload","activeItemMatches","datum","dataIndex","valuesMatch","mouseCoordinateMatches","indexOfMouseCoordinates","coordinatesMatch","activeIndex","nativeCeil","baseRange","_baseRange","MAX_INTEGER","toFinite","toFinite_1","createRange","_createRange","range_1","PREFIX_LIST","generatePrefixStyle","camelName","createScale","travellerWidth","scalePoint","scaleValues","isTouch","Brush","onDragEnd","startX","endX","gap","minIndex","maxIndex","tickFormatter","_this$state","slideMoveStartX","onChange","newIndex","_this$state2","brushMoveStartX","movingTravellerId","prevValue","_this$props5","isFullGap","_this$state3","currentScaleValue","currentIndex","newScaleValue","_this$props6","_this$props7","chartElement","travellerX","_data$startIndex","_data$endIndex","_this$props8","traveller","ariaLabel","travellerProps","ariaLabelBrush","_this$props9","_this$props10","_this$state4","_this$props11","alwaysShowText","_this$state5","isTextActive","isSlideMoving","isTravellerMoving","isTravellerFocused","isPanoramic","lineY","rectangle","updateId","valueRange","baseSome","_baseSome","some","some_1","ifOverflowMatches","alwaysShow","ifOverflow","baseAssignValue","_baseAssignValue","mapValues","mapValues_1","arrayEvery","_arrayEvery","baseEvery","_baseEvery","every","every_1","typeguardBarRectangleProps","xProp","yProp","xValue","yValue","heightValue","widthValue","BarRectangle","minPointSizeCallback","minPointSize","isValueNumberOrNil","_Bar","Bar","activeBar","baseProps","animationId","prevData","stepData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","_this4","backgroundProps","background","needClip","clipPathId","errorBarItems","dataPoint","errorBarProps","isAnimationFinished","needClipX","needClipY","xAxisTicks","yAxisTicks","dataStartIndex","displayedData","pos","minPointSizeProp","stackedDomain","baseValue","cells","rects","baseValueScale","currentValueScale","computedHeight","_baseValueScale","_currentValueScale","_delta","formatAxisMap","axisMap","chartName","ids","orientation","_axis$padding","mirror","reversed","offsetKey","calculatedPadding","needSpace","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","finalAxis","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","coord","normalizeAngle","getAngledRectangleWidth","normalizedAngle","angleRadians","angleThreshold","angledWidth","createFind","findIndexFunc","_createFind","toInteger","remainder","toInteger_1","findIndex","findIndex_1","find","find_1","calculateViewBox","XAxisContext","YAxisContext","ViewBoxContext","OffsetContext","createContext","ClipPathIdContext","ChartHeightContext","ChartWidthContext","ChartLayoutContextProvider","_props$state","xAxisMap","yAxisMap","useClipPathId","useContext","useXAxisOrThrow","xAxisId","useArbitraryXAxis","useYAxisWithFiniteDomainOrRandom","yAxisWithFiniteDomain","useYAxisOrThrow","yAxisId","useViewBox","useOffset","useChartWidth","useChartHeight","renderLine","getEndPoints","isFixedX","isFixedY","isSegment","xAxisOrientation","yAxisOrientation","yCoord","xCoord","_coord","_points","segment","_points2","ReferenceLineImpl","fixedX","fixedY","isX","isY","endPoints","_endPoints","_endPoints$","_endPoints$2","clipPath","lineProps","ReferenceLine","getCoordinate","ReferenceDot","dotProps","getRect","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","p2","ReferenceArea","getEveryNthWithCondition","isValid","getAngledTickWidth","contentSize","unitSize","getTickBoundaries","sizeKey","isWidth","isVisible","tickPosition","getSize","getNumberIntervalTicks","getEquidistantTicks","boundaries","getTickSize","minTickGap","initialStart","stepsize","_loop","tickCoord","isShow","_ret","getTicksEnd","getTicksStart","preserveEnd","tail","tailSize","tailGap","isTailShow","_loop2","getTicks","fontSize","letterSpacing","tick","candidates","_excluded3","CartesianAxis","_Component","nextState","viewBoxOld","restPropsOld","htmlLayer","tickSize","tickMargin","tx","ty","finalTickSize","axisLine","needHeight","needWidth","tickLine","finalTicks","axisProps","customTickProps","tickLineProps","_this2$getTickLineCoo","lineCoord","tickProps","ticksGenerator","noTicksProps","tickItem","combinedClassName","Component","Background","fillOpacity","ry","renderLineItem","lineItem","_filterProps","restOfFilteredProps","HorizontalGridLines","_props$horizontal","horizontal","horizontalPoints","lineItemProps","VerticalGridLines","_props$vertical","vertical","verticalPoints","HorizontalStripes","horizontalFill","_props$horizontal2","roundedSortedHorizontalPoints","lastStripe","colorIndex","VerticalStripes","_props$vertical2","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","defaultHorizontalCoordinatesGenerator","CartesianGrid","_props$stroke","_props$fill","_props$horizontal3","_props$horizontalFill","_props$vertical3","_props$verticalFill","propsIncludingDefaults","horizontalValues","verticalValues","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","isVerticalValues","_generatorResult","Line","lines","lineLength","next","remainLength","restLength","remainLines","emptyLines","curveDom","clipDot","customDotProps","dots","dotsProps","curveProps","strokeDasharray","animateNewValues","prevPoints","prevPointsDiffFactor","prevPointIndex","_interpolatorX","_interpolatorY","curLength","currentStrokeDasharray","hasSinglePoint","_ref2$r","_ref2$strokeWidth","strokeWidth","_ref3$clipDot","dotSize","linesUnit","dotItem","_Area","Area","areaProps","startY","endY","isRange","prevBaseLine","stepPoints","stepBaseLine","_interpolator","chartBaseValue","itemBaseValue","domainMax","domainMin","hasStack","isHorizontalLayout","isBreakPoint","XAxisImpl","axisOptions","XAxis","React.Component","YAxisImpl","YAxis","detectReferenceElementsDomain","specifiedTicks","areas","idKey","valueKey","finalDomain","key1","key2","value2","has","Events","EE","addListener","emitter","listener","evt","clearEvent","EventEmitter","events","handlers","ee","listeners","a2","a3","a4","a5","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","_window","_window2","_this$container$getBo","scrollOffsetX","scrollOffsetY","pageX","pageY","isDomainSpecifiedByUser","domainStart","domainEnd","getCursorRectangle","activeCoordinate","tooltipAxisBandSize","getRadialCursorPoints","getCursorPoints","innerPoint","outerPoint","Cursor","_element$props$cursor","_defaultProps","element","tooltipEventType","activePayload","activeTooltipIndex","elementPropsCursor","cursorComp","_getRadialCursorPoint","cursorProps","ORIENT_MAP","FULL_WIDTH_AND_HEIGHT","originCoordinate","renderAsIs","calculateTooltipPos","rangeObj","getActiveCoordinate","tooltipTicks","_angle","_radius","getDisplayedData","graphicalItems","dataEndIndex","itemsData","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","_child$props$data","getTooltipData","rangeData","getAxisMapByAxes","axes","axisIdKey","stackOffset","isCategorical","_childProps$domain2","childProps","allowDuplicatedCategory","includeHidden","itemAxisId","categoricalDomain","defaultDomain","_childProps$domain","childDomain","duplicate","errorBarsDomain","_defaultProps2","_defaultProps3","itemHide","axisDomain","isDomainValid","getAxisMapByItems","Axis","_defaultProps4","_defaultProps5","getAxisMap","_ref4$axisType","AxisComp","tooltipTicksGenerator","createDefaultState","defaultShowTooltip","brushItem","hasGraphicalBarItem","getAxisNameByLayout","calculateOffset","prevLegendBBox","_ref5$xAxisMap","_ref5$yAxisMap","offsetH","offsetV","brushBottom","offsetWidth","offsetHeight","getCartesianAxisSize","axisObj","axisName","generateCategoricalChart","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","currentState","globalMaxBarSize","_getAxisNameByLayout","numericAxisName","cateAxisName","formattedItems","childMaxBarSize","axisObjInitialValue","cateAxis","cateTicks","itemIsBar","_getBandSizeOfAxis","barBandSize","composedFn","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","cateAxisMap","ticksObj","CategoricalChartWrapper","_props$id","_props$throttleDelay","cId","_ref9","mouse","_nextState","onMouseEnter","onMouseMove","onMouseLeave","eventName","_mouse","_nextState2","onClick","onMouseDown","_nextState3","onMouseUp","_nextState4","onDoubleClick","_nextState5","onContextMenu","_nextState6","syncMethod","chartX","chartY","validateChartX","validateChartY","_element$props$active","isTooltipActive","elementDefaultProps","axisOption","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","_tooltipItem$props$ac","tooltipItem","_this$state6","_this$state7","_element$props2","_element$props2$xAxis","_element$props2$yAxis","_ref10","activePoint","basePoint","childIndex","itemItemProps","activeDot","_this$state8","_item$props","activeShape","hasActive","itemEvents","findWithPayload","_this$getItemByXY","_ref11","_ref11$graphicalItem","_ref11$graphicalItem$","xyItem","_this$props$margin$le","_this$props$margin$to","tooltipElem","defaultIndex","independentAxisCoord","dependentAxisCoord","isHorizontal","scatterPlotElement","_ref12","_this$props$margin$le2","_this$props$margin$to2","eventType","boundingRect","containerOffset","_this$state9","toolTipData","xScale","yScale","scaledX","scaledY","isInRange","_this$state10","tooltipEvents","outerEvents","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$yAxisMap","chartXY","_this$state11","itemDisplayName","activeBarItem","_activeBarItem","compact","_this$props$tabIndex","_this$props$role","defaultState","_defaultState","keepFromPrevState","updatesToState","_brush$props$startInd","_brush$props","_brush$props$endIndex","_brush$props2","brush","hasDifferentStartOrEndIndex","hasGlobalData","newUpdateId","CategoricalChart","AreaChart","pivot","totals","sessionIds","pt","sid","fmtTs","ts","fmtTokens","gradId","sessionId","SessionsMemoryChart","jsx","jsxs","HEADERS","fmtAge","ms","pctClass","pct","fmtPct","fmtWindow","tokens","window","Sparkline","stepX","segments","indexSeries","ActiveSessionsTable","sessions","seriesById","srs","sparkPts","isSessionSample","WINDOWS","SummaryTiles","combinedTokens","maxWindow","combinedPct","SessionsTab","minutes","setMinutes","sessionsData","sessionsErr","refetchSessions","useApi","fetchSessions","timeseriesData","timeseriesErr","refetchTimeseries","fetchSessionTimeseries","useSSE","sampleEvents","lastSampleTs","windowLabel","Fragment"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383]} \ No newline at end of file +{"version":3,"file":"SessionsTab-DfxFUEFC.js","sources":["../../node_modules/clsx/dist/clsx.mjs","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../../node_modules/lodash/isNil.js","../../node_modules/lodash/isString.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/index.js","../../node_modules/lodash/isNumber.js","../../node_modules/lodash/isNaN.js","../../node_modules/recharts/es6/util/DataUtils.js","../../node_modules/recharts/es6/util/ShallowEqual.js","../../node_modules/recharts/es6/util/types.js","../../node_modules/recharts/es6/util/ReactUtils.js","../../node_modules/recharts/es6/container/Surface.js","../../node_modules/recharts/es6/container/Layer.js","../../node_modules/recharts/es6/util/LogUtils.js","../../node_modules/lodash/_baseSlice.js","../../node_modules/lodash/_castSlice.js","../../node_modules/lodash/_hasUnicode.js","../../node_modules/lodash/_asciiToArray.js","../../node_modules/lodash/_unicodeToArray.js","../../node_modules/lodash/_stringToArray.js","../../node_modules/lodash/_createCaseFirst.js","../../node_modules/lodash/upperFirst.js","../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-path/src/path.js","../../node_modules/d3-shape/src/path.js","../../node_modules/d3-shape/src/array.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-shape/src/area.js","../../node_modules/d3-shape/src/curve/bump.js","../../node_modules/d3-shape/src/symbol/circle.js","../../node_modules/d3-shape/src/symbol/cross.js","../../node_modules/d3-shape/src/symbol/diamond.js","../../node_modules/d3-shape/src/symbol/square.js","../../node_modules/d3-shape/src/symbol/star.js","../../node_modules/d3-shape/src/symbol/triangle.js","../../node_modules/d3-shape/src/symbol/wye.js","../../node_modules/d3-shape/src/symbol.js","../../node_modules/d3-shape/src/noop.js","../../node_modules/d3-shape/src/curve/basis.js","../../node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/d3-shape/src/curve/monotone.js","../../node_modules/d3-shape/src/curve/natural.js","../../node_modules/d3-shape/src/curve/step.js","../../node_modules/d3-shape/src/offset/none.js","../../node_modules/d3-shape/src/order/none.js","../../node_modules/d3-shape/src/stack.js","../../node_modules/d3-shape/src/offset/expand.js","../../node_modules/d3-shape/src/offset/silhouette.js","../../node_modules/d3-shape/src/offset/wiggle.js","../../node_modules/recharts/es6/shape/Symbols.js","../../node_modules/recharts/es6/component/DefaultLegendContent.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/_baseIsArguments.js","../../node_modules/lodash/isArguments.js","../../node_modules/lodash/stubFalse.js","../../node_modules/lodash/isBuffer.js","../../node_modules/lodash/_isIndex.js","../../node_modules/lodash/isLength.js","../../node_modules/lodash/_baseIsTypedArray.js","../../node_modules/lodash/_baseUnary.js","../../node_modules/lodash/_nodeUtil.js","../../node_modules/lodash/isTypedArray.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/_isPrototype.js","../../node_modules/lodash/_overArg.js","../../node_modules/lodash/_nativeKeys.js","../../node_modules/lodash/_baseKeys.js","../../node_modules/lodash/isArrayLike.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_DataView.js","../../node_modules/lodash/_Promise.js","../../node_modules/lodash/_Set.js","../../node_modules/lodash/_WeakMap.js","../../node_modules/lodash/_getTag.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/identity.js","../../node_modules/lodash/_baseProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseIteratee.js","../../node_modules/lodash/_baseFindIndex.js","../../node_modules/lodash/_baseIsNaN.js","../../node_modules/lodash/_strictIndexOf.js","../../node_modules/lodash/_baseIndexOf.js","../../node_modules/lodash/_arrayIncludes.js","../../node_modules/lodash/_arrayIncludesWith.js","../../node_modules/lodash/noop.js","../../node_modules/lodash/_createSet.js","../../node_modules/lodash/_baseUniq.js","../../node_modules/lodash/uniqBy.js","../../node_modules/recharts/es6/util/payload/getUniqPayload.js","../../node_modules/recharts/es6/component/Legend.js","../../node_modules/lodash/_isFlattenable.js","../../node_modules/lodash/_baseFlatten.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_baseForOwn.js","../../node_modules/lodash/_createBaseEach.js","../../node_modules/lodash/_baseEach.js","../../node_modules/lodash/_baseMap.js","../../node_modules/lodash/_baseSortBy.js","../../node_modules/lodash/_compareAscending.js","../../node_modules/lodash/_compareMultiple.js","../../node_modules/lodash/_baseOrderBy.js","../../node_modules/lodash/_apply.js","../../node_modules/lodash/_overRest.js","../../node_modules/lodash/constant.js","../../node_modules/lodash/_defineProperty.js","../../node_modules/lodash/_baseSetToString.js","../../node_modules/lodash/_shortOut.js","../../node_modules/lodash/_setToString.js","../../node_modules/lodash/_baseRest.js","../../node_modules/lodash/_isIterateeCall.js","../../node_modules/lodash/sortBy.js","../../node_modules/recharts/es6/component/DefaultTooltipContent.js","../../node_modules/recharts/es6/util/tooltip/translate.js","../../node_modules/recharts/es6/component/TooltipBoundingBox.js","../../node_modules/recharts/es6/util/Global.js","../../node_modules/recharts/es6/component/Tooltip.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/throttle.js","../../node_modules/recharts/es6/component/ResponsiveContainer.js","../../node_modules/recharts/es6/component/Cell.js","../../node_modules/recharts/es6/util/DOMUtils.js","../../node_modules/recharts/es6/util/ReduceCSSCalc.js","../../node_modules/recharts/es6/component/Text.js","../../node_modules/d3-array/src/ascending.js","../../node_modules/d3-array/src/descending.js","../../node_modules/d3-array/src/bisector.js","../../node_modules/d3-array/src/number.js","../../node_modules/d3-array/src/bisect.js","../../node_modules/internmap/src/index.js","../../node_modules/d3-array/src/sort.js","../../node_modules/d3-array/src/ticks.js","../../node_modules/d3-array/src/max.js","../../node_modules/d3-array/src/min.js","../../node_modules/d3-array/src/quickselect.js","../../node_modules/d3-array/src/quantile.js","../../node_modules/d3-array/src/range.js","../../node_modules/d3-scale/src/init.js","../../node_modules/d3-scale/src/ordinal.js","../../node_modules/d3-scale/src/band.js","../../node_modules/d3-color/src/define.js","../../node_modules/d3-color/src/color.js","../../node_modules/d3-interpolate/src/constant.js","../../node_modules/d3-interpolate/src/color.js","../../node_modules/d3-interpolate/src/rgb.js","../../node_modules/d3-interpolate/src/numberArray.js","../../node_modules/d3-interpolate/src/array.js","../../node_modules/d3-interpolate/src/date.js","../../node_modules/d3-interpolate/src/number.js","../../node_modules/d3-interpolate/src/object.js","../../node_modules/d3-interpolate/src/string.js","../../node_modules/d3-interpolate/src/value.js","../../node_modules/d3-interpolate/src/round.js","../../node_modules/d3-interpolate/src/piecewise.js","../../node_modules/d3-scale/src/constant.js","../../node_modules/d3-scale/src/number.js","../../node_modules/d3-scale/src/continuous.js","../../node_modules/d3-format/src/formatDecimal.js","../../node_modules/d3-format/src/exponent.js","../../node_modules/d3-format/src/formatGroup.js","../../node_modules/d3-format/src/formatNumerals.js","../../node_modules/d3-format/src/formatSpecifier.js","../../node_modules/d3-format/src/formatTrim.js","../../node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/d3-format/src/formatRounded.js","../../node_modules/d3-format/src/formatTypes.js","../../node_modules/d3-format/src/identity.js","../../node_modules/d3-format/src/locale.js","../../node_modules/d3-format/src/defaultLocale.js","../../node_modules/d3-format/src/precisionFixed.js","../../node_modules/d3-format/src/precisionPrefix.js","../../node_modules/d3-format/src/precisionRound.js","../../node_modules/d3-scale/src/tickFormat.js","../../node_modules/d3-scale/src/linear.js","../../node_modules/d3-scale/src/identity.js","../../node_modules/d3-scale/src/nice.js","../../node_modules/d3-scale/src/log.js","../../node_modules/d3-scale/src/symlog.js","../../node_modules/d3-scale/src/pow.js","../../node_modules/d3-scale/src/radial.js","../../node_modules/d3-scale/src/quantile.js","../../node_modules/d3-scale/src/quantize.js","../../node_modules/d3-scale/src/threshold.js","../../node_modules/d3-time/src/interval.js","../../node_modules/d3-time/src/millisecond.js","../../node_modules/d3-time/src/duration.js","../../node_modules/d3-time/src/second.js","../../node_modules/d3-time/src/minute.js","../../node_modules/d3-time/src/hour.js","../../node_modules/d3-time/src/day.js","../../node_modules/d3-time/src/week.js","../../node_modules/d3-time/src/month.js","../../node_modules/d3-time/src/year.js","../../node_modules/d3-time/src/ticks.js","../../node_modules/d3-time-format/src/locale.js","../../node_modules/d3-time-format/src/defaultLocale.js","../../node_modules/d3-scale/src/time.js","../../node_modules/d3-scale/src/utcTime.js","../../node_modules/d3-scale/src/sequential.js","../../node_modules/d3-scale/src/sequentialQuantile.js","../../node_modules/d3-scale/src/diverging.js","../../node_modules/lodash/_baseExtremum.js","../../node_modules/lodash/_baseGt.js","../../node_modules/lodash/max.js","../../node_modules/lodash/_baseLt.js","../../node_modules/lodash/min.js","../../node_modules/lodash/map.js","../../node_modules/lodash/flatMap.js","../../node_modules/lodash/isEqual.js","../../node_modules/decimal.js-light/decimal.mjs","../../node_modules/recharts-scale/es6/util/utils.js","../../node_modules/recharts-scale/es6/util/arithmetic.js","../../node_modules/recharts-scale/es6/getNiceTickValues.js","../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../node_modules/recharts/es6/cartesian/ErrorBar.js","../../node_modules/recharts/es6/util/getLegendProps.js","../../node_modules/recharts/es6/util/ChartUtils.js","../../node_modules/recharts/es6/util/PolarUtils.js","../../node_modules/recharts/es6/component/Label.js","../../node_modules/lodash/last.js","../../node_modules/recharts/es6/component/LabelList.js","../../node_modules/recharts/es6/shape/Sector.js","../../node_modules/recharts/es6/shape/Curve.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/fast-equals/dist/es/index.mjs","../../node_modules/react-smooth/es6/setRafTimeout.js","../../node_modules/react-smooth/es6/AnimateManager.js","../../node_modules/react-smooth/es6/util.js","../../node_modules/react-smooth/es6/easing.js","../../node_modules/react-smooth/es6/configUpdate.js","../../node_modules/react-smooth/es6/Animate.js","../../node_modules/recharts/es6/shape/Rectangle.js","../../node_modules/recharts/es6/shape/Dot.js","../../node_modules/recharts/es6/shape/Cross.js","../../node_modules/lodash/_getPrototype.js","../../node_modules/lodash/isPlainObject.js","../../node_modules/lodash/isBoolean.js","../../node_modules/recharts/es6/shape/Trapezoid.js","../../node_modules/recharts/es6/util/ActiveShapeUtils.js","../../node_modules/lodash/_baseRange.js","../../node_modules/lodash/toFinite.js","../../node_modules/lodash/_createRange.js","../../node_modules/lodash/range.js","../../node_modules/recharts/es6/util/CssPrefixUtils.js","../../node_modules/recharts/es6/cartesian/Brush.js","../../node_modules/lodash/_baseSome.js","../../node_modules/lodash/some.js","../../node_modules/recharts/es6/util/IfOverflowMatches.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/lodash/mapValues.js","../../node_modules/lodash/_arrayEvery.js","../../node_modules/lodash/_baseEvery.js","../../node_modules/lodash/every.js","../../node_modules/recharts/es6/util/BarUtils.js","../../node_modules/recharts/es6/cartesian/Bar.js","../../node_modules/recharts/es6/util/CartesianUtils.js","../../node_modules/lodash/_createFind.js","../../node_modules/lodash/toInteger.js","../../node_modules/lodash/findIndex.js","../../node_modules/lodash/find.js","../../node_modules/recharts/es6/util/calculateViewBox.js","../../node_modules/recharts/es6/context/chartLayoutContext.js","../../node_modules/recharts/es6/cartesian/ReferenceLine.js","../../node_modules/recharts/es6/cartesian/ReferenceDot.js","../../node_modules/recharts/es6/cartesian/ReferenceArea.js","../../node_modules/recharts/es6/util/getEveryNthWithCondition.js","../../node_modules/recharts/es6/util/TickUtils.js","../../node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../../node_modules/recharts/es6/cartesian/getTicks.js","../../node_modules/recharts/es6/cartesian/CartesianAxis.js","../../node_modules/recharts/es6/cartesian/CartesianGrid.js","../../node_modules/recharts/es6/cartesian/Line.js","../../node_modules/recharts/es6/cartesian/Area.js","../../node_modules/recharts/es6/cartesian/XAxis.js","../../node_modules/recharts/es6/cartesian/YAxis.js","../../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../../node_modules/eventemitter3/index.js","../../node_modules/recharts/es6/util/Events.js","../../node_modules/recharts/es6/chart/AccessibilityManager.js","../../node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../../node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../../node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../../node_modules/recharts/es6/util/cursor/getCursorPoints.js","../../node_modules/recharts/es6/component/Cursor.js","../../node_modules/recharts/es6/chart/generateCategoricalChart.js","../../node_modules/recharts/es6/chart/AreaChart.js","../../src/components/SessionsMemoryChart.tsx","../../src/components/ActiveSessionsTable.tsx","../../src/tabs/SessionsTab.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","import isString from 'lodash/isString';\nimport isNan from 'lodash/isNaN';\nimport get from 'lodash/get';\nimport lodashIsNumber from 'lodash/isNumber';\nimport isNil from 'lodash/isNil';\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return lodashIsNumber(value) && !isNan(value);\n};\nexport var isNullish = function isNullish(value) {\n return isNil(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};\n\n/**\n * Compare values.\n *\n * This function is intended to be passed to `Array.prototype.sort()`. It properly compares generic homogeneous arrays that are either `string[]`,\n * `number[]`, or `Date[]`. When comparing heterogeneous arrays or homogeneous arrays of other types, it will attempt to compare items properly but\n * will fall back to string comparison for mismatched or unsupported types.\n *\n * For some background, `Array.prototype.sort()`'s default comparator coerces each of the array's items into a string and compares the strings. This\n * often leads to undesirable behavior, especially with numerical items.\n *\n * @param {unknown} a The first item to compare\n * @param {unknown} b The second item to compare\n * @return {number} A negative number if a < b, a positive number if a > b, 0 if equal\n */\nexport var compareValues = function compareValues(a, b) {\n if (isNumber(a) && isNumber(b)) {\n return a - b;\n }\n if (isString(a) && isString(b)) {\n return a.localeCompare(b);\n }\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() - b.getTime();\n }\n return String(a).localeCompare(String(b));\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks are always shown.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport get from 'lodash/get';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart',\n contextmenu: 'onContextMenu',\n dblclick: 'onDoubleClick'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\nexport var hasClipDot = function hasClipDot(dot) {\n return dot && _typeof(dot) === 'object' && 'clipDot' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return key.startsWith('data-') || !isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(Array.isArray(nextChildren) ? nextChildren[0] : nextChildren, Array.isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (Array.isArray(nextChild) || Array.isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (isNil(nextChild) && isNil(prevChild)) {\n return true;\n }\n if (!isNil(nextChild) && !isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _inherits(DefaultLegendContent, _PureComponent);\n return _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","import uniqBy from 'lodash/uniqBy';\nimport isFunction from 'lodash/isFunction';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (isFunction(option)) {\n return uniqBy(payload, option);\n }\n return payload;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_this, \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _inherits(Legend, _PureComponent);\n return _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n box.height = this.wrapperNode.offsetHeight;\n box.width = this.wrapperNode.offsetWidth;\n return box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var box = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var _this$defaultProps$it = _objectSpread(_objectSpread({}, this.defaultProps), item.props),\n layout = _this$defaultProps$it.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n };\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_this, \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n },\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n _defineProperty(_this, \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _inherits(TooltipBoundingBox, _PureComponent);\n return _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.state.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.state.lastBoundingBox.height) > EPSILON) {\n this.setState({\n lastBoundingBox: {\n width: box.width,\n height: box.height\n }\n });\n }\n } else if (this.state.lastBoundingBox.width !== -1 || this.state.lastBoundingBox.height !== -1) {\n this.setState({\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: this.state.lastBoundingBox,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n}(PureComponent);","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _inherits(Tooltip, _PureComponent);\n return _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport clsx from 'clsx';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useMemo, useCallback } from 'react';\nimport throttle from 'lodash/throttle';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { getDisplayName } from '../util/ReactUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var containerRef = useRef(null);\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, function () {\n return Object.defineProperty(containerRef.current, 'current', {\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The usage of ref.current.current is deprecated and will no longer be supported.');\n return containerRef.current;\n },\n configurable: true\n });\n });\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback(function (newWidth, newHeight) {\n setSizes(function (prevState) {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(function () {\n var callback = function callback(entries) {\n var _onResizeRef$current;\n var _entries$0$contentRec = entries[0].contentRect,\n containerWidth = _entries$0$contentRec.width,\n containerHeight = _entries$0$contentRec.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return function () {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n var isCharts = !Array.isArray(children) && getDisplayName(children.type).endsWith('Chart');\n return React.Children.map(children, function (child) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n return /*#__PURE__*/cloneElement(child, _objectSpread({\n width: calculatedWidth,\n height: calculatedHeight\n }, isCharts ? {\n style: _objectSpread({\n height: '100%',\n width: '100%',\n maxHeight: calculatedHeight,\n maxWidth: calculatedWidth\n }, child.props.style)\n } : {}));\n }\n return child;\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n }),\n ref: containerRef\n }, chartContent);\n});","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nfunction removeInvalidKeys(obj) {\n var copyObj = _objectSpread({}, obj);\n Object.keys(copyObj).forEach(function (key) {\n if (!copyObj[key]) {\n delete copyObj[key];\n }\n });\n return copyObj;\n}\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var copyStyle = removeInvalidKeys(style);\n var cacheKey = JSON.stringify({\n text: text,\n copyStyle: copyStyle\n });\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), copyStyle);\n Object.assign(measurementSpan.style, measurementSpanStyle);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(rect) {\n return {\n top: rect.top + window.scrollY - document.documentElement.clientTop,\n left: rect.left + window.scrollX - document.documentElement.clientLeft\n };\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n return _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return (\n /*#__PURE__*/\n // duplicate words will cause duplicate keys\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: \"\".concat(words, \"-\").concat(index)\n }, words)\n );\n }));\n};","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n// ------------------------------------ EDITABLE DEFAULTS ------------------------------------- //\r\n\r\n\r\n// The limit on the value of `precision`, and on the value of the first argument to\r\n// `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\nvar MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n defaults = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n// ------------------------------------ END OF EDITABLE DEFAULTS -------------------------------- //\r\n\r\n\r\n Decimal,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n};\r\n\r\n\r\n/*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\nP.exponent = function () {\r\n return getBase10Exponent(this);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return this.s === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = P.valueOf = P.val = P.toJSON = P[Symbol.for('nodejs.util.inspect.custom')] = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\nfunction add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\nfunction exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\nfunction ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n}\r\n\r\n\r\nfunction toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = clone(defaults);\r\n\r\n// Internal constant.\r\nONE = new Decimal(1);\r\n\r\nexport default Decimal;\r\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ErrorBar = /*#__PURE__*/function (_React$Component) {\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n return _callSuper(this, ErrorBar, arguments);\n }\n _inherits(ErrorBar, _React$Component);\n return _createClass(ErrorBar, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, _excluded);\n var svgProps = filterProps(others, false);\n !!(this.props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n }\n }]);\n}(React.Component);\n_defineProperty(ErrorBar, \"defaultProps\", {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n});\n_defineProperty(ErrorBar, \"displayName\", 'ErrorBar');","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Legend } from '../component/Legend';\nimport { getMainColorOfGraphicItem } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formattedGraphicalItems = _ref.formattedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendDefaultProps = Legend.defaultProps;\n var legendProps = legendDefaultProps !== undefined ? _objectSpread(_objectSpread({}, legendDefaultProps), legendItem.props) : {};\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : {};\n var dataKey = itemProps.dataKey,\n name = itemProps.name,\n legendType = itemProps.legendType,\n hide = itemProps.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendProps.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n // @ts-expect-error property strokeDasharray is required in Payload but optional in props\n payload: itemProps\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendProps), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _item$type;\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var defaultedProps = (_item$type = item.type) !== null && _item$type !== void 0 && _item$type.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stroke = defaultedProps.stroke,\n fill = defaultedProps.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var barItemDefaultProps = barItems[0].type.defaultProps;\n var barItemProps = barItemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, barItemDefaultProps), barItems[0].props) : barItems[0].props;\n var selfSize = barItemProps.barSize;\n var cateId = barItemProps[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array} sizeList Sizes of all groups\n * @param {number} maxBarSize The maximum size of each bar\n * @return {Array} The size and offset of each bar\n */\nexport var getBarPosition = function getBarPosition(_ref3) {\n var barGap = _ref3.barGap,\n barCategoryGap = _ref3.barCategoryGap,\n bandSize = _ref3.bandSize,\n _ref3$sizeList = _ref3.sizeList,\n sizeList = _ref3$sizeList === void 0 ? [] : _ref3$sizeList,\n maxBarSize = _ref3.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n // @ts-expect-error the type check above does not check for type number explicitly\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newPosition = {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n // @ts-expect-error the type check above does not check for type number explicitly\n size: useFull ? fullBarSize : entry.barSize\n }\n };\n var newRes = [].concat(_toConsumableArray(res), [newPosition]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, initialValue);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, _unused, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n if (legendProps) {\n var _ref4 = legendBox || {},\n boxWidth = _ref4.width,\n boxHeight = _ref4.height;\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, offset[align] + (boxWidth || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, offset[verticalAlign] + (boxHeight || 0)));\n }\n }\n return offset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey);\n if (isNil(entryValue)) return result;\n var mainValue = Array.isArray(entryValue) ? [min(entryValue), max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(Array.isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(Array.isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(\n // @ts-expect-error if (type === number) means that the domain is numerical type\n // - but this link is missing in the type definition\n function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n // @ts-expect-error Date cannot index an object\n if (!tag[entry[i]]) {\n // @ts-expect-error Date cannot index an object\n tag[entry[i]] = true;\n\n // @ts-expect-error Date cannot index an object\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimun value of axis\n * @param {Number} maxValue The maximun value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, minValue, maxValue, syncWithTicks) {\n if (syncWithTicks) {\n return ticks.map(function (entry) {\n return entry.coordinate;\n });\n }\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !isNan(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar handlerWeakMap = new WeakMap();\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, childHandler) {\n if (typeof childHandler !== 'function') {\n return defaultHandler;\n }\n if (!handlerWeakMap.has(defaultHandler)) {\n handlerWeakMap.set(defaultHandler, new WeakMap());\n }\n var childWeakMap = handlerWeakMap.get(defaultHandler);\n if (childWeakMap.has(childHandler)) {\n return childWeakMap.get(childHandler);\n }\n var combineHandler = function combineHandler() {\n defaultHandler.apply(void 0, arguments);\n childHandler.apply(void 0, arguments);\n };\n childWeakMap.set(childHandler, combineHandler);\n return combineHandler;\n};\n\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {object} The scale function and resolved name\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (isString(scale)) {\n var name = \"scale\".concat(upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param {Array} value input that will be truncated\n * @param {Array} domain boundaries\n * @returns {Array} tuple of two numbers\n */\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack()\n // @ts-expect-error stack.keys type wants an array of strings, but we provide array of DataKeys\n .keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var parentStackGroupsInitialValue = {};\n var stackGroups = items.reduce(function (result, item) {\n var _item$type2;\n var defaultedProps = (_item$type2 = item.type) !== null && _item$type2 !== void 0 && _item$type2.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId,\n hide = defaultedProps.hide;\n if (hide) {\n return result;\n }\n var axisId = defaultedProps[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, parentStackGroupsInitialValue);\n var axisStackGroupsInitialValue = {};\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n var stackGroupsInitialValue = {};\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, stackGroupsInitialValue);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, axisStackGroupsInitialValue);\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([min(tickValues), max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport function getCateCoordinateOfLine(_ref5) {\n var axis = _ref5.axis,\n ticks = _ref5.ticks,\n bandSize = _ref5.bandSize,\n entry = _ref5.entry,\n index = _ref5.index,\n dataKey = _ref5.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n offset = _ref6.offset,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref7) {\n var numericAxis = _ref7.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var _item$type3;\n var defaultedProps = (_item$type3 = item.type) !== null && _item$type3 !== void 0 && _item$type3.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group) {\n var itemIndex = group.items.indexOf(item);\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [min(entry.concat([result[0]]).filter(isNumber)), max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!Array.isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n // @ts-expect-error we need to rethink scale type\n if (axis && axis.scale && axis.scale.bandwidth) {\n // @ts-expect-error we need to rethink scale type\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis ReactElement\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (isEqual(specifiedDomain, get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var defaultedProps = graphicalItem.type.defaultProps ? _objectSpread(_objectSpread({}, graphicalItem.type.defaultProps), graphicalItem.props) : graphicalItem.props;\n var dataKey = defaultedProps.dataKey,\n name = defaultedProps.name,\n unit = defaultedProps.unit,\n formatter = defaultedProps.formatter,\n tooltipType = defaultedProps.tooltipType,\n chartType = defaultedProps.chartType,\n hide = defaultedProps.hide;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem, false)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType,\n hide: hide\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport isNil from 'lodash/isNil';\nimport { isValidElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};\nexport var getTickClassName = function getTickClassName(tick) {\n return ! /*#__PURE__*/isValidElement(tick) && !isFunction(tick) && typeof tick !== 'boolean' ? tick.className : '';\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport * as React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","const { getOwnPropertyNames, getOwnPropertySymbols } = Object;\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst { hasOwnProperty } = Object.prototype;\n/**\n * Combine two comparators into a single comparators.\n */\nfunction combineComparators(comparatorA, comparatorB) {\n return function isEqual(a, b, state) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nfunction createIsCircular(areItemsEqual) {\n return function isCircular(a, b, state) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n const { cache } = state;\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n cache.set(a, b);\n cache.set(b, a);\n const result = areItemsEqual(a, b, state);\n cache.delete(a);\n cache.delete(b);\n return result;\n };\n}\n/**\n * Get the `@@toStringTag` of the value, if it exists.\n */\nfunction getShortTag(value) {\n return value != null ? value[Symbol.toStringTag] : undefined;\n}\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nfunction getStrictProperties(object) {\n return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));\n}\n/**\n * Whether the object contains the property passed as an own property.\n */\nconst hasOwn = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nObject.hasOwn || ((object, property) => hasOwnProperty.call(object, property));\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nfunction sameValueZeroEqual(a, b) {\n return a === b || (!a && !b && a !== a && b !== b);\n}\n\nconst PREACT_VNODE = '__v';\nconst PREACT_OWNER = '__o';\nconst REACT_OWNER = '_owner';\nconst { getOwnPropertyDescriptor, keys } = Object;\n/**\n * Whether the array buffers are equal in value.\n */\nfunction areArrayBuffersEqual(a, b) {\n return a.byteLength === b.byteLength && areTypedArraysEqual(new Uint8Array(a), new Uint8Array(b));\n}\n/**\n * Whether the arrays are equal in value.\n */\nfunction areArraysEqual(a, b, state) {\n let index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the dataviews are equal in value.\n */\nfunction areDataViewsEqual(a, b) {\n return (a.byteLength === b.byteLength\n && areTypedArraysEqual(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)));\n}\n/**\n * Whether the dates passed are equal in value.\n */\nfunction areDatesEqual(a, b) {\n return sameValueZeroEqual(a.getTime(), b.getTime());\n}\n/**\n * Whether the errors passed are equal in value.\n */\nfunction areErrorsEqual(a, b) {\n return a.name === b.name && a.message === b.message && a.cause === b.cause && a.stack === b.stack;\n}\n/**\n * Whether the functions passed are equal in value.\n */\nfunction areFunctionsEqual(a, b) {\n return a === b;\n}\n/**\n * Whether the `Map`s are equal in value.\n */\nfunction areMapsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Array(size);\n const aIterable = a.entries();\n let aResult;\n let bResult;\n let index = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.entries();\n let hasMatch = false;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (matchedIndices[matchIndex]) {\n matchIndex++;\n continue;\n }\n const aEntry = aResult.value;\n const bEntry = bResult.value;\n if (state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state)\n && state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = true;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n index++;\n }\n return true;\n}\n/**\n * Whether the numbers are equal in value.\n */\nconst areNumbersEqual = sameValueZeroEqual;\n/**\n * Whether the objects are equal in value.\n */\nfunction areObjectsEqual(a, b, state) {\n const properties = keys(a);\n let index = properties.length;\n if (keys(b).length !== index) {\n return false;\n }\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n if (!isPropertyEqual(a, b, state, properties[index])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nfunction areObjectsEqualStrict(a, b, state) {\n const properties = getStrictProperties(a);\n let index = properties.length;\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n let property;\n let descriptorA;\n let descriptorB;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (!isPropertyEqual(a, b, state, property)) {\n return false;\n }\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n if ((descriptorA || descriptorB)\n && (!descriptorA\n || !descriptorB\n || descriptorA.configurable !== descriptorB.configurable\n || descriptorA.enumerable !== descriptorB.enumerable\n || descriptorA.writable !== descriptorB.writable)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nfunction arePrimitiveWrappersEqual(a, b) {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n/**\n * Whether the regexps passed are equal in value.\n */\nfunction areRegExpsEqual(a, b) {\n return a.source === b.source && a.flags === b.flags;\n}\n/**\n * Whether the `Set`s are equal in value.\n */\nfunction areSetsEqual(a, b, state) {\n const size = a.size;\n if (size !== b.size) {\n return false;\n }\n if (!size) {\n return true;\n }\n const matchedIndices = new Array(size);\n const aIterable = a.values();\n let aResult;\n let bResult;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n const bIterable = b.values();\n let hasMatch = false;\n let matchIndex = 0;\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (!matchedIndices[matchIndex]\n && state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state)) {\n hasMatch = matchedIndices[matchIndex] = true;\n break;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the TypedArray instances are equal in value.\n */\nfunction areTypedArraysEqual(a, b) {\n let index = a.byteLength;\n if (b.byteLength !== index || a.byteOffset !== b.byteOffset) {\n return false;\n }\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the URL instances are equal in value.\n */\nfunction areUrlsEqual(a, b) {\n return (a.hostname === b.hostname\n && a.pathname === b.pathname\n && a.protocol === b.protocol\n && a.port === b.port\n && a.hash === b.hash\n && a.username === b.username\n && a.password === b.password);\n}\nfunction isPropertyEqual(a, b, state, property) {\n if ((property === REACT_OWNER || property === PREACT_OWNER || property === PREACT_VNODE)\n && (a.$$typeof || b.$$typeof)) {\n return true;\n }\n return hasOwn(b, property) && state.equals(a[property], b[property], property, property, a, b, state);\n}\n\nconst ARRAY_BUFFER_TAG = '[object ArrayBuffer]';\nconst ARGUMENTS_TAG = '[object Arguments]';\nconst BOOLEAN_TAG = '[object Boolean]';\nconst DATA_VIEW_TAG = '[object DataView]';\nconst DATE_TAG = '[object Date]';\nconst ERROR_TAG = '[object Error]';\nconst MAP_TAG = '[object Map]';\nconst NUMBER_TAG = '[object Number]';\nconst OBJECT_TAG = '[object Object]';\nconst REG_EXP_TAG = '[object RegExp]';\nconst SET_TAG = '[object Set]';\nconst STRING_TAG = '[object String]';\nconst TYPED_ARRAY_TAGS = {\n '[object Int8Array]': true,\n '[object Uint8Array]': true,\n '[object Uint8ClampedArray]': true,\n '[object Int16Array]': true,\n '[object Uint16Array]': true,\n '[object Int32Array]': true,\n '[object Uint32Array]': true,\n '[object Float16Array]': true,\n '[object Float32Array]': true,\n '[object Float64Array]': true,\n '[object BigInt64Array]': true,\n '[object BigUint64Array]': true,\n};\nconst URL_TAG = '[object URL]';\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst toString = Object.prototype.toString;\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nfunction createEqualityComparator({ areArrayBuffersEqual, areArraysEqual, areDataViewsEqual, areDatesEqual, areErrorsEqual, areFunctionsEqual, areMapsEqual, areNumbersEqual, areObjectsEqual, arePrimitiveWrappersEqual, areRegExpsEqual, areSetsEqual, areTypedArraysEqual, areUrlsEqual, unknownTagComparators, }) {\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a, b, state) {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n // If either of the items are nullish and fail the strictly equal check\n // above, then they must be unequal.\n if (a == null || b == null) {\n return false;\n }\n const type = typeof a;\n if (type !== typeof b) {\n return false;\n }\n if (type !== 'object') {\n if (type === 'number') {\n return areNumbersEqual(a, b, state);\n }\n if (type === 'function') {\n return areFunctionsEqual(a, b, state);\n }\n // If a primitive value that is not strictly equal, it must be unequal.\n return false;\n }\n const constructor = a.constructor;\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid capturing the string tag.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` check.\n if (Array.isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is subclassing a native class, it will be handled\n // with the string tag comparison.\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n // Since this is a custom object, capture the string tag to determing its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n const tag = toString.call(a);\n if (tag === DATE_TAG) {\n return areDatesEqual(a, b, state);\n }\n // For RegExp, the properties are not enumerable, and therefore will give false positives if\n // tested like a standard object.\n if (tag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, state);\n }\n if (tag === MAP_TAG) {\n return areMapsEqual(a, b, state);\n }\n if (tag === SET_TAG) {\n return areSetsEqual(a, b, state);\n }\n if (tag === OBJECT_TAG) {\n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n return typeof a.then !== 'function' && typeof b.then !== 'function' && areObjectsEqual(a, b, state);\n }\n // If a URL tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n if (tag === URL_TAG) {\n return areUrlsEqual(a, b, state);\n }\n // If an error tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n if (tag === ERROR_TAG) {\n return areErrorsEqual(a, b, state);\n }\n // If an arguments tag, it should be treated as a standard object.\n if (tag === ARGUMENTS_TAG) {\n return areObjectsEqual(a, b, state);\n }\n if (TYPED_ARRAY_TAGS[tag]) {\n return areTypedArraysEqual(a, b, state);\n }\n if (tag === ARRAY_BUFFER_TAG) {\n return areArrayBuffersEqual(a, b, state);\n }\n if (tag === DATA_VIEW_TAG) {\n return areDataViewsEqual(a, b, state);\n }\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {\n return arePrimitiveWrappersEqual(a, b, state);\n }\n if (unknownTagComparators) {\n let unknownTagComparator = unknownTagComparators[tag];\n if (!unknownTagComparator) {\n const shortTag = getShortTag(a);\n if (shortTag) {\n unknownTagComparator = unknownTagComparators[shortTag];\n }\n }\n // If the custom config has an unknown tag comparator that matches the captured tag or the\n // @@toStringTag, it is the source of truth for whether the values are equal.\n if (unknownTagComparator) {\n return unknownTagComparator(a, b, state);\n }\n }\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n/**\n * Create the configuration object used for building comparators.\n */\nfunction createEqualityComparatorConfig({ circular, createCustomConfig, strict, }) {\n let config = {\n areArrayBuffersEqual,\n areArraysEqual: strict ? areObjectsEqualStrict : areArraysEqual,\n areDataViewsEqual,\n areDatesEqual: areDatesEqual,\n areErrorsEqual: areErrorsEqual,\n areFunctionsEqual: areFunctionsEqual,\n areMapsEqual: strict ? combineComparators(areMapsEqual, areObjectsEqualStrict) : areMapsEqual,\n areNumbersEqual: areNumbersEqual,\n areObjectsEqual: strict ? areObjectsEqualStrict : areObjectsEqual,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqual,\n areRegExpsEqual: areRegExpsEqual,\n areSetsEqual: strict ? combineComparators(areSetsEqual, areObjectsEqualStrict) : areSetsEqual,\n areTypedArraysEqual: strict\n ? combineComparators(areTypedArraysEqual, areObjectsEqualStrict)\n : areTypedArraysEqual,\n areUrlsEqual: areUrlsEqual,\n unknownTagComparators: undefined,\n };\n if (createCustomConfig) {\n config = Object.assign({}, config, createCustomConfig(config));\n }\n if (circular) {\n const areArraysEqual = createIsCircular(config.areArraysEqual);\n const areMapsEqual = createIsCircular(config.areMapsEqual);\n const areObjectsEqual = createIsCircular(config.areObjectsEqual);\n const areSetsEqual = createIsCircular(config.areSetsEqual);\n config = Object.assign({}, config, {\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areSetsEqual,\n });\n }\n return config;\n}\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nfunction createInternalEqualityComparator(compare) {\n return function (a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {\n return compare(a, b, state);\n };\n}\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nfunction createIsEqual({ circular, comparator, createState, equals, strict }) {\n if (createState) {\n return function isEqual(a, b) {\n const { cache = circular ? new WeakMap() : undefined, meta } = createState();\n return comparator(a, b, {\n cache,\n equals,\n meta,\n strict,\n });\n };\n }\n if (circular) {\n return function isEqual(a, b) {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals,\n meta: undefined,\n strict,\n });\n };\n }\n const state = {\n cache: undefined,\n equals,\n meta: undefined,\n strict,\n };\n return function isEqual(a, b) {\n return comparator(a, b, state);\n };\n}\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nconst deepEqual = createCustomEqual();\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nconst strictDeepEqual = createCustomEqual({ strict: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nconst circularDeepEqual = createCustomEqual({ circular: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nconst shallowEqual = createCustomEqual({\n createInternalComparator: () => sameValueZeroEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nconst strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nconst circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nconst strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n strict: true,\n});\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nfunction createCustomEqual(options = {}) {\n const { circular = false, createInternalComparator: createCustomInternalComparator, createState, strict = false, } = options;\n const config = createEqualityComparatorConfig(options);\n const comparator = createEqualityComparator(config);\n const equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n return createIsEqual({ circular, comparator, createState, equals, strict });\n}\n\nexport { circularDeepEqual, circularShallowEqual, createCustomEqual, deepEqual, sameValueZeroEqual, shallowEqual, strictCircularDeepEqual, strictCircularShallowEqual, strictDeepEqual, strictShallowEqual };\n//# sourceMappingURL=index.mjs.map\n","function safeRequestAnimationFrame(callback) {\n if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);\n}\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n safeRequestAnimationFrame(shouldUpdate);\n }\n };\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-console: 0 */\n\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\nexport var log = function log() {\n var _console;\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n default:\n {\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + \"oneOf 'linear', 'ease', 'ease-in', 'ease-out', \" + \"'ease-in-out','cubic-bezier(x1,y1,x2,y2)', instead received %s\", args);\n }\n }\n }\n }\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var easing = args[0];\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n warn(false, \"[configEasing]: first argument should be one of 'ease', 'ease-in', \" + \"'ease-out', 'ease-in-out','cubic-bezier(x1,y1,x2,y2)', 'linear' and 'spring', instead received %s\", args);\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n warn(false, '[configEasing]: first argument type should be function or string, instead received %s', args);\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getIntersectionKeys, mapObject } from './util';\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n var update = function update() {\n return null;\n };\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n };\n\n // stepper timing function like spring\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n };\n\n // t => val timing function like cubic-bezier\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n requestAnimationFrame(update);\n\n // return stop animation method\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity } from './util';\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n var _super = _createSuper(Animate);\n function Animate(props, context) {\n var _this;\n _classCallCheck(this, Animate);\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children,\n duration = _this$props.duration;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n if (!isActive || duration <= 0) {\n _this.state = {\n style: {}\n };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n return _possibleConstructorReturn(_this);\n }\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n return _this;\n }\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n if (!isActive || !canBegin) {\n return;\n }\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate,\n to = _this$props3.to,\n currentFrom = _this$props3.from;\n var style = this.state.style;\n if (!canBegin) {\n return;\n }\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, to) : to\n };\n if (this.state && style) {\n if (attributeName && style[attributeName] !== to || !attributeName && style !== to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n return;\n }\n if (deepEqual(prevProps.to, to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n if (this.manager) {\n this.manager.stop();\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n var from = isTriggered || shouldReAnimate ? currentFrom : prevProps.to;\n if (this.state && style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n if (attributeName && style[attributeName] !== from || !attributeName && style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n var onAnimationEnd = this.props.onAnimationEnd;\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n var transition = getTransitionVal(properties, duration, easing);\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, _excluded);\n var count = Children.count(children);\n // eslint-disable-next-line react/destructuring-assignment\n var stateStyle = this.state.style;\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n if (!isActive || count === 0 || duration <= 0) {\n return children;\n }\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n return Animate;\n}(PureComponent);\nAnimate.displayName = 'Animate';\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nexport default Animate;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Dot\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_this, \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_this, \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_this, \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_this, \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_this, \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_this, 'startX'),\n endX: _this.handleTravellerDragStart.bind(_this, 'endX')\n };\n _this.state = {};\n return _this;\n }\n _inherits(Brush, _PureComponent);\n return _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _data$startIndex,\n _data$endIndex,\n _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat((_data$startIndex = data[startIndex]) === null || _data$startIndex === void 0 ? void 0 : _data$startIndex.name, \", Max value: \").concat((_data$endIndex = data[endIndex]) === null || _data$endIndex === void 0 ? void 0 : _data$endIndex.name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\nimport { isNullish, isNumber } from './DataUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumberOrNil = isNumber(value) || isNullish(value);\n if (isValueNumberOrNil) {\n return minPointSize(value, index);\n }\n !isValueNumberOrNil ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers or null/undefined are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Bar, _PureComponent);\n return _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n // https://github.com/recharts/recharts/issues/5415\n // eslint-disable-next-line react/no-array-index-key\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value, \"-\").concat(i)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i),\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n children = itemProps.children,\n minPointSizeProp = itemProps.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { compareValues, getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort(compareValues);\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n return _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nfunction ReferenceLineImpl(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceLine = /*#__PURE__*/function (_React$Component) {\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n return _callSuper(this, ReferenceLine, arguments);\n }\n _inherits(ReferenceLine, _React$Component);\n return _createClass(ReferenceLine, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ReferenceLineImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceLine, \"displayName\", 'ReferenceLine');\n_defineProperty(ReferenceLine, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceDot = /*#__PURE__*/function (_React$Component) {\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n return _callSuper(this, ReferenceDot, arguments);\n }\n _inherits(ReferenceDot, _React$Component);\n return _createClass(ReferenceDot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n r = _this$props.r,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(this.props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props2 = this.props,\n shape = _this$props2.shape,\n className = _this$props2.className;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceDot, \"displayName\", 'ReferenceDot');\n_defineProperty(ReferenceDot, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n});\n_defineProperty(ReferenceDot, \"renderDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceArea = /*#__PURE__*/function (_React$Component) {\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n return _callSuper(this, ReferenceArea, arguments);\n }\n _inherits(ReferenceArea, _React$Component);\n return _createClass(ReferenceArea, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x1 = _this$props.x1,\n x2 = _this$props.x2,\n y1 = _this$props.y1,\n y2 = _this$props.y2,\n className = _this$props.className,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = this.props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, this.props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), rect)), Label.renderCallByParent(this.props, rect));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceArea, \"displayName\", 'ReferenceArea');\n_defineProperty(ReferenceArea, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n});\n_defineProperty(ReferenceArea, \"renderRect\", function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n});","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _inherits(CartesianAxis, _Component);\n return _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n var combinedClassName = clsx(props.className, 'recharts-cartesian-axis-tick-value');\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, _objectSpread(_objectSpread({}, props), {}, {\n className: combinedClassName\n }));\n } else if (isFunction(option)) {\n tickItem = option(_objectSpread(_objectSpread({}, props), {}, {\n className: combinedClassName\n }));\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useArbitraryXAxis, useChartHeight, useChartWidth, useOffset, useYAxisWithFiniteDomainOrRandom } from '../context/chartLayoutContext';\n\n/**\n * The = 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport isNil from 'lodash/isNil';\nimport isEqual from 'lodash/isEqual';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { ErrorBar } from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType, filterProps, hasClipDot } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Line, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: true,\n totalLength: 0\n });\n _defineProperty(_this, \"generateSimpleStrokeDasharray\", function (totalLength, length) {\n return \"\".concat(length, \"px \").concat(totalLength - length, \"px\");\n });\n _defineProperty(_this, \"getStrokeDasharray\", function (length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n\n // if lineLength is 0 return the default when no strokeDasharray is provided\n if (!lineLength) {\n return _this.generateSimpleStrokeDasharray(totalLength, length);\n }\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n for (var i = 0, sum = 0; i < lines.length; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-line-'));\n _defineProperty(_this, \"pathRef\", function (node) {\n _this.mainCurve = node;\n });\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Line, _PureComponent);\n return _createClass(Line, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n if (totalLength !== this.state.totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n points = _this$props.points,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n layout = _this$props.layout,\n children = _this$props.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"bar-\".concat(item.props.dataKey),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var lineProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n index: i,\n cx: entry.x,\n cy: entry.y,\n value: entry.value,\n dataKey: dataKey,\n payload: entry.payload,\n points: points\n });\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = _this2.generateSimpleStrokeDasharray(totalLength, curLength);\n }\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-line', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = hasClipDot(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(needClip, clipPathId), (hasSinglePoint || dot) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var key = props.key,\n dotProps = _objectWithoutProperties(props, _excluded2);\n var className = clsx('recharts-line-dot', typeof option !== 'boolean' ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({\n key: key\n }, dotProps, {\n className: className\n }));\n }\n return dotItem;\n }\n }]);\n}(PureComponent);\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n label: false\n});\n/**\n * Compose the data of each group\n * @param {Object} props The props from the component\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {String} dataKey The unique key of a group\n * @return {Array} Composed data\n */\n_defineProperty(Line, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n dataKey = _ref4.dataKey,\n bandSize = _ref4.bandSize,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n return {\n x: isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n});","var _excluded = [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"],\n _excluded2 = [\"key\"];\nvar _Area;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Area\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport max from 'lodash/max';\nimport isNil from 'lodash/isNil';\nimport isNan from 'lodash/isNaN';\nimport isEqual from 'lodash/isEqual';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { Global } from '../util/Global';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps, hasClipDot } from '../util/ReactUtils';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n function Area() {\n var _this;\n _classCallCheck(this, Area);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Area, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: true\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-area-'));\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Area, _PureComponent);\n return _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n dot = _this$props.dot,\n points = _this$props.points,\n dataKey = _this$props.dataKey;\n var areaProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps), customDotProps), {}, {\n index: i,\n cx: entry.x,\n cy: entry.y,\n dataKey: dataKey,\n value: entry.value,\n payload: entry.payload,\n points: points\n });\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props2 = this.props,\n baseLine = _this$props2.baseLine,\n points = _this$props2.points,\n strokeWidth = _this$props2.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n var maxY = max(points.map(function (entry) {\n return entry.y || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxY = Math.max(max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n var maxX = max(points.map(function (entry) {\n return entry.x || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxX = Math.max(max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n type = _this$props4.type,\n stroke = _this$props4.stroke,\n connectNulls = _this$props4.connectNulls,\n isRange = _this$props4.isRange,\n ref = _this$props4.ref,\n others = _objectWithoutProperties(_this$props4, _excluded);\n return /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(others, true), {\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props, false), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props, false), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props5 = this.props,\n points = _this$props5.points,\n baseLine = _this$props5.baseLine,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine;\n // const clipPathId = isNil(id) ? this.id : id;\n\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n // update animtaion\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n return entry;\n });\n var stepBaseLine;\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (isNil(baseLine) || isNan(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n return entry;\n });\n }\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this2.renderClipRect(t))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points) || !isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n top = _this$props7.top,\n left = _this$props7.left,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-area', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = hasClipDot(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\n };\n }\n if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {\n return {\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_Area = Area;\n_defineProperty(Area, \"displayName\", 'Area');\n_defineProperty(Area, \"defaultProps\", {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n});\n_defineProperty(Area, \"getBaseValue\", function (props, item, xAxis, yAxis) {\n var layout = props.layout,\n chartBaseValue = props.baseValue;\n var itemBaseValue = item.props.baseValue;\n\n // The baseValue can be defined both on the AreaChart as well as on the Area.\n // The value for the item takes precedence.\n var baseValue = itemBaseValue !== null && itemBaseValue !== void 0 ? itemBaseValue : chartBaseValue;\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var domainMax = Math.max(domain[0], domain[1]);\n var domainMin = Math.min(domain[0], domain[1]);\n if (baseValue === 'dataMin') {\n return domainMin;\n }\n if (baseValue === 'dataMax') {\n return domainMax;\n }\n return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n return domain[0];\n});\n_defineProperty(Area, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n item = _ref4.item,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n bandSize = _ref4.bandSize,\n dataKey = _ref4.dataKey,\n stackedData = _ref4.stackedData,\n dataStartIndex = _ref4.dataStartIndex,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = _Area.getBaseValue(props, item, xAxis, yAxis);\n var isHorizontalLayout = layout === 'horizontal';\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var value;\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n var isBreakPoint = value[1] == null || hasStack && getValueByDataKey(entry, dataKey) == null;\n if (isHorizontalLayout) {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isBreakPoint ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n return {\n x: isBreakPoint ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n var x = Array.isArray(entry.value) ? entry.value[0] : null;\n if (isHorizontalLayout) {\n return {\n x: entry.x,\n y: x != null && entry.y != null ? yAxis.scale(x) : null\n };\n }\n return {\n x: x != null ? xAxis.scale(x) : null,\n y: entry.y\n };\n });\n } else {\n baseLine = isHorizontalLayout ? yAxis.scale(baseValue) : xAxis.scale(baseValue);\n }\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n});\n_defineProperty(Area, \"renderDotItem\", function (option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = clsx('recharts-area-dot', typeof option !== 'boolean' ? option.className : '');\n var key = props.key,\n rest = _objectWithoutProperties(props, _excluded2);\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, rest, {\n key: key,\n className: className\n }));\n }\n return dotItem;\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview X Axis\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nfunction XAxisImpl(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var XAxis = /*#__PURE__*/function (_React$Component) {\n function XAxis() {\n _classCallCheck(this, XAxis);\n return _callSuper(this, XAxis, arguments);\n }\n _inherits(XAxis, _React$Component);\n return _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(XAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(XAxis, \"displayName\", 'XAxis');\n_defineProperty(XAxis, \"defaultProps\", {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Y Axis\n */\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nvar YAxisImpl = function YAxisImpl(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var YAxis = /*#__PURE__*/function (_React$Component) {\n function YAxis() {\n _classCallCheck(this, YAxis);\n return _callSuper(this, YAxis, arguments);\n }\n _inherits(YAxis, _React$Component);\n return _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(YAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(YAxis, \"displayName\", 'YAxis');\n_defineProperty(YAxis, \"defaultProps\", {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n return _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n}();","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var _element$props$cursor, _defaultProps;\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n var elementPropsCursor = (_element$props$cursor = element.props.cursor) !== null && _element$props$cursor !== void 0 ? _element$props$cursor : (_defaultProps = element.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps.cursor;\n if (!element || !elementPropsCursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(elementPropsCursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', elementPropsCursor.className)\n });\n return /*#__PURE__*/isValidElement(elementPropsCursor) ? /*#__PURE__*/cloneElement(elementPropsCursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement, forwardRef } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0 &&\n // https://github.com/recharts/recharts/issues/4717\n // The data is sliced only when the active index is within the start/end index range.\n state.dataEndIndex - state.dataStartIndex >= activeIndex) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _childProps$domain2;\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var type = childProps.type,\n dataKey = childProps.dataKey,\n allowDataOverflow = childProps.allowDataOverflow,\n allowDuplicatedCategory = childProps.allowDuplicatedCategory,\n scale = childProps.scale,\n ticks = childProps.ticks,\n includeHidden = childProps.includeHidden;\n var axisId = childProps[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n var _defaultProps;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps = item.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps[axisIdKey];\n return itemAxisId === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(childProps.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(childProps.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _childProps$domain;\n var childDomain = (_childProps$domain = childProps.domain) !== null && _childProps$domain !== void 0 ? _childProps$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps2, _defaultProps3;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps2 = item.type.defaultProps) === null || _defaultProps2 === void 0 ? void 0 : _defaultProps2[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps3 = item.type.defaultProps) === null || _defaultProps3 === void 0 ? void 0 : _defaultProps3.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : item.type.defaultProps[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : item.type.defaultProps.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, childProps), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_childProps$domain2 = childProps.domain) !== null && _childProps$domain2 !== void 0 ? _childProps$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var axisId = childProps[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps4, _defaultProps5;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps4 = item.type.defaultProps) === null || _defaultProps4 === void 0 ? void 0 : _defaultProps4[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps5 = item.type.defaultProps) === null || _defaultProps5 === void 0 ? void 0 : _defaultProps5.hide;\n return itemAxisId === axisId && !itemHide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n childMaxBarSize = itemProps.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = itemProps[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = itemProps[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = itemProps[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n var CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_this, \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_this, \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_this, \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_this, \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_this, \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_this, \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_this, \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_this, \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_this, \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_this, \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_this, \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_this, \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_this, \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDoubleClick\", function (e) {\n var onDoubleClick = _this.props.onDoubleClick;\n if (isFunction(onDoubleClick)) {\n var _nextState5 = _this.getMouseInfo(e);\n onDoubleClick(_nextState5, e);\n }\n });\n _defineProperty(_this, \"handleContextMenu\", function (e) {\n var onContextMenu = _this.props.onContextMenu;\n if (isFunction(onContextMenu)) {\n var _nextState6 = _this.getMouseInfo(e);\n onContextMenu(_nextState6, e);\n }\n });\n _defineProperty(_this, \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_this, \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_this, \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_this, \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var elementDefaultProps = element.type.defaultProps;\n var elementProps = elementDefaultProps !== undefined ? _objectSpread(_objectSpread({}, elementDefaultProps), element.props) : element.props;\n var axisOption = axisMap && axisMap[elementProps[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_this, \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_this, \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_this, \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_this, \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_this, \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _this2 = _this,\n clipPathId = _this2.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var elementDefaultProps = element.type.defaultProps || {};\n var _element$props2 = element.props,\n _element$props2$xAxis = _element$props2.xAxisId,\n xAxisId = _element$props2$xAxis === void 0 ? elementDefaultProps.xAxisId : _element$props2$xAxis,\n _element$props2$yAxis = _element$props2.yAxisId,\n yAxisId = _element$props2$yAxis === void 0 ? elementDefaultProps.yAxisId : _element$props2$yAxis;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_this, \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n // item is not a React Element so we don't need to resolve defaultProps.\n var key = item.props.key;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n dataKey = itemItemProps.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps, \"\".concat(key, \"-activePoint-\").concat(childIndex)));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y\n }), \"\".concat(key, \"-basePoint-\").concat(childIndex)));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_this, \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n // item is not a React Element so we don't need to resolve defaultProps\n var _item$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n hide = itemItemProps.hide,\n activeBar = itemItemProps.activeBar,\n activeShape = itemItemProps.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_this, \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_this, \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _inherits(CategoricalChartWrapper, _Component);\n return _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length - 1) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n }, toolTipData);\n }\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onDoubleClick: this.handleDoubleClick,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd,\n onContextMenu: this.handleContextMenu\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n // graphicalItem is not a React Element so we don't need to resolve defaultProps\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: itemProps.data\n });\n var childIndex = itemProps.activeIndex === undefined ? activeIndex : itemProps.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? itemProps.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this3.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this3.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this3.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n }(Component);\n _defineProperty(CategoricalChartWrapper, \"displayName\", chartName);\n // todo join specific chart propTypes\n _defineProperty(CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps));\n _defineProperty(CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n });\n _defineProperty(CategoricalChartWrapper, \"renderActiveDot\", function (option, props, key) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: key\n }, dot);\n });\n var CategoricalChart = /*#__PURE__*/forwardRef(function CategoricalChart(props, ref) {\n return /*#__PURE__*/React.createElement(CategoricalChartWrapper, _extends({}, props, {\n ref: ref\n }));\n });\n CategoricalChart.displayName = CategoricalChartWrapper.displayName;\n return CategoricalChart;\n};","/**\n * @fileOverview Area Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var AreaChart = generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * dashboard-client/src/components/SessionsMemoryChart.tsx — Stacked memory graph (S39).\n *\n * Recharts stacked `` per session + total `` + `` +\n * `` + ``. Data comes from `/api/sessions/timeseries`\n * which returns `SessionSeries[]` (per-session data points + stable hex color)\n * and a `totals[]` array (sum across all sessions per timestamp).\n *\n * PREVENT-PI-004: recharts is bundled into this localhost-served static\n * dashboard bundle; it makes no runtime network calls. Chart data arrives via\n * same-origin fetch to the dashboard server (loopback, ports 9320–9329).\n */\n\nimport type React from \"react\";\nimport { useMemo } from \"react\";\nimport {\n\tResponsiveContainer,\n\tAreaChart,\n\tArea,\n\tLine,\n\tXAxis,\n\tYAxis,\n\tCartesianGrid,\n\tTooltip,\n\tLegend,\n} from \"recharts\";\nimport type { SessionSeries } from \"@contracts\";\n\nexport interface SessionsMemoryChartProps {\n\t/** Per-session series with stable colors (from /api/sessions/timeseries). */\n\tseries: SessionSeries[];\n\t/** Totals (sum across all sessions) per timestamp. */\n\ttotals: ReadonlyArray<{ ts: number; tokens: number }>;\n}\n\n/** A row in the pivoted data table passed to recharts ``. */\ninterface PivotedRow {\n\t/** Unix timestamp (ms). */\n\tts: number;\n\t/** Total tokens across all sessions at this timestamp. */\n\ttotal: number;\n\t/** Per-session token count keyed by sessionId. */\n\t[sessionId: string]: number;\n}\n\n/**\n * Pivot the per-session series + totals into recharts' expected flat shape:\n * one row per unique timestamp, with each session's token count as a column\n * keyed by sessionId. Missing values for a session at a given timestamp are\n * filled with zero so the stack renders continuously.\n */\nfunction pivot(\n\tseries: SessionSeries[],\n\ttotals: ReadonlyArray<{ ts: number; tokens: number }>,\n): PivotedRow[] {\n\tconst map = new Map();\n\tconst sessionIds = series.map((s) => s.sessionId);\n\n\tfor (const s of series) {\n\t\tfor (const pt of s.data) {\n\t\t\tlet row = map.get(pt.ts);\n\t\t\tif (!row) {\n\t\t\t\trow = { ts: pt.ts, total: 0 } as PivotedRow;\n\t\t\t\tfor (const sid of sessionIds) row[sid] = 0;\n\t\t\t\tmap.set(pt.ts, row);\n\t\t\t}\n\t\t\trow[s.sessionId] = pt.tokens;\n\t\t}\n\t}\n\tfor (const t of totals) {\n\t\tlet row = map.get(t.ts);\n\t\tif (!row) {\n\t\t\trow = { ts: t.ts, total: 0 } as PivotedRow;\n\t\t\tfor (const sid of sessionIds) row[sid] = 0;\n\t\t\tmap.set(t.ts, row);\n\t\t}\n\t\trow.total = t.tokens;\n\t}\n\n\treturn [...map.values()].sort((a, b) => a.ts - b.ts);\n}\n\nfunction fmtTs(ts: number): string {\n\treturn new Date(ts).toLocaleTimeString([], {\n\t\thour: \"2-digit\",\n\t\tminute: \"2-digit\",\n\t\tsecond: \"2-digit\",\n\t});\n}\n\nfunction fmtTokens(value: number | string): string {\n\tconst n = Number(value);\n\treturn Number.isFinite(n) ? n.toLocaleString() : String(value);\n}\n\n/** Sanitize an arbitrary sessionId for use in an SVG gradient id. */\nfunction gradId(sessionId: string): string {\n\tconst safe = sessionId.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n\treturn `grad-${safe}`;\n}\n\nexport function SessionsMemoryChart({\n\tseries,\n\ttotals,\n}: SessionsMemoryChartProps): React.ReactElement {\n\tconst data = useMemo(\n\t\t() => pivot(series, totals),\n\t\t[series, totals],\n\t);\n\n\tif (series.length === 0) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\tNo token samples in this window yet.\n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{series.map((s) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t fmtTs(ts)}\n\t\t\t\t\t\tstroke=\"#8b949e\"\n\t\t\t\t\t\ttick={{ fontSize: 11 }}\n\t\t\t\t\t\tscale=\"time\"\n\t\t\t\t\t/>\n\t\t\t\t\t fmtTokens(v)}\n\t\t\t\t\t/>\n\t\t\t\t\t fmtTs(ts)}\n\t\t\t\t\t\tformatter={(value) =>\n\t\t\t\t\t\t\t[fmtTokens(value as number), \"tokens\"] as [string, string]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontentStyle={{\n\t\t\t\t\t\t\tbackground: \"#161b22\",\n\t\t\t\t\t\t\tborder: \"1px solid #30363d\",\n\t\t\t\t\t\t\tborderRadius: \"6px\",\n\t\t\t\t\t\t\tcolor: \"#e6edf3\",\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tlabelStyle={{ color: \"#8b949e\", fontSize: 12 }}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t{series.map((s) => (\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/ActiveSessionsTable.tsx — Active sessions table (S39).\n *\n * Per-session rows: PID, Repo, Model, Context %, Tokens/Window,\n * Heartbeat age, State dir, Sparkline.\n *\n * Data from /api/sessions (active sessions list) and /api/sessions/timeseries\n * (per-session data points used to render inline sparklines).\n */\n\nimport type React from \"react\";\nimport type { ActiveSession, SessionSeries } from \"@contracts\";\n\nexport interface ActiveSessionsTableProps {\n\t/** Active sessions, sorted by lastSeen descending (from /api/sessions). */\n\tsessions: ActiveSession[];\n\t/** Per-session timeseries used to render the inline sparkline column. */\n\tseries: SessionSeries[];\n}\n\nconst HEADERS = [\n\t\"PID\",\n\t\"Repo\",\n\t\"Model\",\n\t\"Context %\",\n\t\"Tokens / Window\",\n\t\"Last Heartbeat\",\n\t\"State Dir\",\n\t\"Trend\",\n] as const;\n\n/** Format a duration in milliseconds → human-readable age string. */\nfunction fmtAge(ms: number): string {\n\tconst s = Math.max(0, Math.round(ms / 1000));\n\tif (s < 60) return `${s}s ago`;\n\tconst m = Math.floor(s / 60);\n\tif (m < 60) return `${m}m ${s % 60}s ago`;\n\tconst h = Math.floor(m / 60);\n\treturn `${h}h ${m % 60}m ago`;\n}\n\nfunction fmtTokens(n: number | null): string {\n\tif (n == null) return \"\\u2014\";\n\tif (n >= 100_000) return `${(n / 1000).toFixed(0)}k`;\n\tif (n >= 1000) return `${(n / 1000).toFixed(1)}k`;\n\treturn n.toLocaleString();\n}\n\nfunction pctClass(pct: number | null): string {\n\tif (pct == null) return \"sessions-pct-ok\";\n\tif (pct >= 85) return \"sessions-pct-err\";\n\tif (pct >= 60) return \"sessions-pct-warn\";\n\treturn \"sessions-pct-ok\";\n}\n\nfunction fmtPct(pct: number | null): string {\n\tif (pct == null) return \"\\u2014\";\n\treturn `${Math.round(pct)}%`;\n}\n\nfunction fmtWindow(tokens: number | null, window: number): string {\n\tif (tokens == null) return \"\\u2014\";\n\treturn `${fmtTokens(tokens)} / ${fmtTokens(window)}`;\n}\n\ninterface SparklineProps {\n\t/** Token counts over time (oldest → newest). */\n\tpoints: number[];\n\t/** Stable hex color for the stroke. */\n\tcolor: string;\n}\n\nfunction Sparkline({ points, color }: SparklineProps): React.ReactElement {\n\tif (points.length < 2) {\n\t\treturn {\"\\u2014\"};\n\t}\n\tconst min = Math.min(...points);\n\tconst max = Math.max(...points);\n\tconst range = max - min || 1;\n\tconst w = 64;\n\tconst h = 18;\n\tconst stepX = w / (points.length - 1);\n\tconst segments = points.map((p, i) => {\n\t\tconst x = i * stepX;\n\t\tconst y = h - ((p - min) / range) * h;\n\t\treturn `${i === 0 ? \"M\" : \"L\"} ${x.toFixed(1)} ${y.toFixed(1)}`;\n\t});\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\n/** Map sessionId → series for the sparkline column lookup. */\nfunction indexSeries(\n\tseries: SessionSeries[],\n): Map {\n\tconst m = new Map();\n\tfor (const s of series) m.set(s.sessionId, s);\n\treturn m;\n}\n\nexport function ActiveSessionsTable({\n\tsessions,\n\tseries,\n}: ActiveSessionsTableProps): React.ReactElement {\n\tconst seriesById = indexSeries(series);\n\tconst now = Date.now();\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{HEADERS.map((h, i) => (\n\t\t\t\t\t\t\t= 3 && i !== 6 ? \"num\" : undefined}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{h}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{sessions.length === 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\t{sessions.map((s) => {\n\t\t\t\t\t\tconst srs = seriesById.get(s.sessionId);\n\t\t\t\t\t\tconst sparkPts =\n\t\t\t\t\t\t\tsrs?.data.map((d) => d.tokens) ?? [];\n\t\t\t\t\t\tconst color = srs?.color ?? \"#58a6ff\";\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{s.stateDir\n\t\t\t\t\t\t\t\t\t\t? s.stateDir.split(\"/\").pop() || s.stateDir\n\t\t\t\t\t\t\t\t\t\t: \"\\u2014\"}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t
    No active sessions.
    {s.pid}\n\t\t\t\t\t\t\t\t\t{s.displayName || s.repoRoot || \"\\u2014\"}\n\t\t\t\t\t\t\t\t{s.model ?? \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{fmtPct(s.percent)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{fmtWindow(s.tokens, s.ctxWindow)}\n\t\t\t\t\t\t\t\t{fmtAge(now - s.lastSeen)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/tabs/SessionsTab.tsx — Sessions tab (S39).\n *\n * Renders: window selector (5/15/30/60 min), sessions summary tiles,\n * the stacked-memory graph (SessionsMemoryChart), and the active sessions\n * table (ActiveSessionsTable).\n *\n * Data sources: fetchSessions() + fetchSessionTimeseries(minutes). Both poll\n * every 2s for near-real-time updates. useSSE() listens for session_sample\n * events emitted by appendTokenSample (Step 5) so the chart refetches\n * instantly between polls when a new token sample is appended to events.log.\n *\n * Empty state: shows \"No active sessions.\" when the /api/sessions response\n * returns an empty array (e.g. no pi processes are running yet).\n */\n\nimport type React from \"react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { useSSE } from \"../hooks/useSSE\";\nimport { fetchSessions, fetchSessionTimeseries } from \"../api/client\";\nimport type { SseEvent, SseSessionSample, SessionsResponse, SessionTimeseriesResponse } from \"@contracts\";\nimport { SessionsMemoryChart } from \"../components/SessionsMemoryChart\";\nimport { ActiveSessionsTable } from \"../components/ActiveSessionsTable\";\n\n/**\n * Shape of the {@link SseSessionSample} SSE event appended to events.log by\n * `appendTokenSample` (src/store/sqlite/global-index.ts). The contract now\n * defines this variant as part of the {@link SseEvent} union (Step 5); the\n * local alias keeps the surface terser in this file.\n */\ntype SessionSampleEvent = SseSessionSample;\n\n/** Type guard: narrows an SSE event to a session_sample event. */\nfunction isSessionSample(\n\te: SseEvent,\n): e is SessionSampleEvent {\n\treturn e.type === \"session_sample\";\n}\n\nconst WINDOWS: ReadonlyArray<{ value: number; label: string }> = [\n\t{ value: 5, label: \"5m\" },\n\t{ value: 15, label: \"15m\" },\n\t{ value: 30, label: \"30m\" },\n\t{ value: 60, label: \"60m\" },\n] as const;\n\ninterface SummaryTilesProps {\n\tsessions: SessionsResponse;\n}\n\nfunction SummaryTiles({ sessions }: SummaryTilesProps): React.ReactElement {\n\tconst active = sessions.sessions.length;\n\tconst combinedTokens = sessions.sessions.reduce(\n\t\t(sum, s) => sum + (s.tokens ?? 0),\n\t\t0,\n\t);\n\tconst maxWindow = sessions.sessions.reduce(\n\t\t(max, s) => Math.max(max, s.ctxWindow),\n\t\t0,\n\t);\n\tconst combinedPct = maxWindow > 0 ? (combinedTokens / maxWindow) * 100 : 0;\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\tActive sessions\n\t\t\t\t{active}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCombined tokens\n\t\t\t\t\n\t\t\t\t\t{combinedTokens >= 100_000\n\t\t\t\t\t\t? `${(combinedTokens / 1000).toFixed(0)}k`\n\t\t\t\t\t\t: combinedTokens.toLocaleString()}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tCombined % of max window\n\t\t\t\t{Math.round(combinedPct)}%\n\t\t\t
    \n\t\t\t
    \n\t\t\t\tPruned (stale)\n\t\t\t\t{sessions.pruned}\n\t\t\t
    \n\t\t
    \n\t);\n}\n\nexport default function SessionsTab(): React.ReactElement {\n\tconst [minutes, setMinutes] = useState(30);\n\n\tconst {\n\t\tdata: sessionsData,\n\t\terror: sessionsErr,\n\t\trefetch: refetchSessions,\n\t} = useApi(\n\t\tuseCallback(() => fetchSessions(), []),\n\t\t{ pollInterval: 2_000 },\n\t);\n\n\tconst {\n\t\tdata: timeseriesData,\n\t\terror: timeseriesErr,\n\t\trefetch: refetchTimeseries,\n\t} = useApi(\n\t\tuseCallback(() => fetchSessionTimeseries(minutes), [minutes]),\n\t\t{ pollInterval: 2_000 },\n\t);\n\n\tconst { events } = useSSE();\n\n\t// Filter SSE events for session_sample pushes (Step 5) and trigger an\n\t// immediate refetch when a new sample arrives, so the chart updates\n\t// between the 2s polls. The events array grows as new samples arrive; the\n\t// length-based dependency means the effect re-runs when a new sample event\n\t// lands (not on every poll). We debounce via a microtask guard.\n\tconst sampleEvents = useMemo(\n\t\t() => events.filter(isSessionSample),\n\t\t[events],\n\t);\n\n\tconst lastSampleTs = useMemo(() => {\n\t\tif (sampleEvents.length === 0) return null;\n\t\treturn sampleEvents[sampleEvents.length - 1].ts;\n\t}, [sampleEvents]);\n\n\tuseEffect(() => {\n\t\tif (lastSampleTs == null) return;\n\t\trefetchSessions();\n\t\trefetchTimeseries();\n\t}, [lastSampleTs, refetchSessions, refetchTimeseries]);\n\n\tif (sessionsErr && !sessionsData) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\tError loading sessions: {sessionsErr.message}\n\t\t\t
    \n\t\t);\n\t}\n\tif (timeseriesErr && !timeseriesData) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\tError loading timeseries: {timeseriesErr.message}\n\t\t\t
    \n\t\t);\n\t}\n\tif (!sessionsData) {\n\t\treturn
    Loading sessions…
    ;\n\t}\n\n\tconst sessions = sessionsData.sessions;\n\tconst series = timeseriesData?.series ?? [];\n\tconst totals = timeseriesData?.totals ?? [];\n\tconst windowLabel =\n\t\tWINDOWS.find((w) => w.value === minutes)?.label ?? `${minutes}m`;\n\n\treturn (\n\t\t
    \n\t\t\t
    \n\t\t\t\t

    Session Memory Graph

    \n\t\t\t\t
    \n\t\t\t\t\t{WINDOWS.map((w) => (\n\t\t\t\t\t\t setMinutes(w.value)}\n\t\t\t\t\t\t\taria-pressed={minutes === w.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{w.label}\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t
    \n\t\t\t
    \n\n\t\t\t{sessions.length === 0 ? (\n\t\t\t\t
    No active sessions.
    \n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

    Active Sessions

    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{series.length} series · {totals.length} timestamps ·{\" \"}\n\t\t\t\t\t\t{windowLabel} window · updated{\" \"}\n\t\t\t\t\t\t{timeseriesData?.updatedAt ?? sessionsData.updatedAt}\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n}\n"],"names":["r","f","o","clsx","isArray","isArray_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","root","_root","Symbol","_Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","_getRawTag","objectToString","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","object","type","_isKey","isObject","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","func","_isMasked","funcProto","funcToString","toSource","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","_baseIsNative","getValue","key","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","data","_hashGet","hashHas","_hashHas","hashSet","_hashSet","require$$4","Hash","entries","index","length","entry","_Hash","listCacheClear","_listCacheClear","eq","other","eq_1","assocIndexOf","array","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","map","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","size","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","args","cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","_stringToPath","arrayMap","iteratee","_arrayMap","symbolProto","symbolToString","baseToString","_baseToString","toString","toString_1","castPath","_castPath","toKey","_toKey","baseGet","path","_baseGet","get","defaultValue","get_1","isNil","isNil_1","stringTag","isString","isString_1","b","c","d","e","g","h","k","l","m","n","p","q","t","u","v","a","reactIs_production_min","reactIsModule","numberTag","isNumber","isNumber_1","isNaN","_isNaN","mathSign","isPercent","lodashIsNumber","isNan","isNullish","isNumOrStr","idCounter","uniqueId","prefix","id","getPercentValue","percent","totalValue","validate","getAnyElementOfObject","obj","keys","hasDuplicate","ary","len","interpolateNumber","numberA","numberB","findEntryInArray","specifiedKey","specifiedValue","compareValues","shallowEqual","_key","_typeof","SVGContainerPropKeys","SVGElementPropKeys","PolyElementKeys","FilteredElementKeyMap","EventKeys","adaptEventHandlers","props","newHandler","inputProps","isValidElement","out","getEventHandlerOfChild","originalHandler","adaptEventsOfChild","item","_excluded","_excluded2","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","REACT_BROWSER_EVENT_MAP","getDisplayName","Comp","lastChildren","lastResult","toArray","children","Children","child","isFragment","findAllByType","types","childType","findChildByType","validateWidthHeight","el","_el$props","width","height","SVG_TAGS","isSvgElement","hasClipDot","dot","isValidSpreadableProp","property","includeEvents","svgElementType","_FilteredElementKeyMa","matchingElementTypeKeys","filterProps","_inputProps","isChildrenEqual","nextChildren","prevChildren","count","isSingleChildEqual","nextChild","prevChild","_ref","nextProps","_ref2","prevProps","renderByOrder","renderMap","elements","record","displayName","_ref3","handler","once","results","getReactEventByType","parseChildIndex","_extends","i","Surface","viewBox","className","style","title","desc","others","svgView","layerClass","React","Layer","ref","warn","condition","format","_len","baseSlice","start","end","_baseSlice","castSlice","_castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","_hasUnicode","asciiToArray","_asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","_unicodeToArray","stringToArray","_stringToArray","createCaseFirst","methodName","strSymbols","chr","trailing","_createCaseFirst","upperFirst","upperFirst_1","constant$3","x","cos","sin","sqrt","pi","tau","epsilon","tauEpsilon","append","strings","appendRound","digits","Path","y","x1","y1","x2","y2","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","withPath","shape","_","Linear","context","curveLinear","shapeLine","defined","constant","curve","output","line","pointX","pointY","defined0","buffer","shapeArea","area","j","x0z","y0z","arealine","Bump","bumpX","bumpY","symbolCircle","symbolCross","tan30","tan30_2","symbolDiamond","symbolSquare","ka","kr","kx","ky","symbolStar","s","sqrt3","symbolTriangle","symbolWye","symbol","circle","noop$2","point","that","Basis","curveBasis","BasisClosed","noop","curveBasisClosed","BasisOpen","curveBasisOpen","LinearClosed","curveLinearClosed","sign","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","i0","i1","curveNatural","Step","curveStep","stepBefore","stepAfter","stackOffsetNone","series","order","stackOrderNone","stackValue","stackSeries","shapeStack","orderNone","offset","offsetNone","stack","sz","oz","stackOffsetExpand","none","stackOffsetSilhouette","stackOffsetWiggle","s2","si","sij0","sij1","s3","sk","skj0","skj1","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","symbolFactories","RADIAN","getSymbolFactory","name","calculateAreaSize","sizeType","angle","registerSymbol","factory","Symbols","_ref$type","_ref$size","_ref$sizeType","rest","getPath","symbolFactory","shapeSymbol","cx","cy","filteredProps","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","self","call","_assertThisInitialized","_inherits","subClass","superClass","_setPrototypeOf","SIZE","DefaultLegendContent","_PureComponent","inactiveColor","halfSize","sixthSize","thirdSize","color","iconProps","_this","_this$props","payload","iconSize","layout","formatter","itemStyle","svgStyle","finalFormatter","entryValue","_this$props2","align","finalStyle","PureComponent","stackClear","_stackClear","stackDelete","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","_stackSet","require$$5","Stack","_Stack","setCacheAdd","_setCacheAdd","setCacheHas","_setCacheHas","SetCache","values","_SetCache","arraySome","predicate","_arraySome","cacheHas","_cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","customizer","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_equalArrays","Uint8Array","_Uint8Array","mapToArray","_mapToArray","setToArray","set","_setToArray","boolTag","dateTag","errorTag","mapTag","regexpTag","setTag","arrayBufferTag","dataViewTag","symbolValueOf","equalByTag","convert","stacked","_equalByTag","arrayPush","_arrayPush","baseGetAllKeys","keysFunc","symbolsFunc","_baseGetAllKeys","arrayFilter","resIndex","_arrayFilter","stubArray","stubArray_1","propertyIsEnumerable","nativeGetSymbols","getSymbols","_getSymbols","baseTimes","_baseTimes","argsTag","baseIsArguments","_baseIsArguments","isArguments","isArguments_1","stubFalse","stubFalse_1","freeExports","exports","freeModule","module","moduleExports","Buffer","nativeIsBuffer","isBuffer","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","isLength","isLength_1","arrayTag","objectTag","weakMapTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","_baseIsTypedArray","baseUnary","_baseUnary","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","isTypedArray_1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","isPrototype","Ctor","proto","_isPrototype","overArg","transform","arg","_overArg","nativeKeys","_nativeKeys","baseKeys","_baseKeys","isArrayLike","isArrayLike_1","keys_1","getAllKeys","_getAllKeys","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","_equalObjects","DataView","_DataView","Promise","_Promise","Set","_Set","WeakMap","_WeakMap","require$$6","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","require$$7","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqual","_baseIsEqual","baseIsMatch","matchData","noCustomizer","srcValue","_baseIsMatch","isStrictComparable","_isStrictComparable","getMatchData","_getMatchData","matchesStrictComparable","_matchesStrictComparable","baseMatches","_baseMatches","baseHasIn","_baseHasIn","hasPath","hasFunc","_hasPath","hasIn","hasIn_1","baseMatchesProperty","_baseMatchesProperty","identity","identity_1","baseProperty","_baseProperty","basePropertyDeep","_basePropertyDeep","property_1","baseIteratee","_baseIteratee","baseFindIndex","fromIndex","fromRight","_baseFindIndex","baseIsNaN","_baseIsNaN","strictIndexOf","_strictIndexOf","baseIndexOf","_baseIndexOf","arrayIncludes","_arrayIncludes","arrayIncludesWith","comparator","_arrayIncludesWith","noop_1","INFINITY","createSet","_createSet","baseUniq","includes","isCommon","outer","computed","seenIndex","_baseUniq","uniqBy","uniqBy_1","getUniqPayload","option","defaultUniqBy","renderContent","content","otherProps","EPS","Legend","box","onBBoxUpdate","verticalAlign","margin","chartWidth","chartHeight","hPos","vPos","_box","_this2","wrapperStyle","payloadUniqBy","outerStyle","node","_this$defaultProps$it","spreadableSymbol","isFlattenable","_isFlattenable","baseFlatten","depth","isStrict","_baseFlatten","createBaseFor","iterable","_createBaseFor","baseFor","_baseFor","baseForOwn","_baseForOwn","createBaseEach","eachFunc","collection","_createBaseEach","baseEach","_baseEach","baseMap","_baseMap","baseSortBy","comparer","_baseSortBy","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_compareAscending","compareMultiple","orders","objCriteria","othCriteria","ordersLength","_compareMultiple","require$$8","baseOrderBy","iteratees","criteria","_baseOrderBy","apply","thisArg","_apply","nativeMax","overRest","otherArgs","_overRest","constant_1","defineProperty","baseSetToString","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","lastCalled","stamp","remaining","_shortOut","setToString","_setToString","baseRest","_baseRest","isIterateeCall","_isIterateeCall","sortBy","sortBy_1","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","defaultFormatter","DefaultTooltipContent","_props$separator","separator","_props$contentStyle","contentStyle","_props$itemStyle","_props$labelStyle","labelStyle","itemSorter","wrapperClassName","labelClassName","label","labelFormatter","_props$accessibilityL","accessibilityLayer","listStyle","items","finalItemStyle","finalValue","finalName","formatted","_formatted","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","getTooltipCSSClassName","coordinate","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","position","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","_tooltipBoundary","_viewBoxBoundary","tooltipBoundary","viewBoxBoundary","getTransformStyle","useTranslate3d","getTooltipTranslate","_ref4","tooltipBox","cssProperties","EPSILON","TooltipBoundingBox","event","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","_this$props$coordinat5","_this$props$coordinat6","active","animationDuration","animationEasing","hasPayload","isAnimationActive","_getTooltipTranslate","cssClasses","parseIsSsrByDefault","Global","Tooltip","filterNull","finalPayload","now","now_1","reWhitespace","trimmedEndIndex","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","isBinary","toNumber_1","nativeMin","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","throttle","throttle_1","ResponsiveContainer","forwardRef","aspect","_ref$initialDimension","initialDimension","_ref$width","_ref$height","_ref$minWidth","minWidth","minHeight","maxHeight","_ref$debounce","onResize","_ref$style","containerRef","useRef","onResizeRef","useImperativeHandle","_useState","useState","_useState2","sizes","setSizes","setContainerSize","useCallback","newWidth","newHeight","prevState","roundedWidth","roundedHeight","useEffect","callback","_onResizeRef$current","_entries$0$contentRec","containerWidth","containerHeight","observer","_containerRef$current","chartContent","useMemo","calculatedWidth","calculatedHeight","isCharts","cloneElement","Cell","_props","stringCache","MAX_CACHE_NUM","SPAN_STYLE","MEASUREMENT_SPAN_ID","removeInvalidKeys","copyObj","getStringSize","text","copyStyle","cacheKey","measurementSpan","measurementSpanStyle","rect","getOffset","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","FIXED_CSS_LENGTH_UNITS","STR_NAN","convertToPx","unit","DecimalCSS","num","str","_NUM_SPLIT_REGEX$exec","numStr","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","_ref5","_ref6","_leftOperand","_operator","_rightOperand","_lTs","_rTs","_result","PARENTHESES_REGEX","calculateParentheses","_PARENTHESES_REGEX$ex","_PARENTHESES_REGEX$ex2","parentheticalExpression","evaluateExpression","expression","safeEvaluateExpression","reduceCSSCalc","BREAKING_SPACES","calculateWordWidths","breakAll","words","wordsWithComputedWidth","word","spaceWidth","calculateWordsByLines","initialWordsWithComputedWith","lineWidth","scaleToFit","maxLines","shouldLimitLines","calculate","currentLine","newLine","originalResult","findLongestLine","suffix","checkOverflow","tempText","doesOverflow","iterations","trimmedResult","middle","prev","_checkOverflow","_checkOverflow2","doesPrevOverflow","_checkOverflow3","_checkOverflow4","doesMiddleOverflow","getWordsWithoutCalculate","getWordsByLines","wordWidths","wcw","sw","DEFAULT_FILL","Text","_ref5$x","propsX","_ref5$y","propsY","_ref5$lineHeight","lineHeight","_ref5$capHeight","capHeight","_ref5$scaleToFit","_ref5$textAnchor","textAnchor","_ref5$verticalAnchor","verticalAnchor","_ref5$fill","fill","wordsByLines","textProps","startDy","transforms","ascending","descending","bisector","compare1","compare2","delta","zero","left","lo","hi","mid","right","center","numbers","valueof","ascendingBisect","bisectRight","InternMap","keyof","intern_get","intern_set","intern_delete","_intern","compareDefined","compare","ascendingDefined","e10","e5","e2","tickSpec","stop","step","power","error","factor","i2","inc","ticks","reverse","tickIncrement","tickStep","max","min","quickselect","z","sd","newLeft","newRight","swap","quantile","value0","value1","quantileSorted","range","initRange","domain","initInterpolator","interpolator","implicit","ordinal","unknown","scale","band","ordinalRange","r0","r1","bandwidth","round","paddingInner","paddingOuter","rescale","sequence","pointish","copy","define","constructor","prototype","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","rgbn","Rgb","rgba","hsla","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","Hsl","hsl","m2","m1","hsl2rgb","clamph","clampt","linear","exponential","gamma","nogamma","rgbGamma","colorRgb","numberArray","isNumberArray","genericArray","nb","na","date$1","interpolateNumber$1","reA","reB","one","bi","am","bm","bs","interpolate","date","interpolateRound","piecewise","I","constants","normalize","clamper","bimap","d0","d1","polymap","bisect","transformer","interpolateValue","untransform","clamp","input","continuous","formatDecimal","formatDecimalParts","coefficient","exponent","formatGroup","grouping","thousands","formatNumerals","numerals","re","formatSpecifier","specifier","FormatSpecifier","formatTrim","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$5","prefixes","formatLocale$1","locale","group","currencyPrefix","currencySuffix","decimal","minus","nan","newFormat","comma","precision","trim","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","defaultLocale","formatLocale","precisionFixed","precisionPrefix","precisionRound","tickFormat","linearish","prestep","maxIter","nice","interval","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","reflect","loggish","logs","pows","log","transformSymlog","transformSymexp","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","pow","square","unsquare","radial","squared","thresholds","threshold","quantize","timeInterval","floori","offseti","field","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","parseSpecifier","parse","numberRe","percentRe","requoteRe","requote","names","dISO","dow","UTCdISO","timeFormat","utcFormat","calendar","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","t2","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","baseExtremum","current","_baseExtremum","baseGt","_baseGt","max_1","baseLt","_baseLt","min_1","map_1","flatMap","flatMap_1","isEqual","isEqual_1","MAX_DIGITS","defaults","Decimal","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","ONE","BASE","LOG_BASE","MAX_E","P","xdL","ydL","dp","divide","getBase10Exponent","pr","wpr","ln","subtract","add","exp","digitsToString","carry","rL","xd","yd","rm","checkInt32","yIsInt","guard","yn","truncate","ws","indexOfLastWord","getZeroString","multiplyInteger","temp","aL","bL","cmp","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c0","numerator","parseDecimal","rd","doRound","xdi","xe","xLTy","isExp","clone","ps","config","Decimal$1","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","PLACE_HOLDER","isPlaceHolder","val","curry0","fn","_curried","curryN","argsLength","_len2","restArgs","_key2","newArgs","curry","begin","compose","_len3","_key3","fns","firstFn","tailsFn","res","_len4","_key4","getDigitCount","rangeStep","newA","newB","uninterpolateNumber","diff","uninterpolateTruncation","Arithmetic","_arr","_n","_d","_e","_i","_s","err","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","digitCountValue","stepRatio","stepRatioScale","amendStepRatio","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","belowCount","upCount","scaleCount","getNiceTickValuesFn","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","tickMin","tickMax","getTickValuesFixedDomainFn","_ref7","_ref8","_getValidInterval5","_getValidInterval6","getNiceTickValues","getTickValuesFixedDomain","invariant","message","ErrorBar","_React$Component","dataKey","dataPointFormatter","xAxis","yAxis","svgProps","errorBars","_dataPointFormatter","errorVal","lineCoordinates","lowBound","highBound","_errorVal","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","getLegendProps","formattedGraphicalItems","legendWidth","legendContent","legendItem","legendDefaultProps","legendProps","legendData","itemDefaultProps","itemProps","legendType","hide","getMainColorOfGraphicItem","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","validateData","calculateActiveTickIndex","_ticks$length","unsortedTicks","axis","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","minValue","maxValue","_item$type","defaultedProps","stroke","getBarSizeList","globalSize","totalSize","_ref2$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","barItemDefaultProps","barItemProps","selfSize","cateId","barSize","getBarPosition","barGap","barCategoryGap","bandSize","_ref3$sizeList","sizeList","maxBarSize","realBarGap","initialValue","useFull","fullBarSize","newPosition","newRes","_offset","originalSize","appendOffsetOfLegend","_unused","legendBox","boxWidth","boxHeight","isErrorBarRelevantForAxis","axisType","direction","getDomainOfErrorBars","errorBarChild","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","syncWithTicks","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","offsetForBand","scaleContent","row","handlerWeakMap","combineEventHandlers","defaultHandler","childHandler","childWeakMap","combineHandler","parseScale","chartType","hasBar","d3Scales.scaleBand","d3Scales.scaleLinear","d3Scales.scalePoint","d3Scales","checkDomainOfScale","first","last","findPositionOfBar","barPosition","truncateByDomain","offsetSign","offsetPositive","STACK_OFFSET_MAP","getStackedData","stackItems","offsetType","dataKeys","offsetAccessor","getStackGroupsByAxisId","_items","numericAxisId","reverseStackOrder","parentStackGroupsInitialValue","_item$type2","stackId","axisId","parentGroup","childGroup","axisStackGroupsInitialValue","stackGroupsInitialValue","getTicksOfScale","opts","realScaleType","originalDomain","scaleType","tickValues","_domain","_tickValues","getCateCoordinateOfLine","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","numericAxis","getStackedDataOfItem","_item$type3","itemIndex","getDomainOfSingle","getDomainOfStackGroups","startIndex","endIndex","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","graphicalItem","tooltipType","radianToDegree","angleInRadian","polarToCartesian","radius","distanceBetweenPoints","anotherPoint","getAngleOfPoint","formatAngleOfSector","startAngle","endAngle","startCnt","endCnt","reverseFormatAngleOfSetor","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","_formatAngleOfSector","formatAngle","inRange","getLabel","getDeltaAngle","deltaAngle","renderRadialLabel","labelProps","attrs","clockWise","labelAngle","startPoint","endPoint","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_x","_y","_polarToCartesian2","getAttrsOfCartesianLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs","_attrs2","_attrs3","sizeAttrs","isPolar","Label","_ref4$offset","restProps","_props$className","textBreakAll","createElement","isPolarLabel","positionAttrs","parseViewBox","top","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","last_1","defaultAccessor","LabelList","_ref$valueAccessor","valueAccessor","idProps","parseLabelList","implicitLabelList","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","centerAngle","circleTangency","lineTangencyAngle","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","getSectorWithCorner","forceCornerRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","defaultProps","Sector","sectorProps","deltaRadius","cr","CURVE_FACTORIES","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveStepAfter","curveStepBefore","getX","getY","getCurveFactory","_ref$points","points","baseLine","_ref$connectNulls","connectNulls","curveFactory","formatPoints","lineFunction","formatBaseLine","areaPoints","Curve","pathRef","realPath","React.createElement","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propName","componentName","location","propFullName","secret","getShim","ReactPropTypes","propTypesModule","getOwnPropertyNames","getOwnPropertySymbols","combineComparators","comparatorA","comparatorB","state","createIsCircular","areItemsEqual","cachedA","cachedB","getShortTag","getStrictProperties","hasOwn","sameValueZeroEqual","PREACT_VNODE","PREACT_OWNER","REACT_OWNER","getOwnPropertyDescriptor","areArrayBuffersEqual","areTypedArraysEqual","areArraysEqual","areDataViewsEqual","areDatesEqual","areErrorsEqual","areFunctionsEqual","areMapsEqual","matchedIndices","aIterable","aResult","bResult","bIterable","hasMatch","matchIndex","aEntry","bEntry","areNumbersEqual","areObjectsEqual","properties","isPropertyEqual","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areUrlsEqual","ARRAY_BUFFER_TAG","ARGUMENTS_TAG","BOOLEAN_TAG","DATA_VIEW_TAG","DATE_TAG","ERROR_TAG","MAP_TAG","NUMBER_TAG","OBJECT_TAG","REG_EXP_TAG","SET_TAG","STRING_TAG","TYPED_ARRAY_TAGS","URL_TAG","createEqualityComparator","unknownTagComparators","unknownTagComparator","shortTag","createEqualityComparatorConfig","circular","createCustomConfig","strict","createInternalEqualityComparator","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","createState","equals","meta","deepEqual","createCustomEqual","createCustomInternalComparator","safeRequestAnimationFrame","setRafTimeout","timeout","currTime","shouldUpdate","_toArray","createAnimateManager","currStyle","handleChange","shouldStop","setStyle","_style","styles","_styles","curr","restStyles","_handleChange","hint","prim","getIntersectionKeys","preObj","nextObj","param","getDashCase","mapObject","getTransitionVal","duration","easing","prop","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","FSpring","FDamping","newV","newX","configEasing","alpha","needContinue","from","to","calStepperVals","preVals","steps","nextStepVals","_easing","_easing2","configUpdate","render","interKeys","timingStyle","stepperStyle","cafId","preTime","beginTime","update","getCurrStyle","shouldStopAnimation","stepperUpdate","deltaTime","timingUpdate","sourceKeys","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","Animate","_super","isActive","attributeName","canBegin","_this$props3","shouldReAnimate","currentFrom","newState","isTriggered","_newState","onAnimationEnd","onAnimationStart","startAnimation","finalStartAnimation","_this3","_steps$","initialStyle","_steps$$duration","initialTime","addStyle","nextItem","_nextItem$easing","nextProperties","preItem","transition","newStyle","propsTo","manager","_this$props4","stateStyle","cloneContainer","container","_container$props","_container$props$styl","PropTypes","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","isInRectangle","minX","maxX","minY","maxY","Rectangle","rectangleProps","totalLength","setTotalLength","pathTotalLength","animationBegin","isUpdateAnimationActive","currWidth","currHeight","currY","Dot","Cross","_ref$x","_ref$y","_ref$top","_ref$left","getPrototype","_getPrototype","objectCtorString","isPlainObject","isPlainObject_1","isBoolean","isBoolean_1","getTrapezoidPath","upperWidth","lowerWidth","widthGap","Trapezoid","trapezoidProps","currUpperWidth","currLowerWidth","defaultPropTransformer","isSymbolsProps","shapeType","_elementProps","ShapeSelector","elementProps","getPropsFromShapeOption","Shape","_ref2$propTransformer","propTransformer","_ref2$activeClassName","activeClassName","isFunnel","_item","isPie","isScatter","compareFunnel","shapeData","activeTooltipItem","_activeTooltipItem$la","_activeTooltipItem$la2","xMatches","yMatches","comparePie","startAngleMatches","endAngleMatches","compareScatter","zMatches","getComparisonFn","activeItem","comparison","getShapeDataKey","shapeKey","getActiveShapeTooltipPayload","_activeItem$tooltipPa","_activeItem$tooltipPa2","getActiveShapeIndexForTooltip","itemData","tooltipPayload","activeItemMatches","datum","dataIndex","valuesMatch","mouseCoordinateMatches","indexOfMouseCoordinates","coordinatesMatch","activeIndex","nativeCeil","baseRange","_baseRange","MAX_INTEGER","toFinite","toFinite_1","createRange","_createRange","range_1","PREFIX_LIST","generatePrefixStyle","camelName","createScale","travellerWidth","scalePoint","scaleValues","isTouch","Brush","onDragEnd","startX","endX","gap","minIndex","maxIndex","tickFormatter","_this$state","slideMoveStartX","onChange","newIndex","_this$state2","brushMoveStartX","movingTravellerId","prevValue","_this$props5","isFullGap","_this$state3","currentScaleValue","currentIndex","newScaleValue","_this$props6","_this$props7","chartElement","travellerX","_data$startIndex","_data$endIndex","_this$props8","traveller","ariaLabel","travellerProps","ariaLabelBrush","_this$props9","_this$props10","_this$state4","_this$props11","alwaysShowText","_this$state5","isTextActive","isSlideMoving","isTravellerMoving","isTravellerFocused","isPanoramic","lineY","rectangle","updateId","valueRange","baseSome","_baseSome","some","some_1","ifOverflowMatches","alwaysShow","ifOverflow","baseAssignValue","_baseAssignValue","mapValues","mapValues_1","arrayEvery","_arrayEvery","baseEvery","_baseEvery","every","every_1","typeguardBarRectangleProps","xProp","yProp","xValue","yValue","heightValue","widthValue","BarRectangle","minPointSizeCallback","minPointSize","isValueNumberOrNil","_Bar","Bar","activeBar","baseProps","animationId","prevData","stepData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","_this4","backgroundProps","background","needClip","clipPathId","errorBarItems","dataPoint","errorBarProps","isAnimationFinished","needClipX","needClipY","xAxisTicks","yAxisTicks","dataStartIndex","displayedData","pos","minPointSizeProp","stackedDomain","baseValue","cells","rects","baseValueScale","currentValueScale","computedHeight","_baseValueScale","_currentValueScale","_delta","formatAxisMap","axisMap","chartName","ids","orientation","_axis$padding","mirror","reversed","offsetKey","calculatedPadding","needSpace","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","_parseScale","finalAxis","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","coord","normalizeAngle","getAngledRectangleWidth","normalizedAngle","angleRadians","angleThreshold","angledWidth","createFind","findIndexFunc","_createFind","toInteger","remainder","toInteger_1","findIndex","findIndex_1","find","find_1","calculateViewBox","XAxisContext","YAxisContext","ViewBoxContext","OffsetContext","createContext","ClipPathIdContext","ChartHeightContext","ChartWidthContext","ChartLayoutContextProvider","_props$state","xAxisMap","yAxisMap","useClipPathId","useContext","useXAxisOrThrow","xAxisId","useArbitraryXAxis","useYAxisWithFiniteDomainOrRandom","yAxisWithFiniteDomain","useYAxisOrThrow","yAxisId","useViewBox","useOffset","useChartWidth","useChartHeight","renderLine","getEndPoints","isFixedX","isFixedY","isSegment","xAxisOrientation","yAxisOrientation","yCoord","xCoord","_coord","_points","segment","_points2","ReferenceLineImpl","fixedX","fixedY","isX","isY","endPoints","_endPoints","_endPoints$","_endPoints$2","clipPath","lineProps","ReferenceLine","getCoordinate","ReferenceDot","dotProps","getRect","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","p2","ReferenceArea","getEveryNthWithCondition","isValid","getAngledTickWidth","contentSize","unitSize","getTickBoundaries","sizeKey","isWidth","isVisible","tickPosition","getSize","getNumberIntervalTicks","getEquidistantTicks","boundaries","getTickSize","minTickGap","initialStart","stepsize","_loop","tickCoord","isShow","_ret","getTicksEnd","getTicksStart","preserveEnd","tail","tailSize","tailGap","isTailShow","_loop2","getTicks","fontSize","letterSpacing","tick","candidates","_excluded3","CartesianAxis","_Component","nextState","viewBoxOld","restPropsOld","htmlLayer","tickSize","tickMargin","tx","ty","finalTickSize","axisLine","needHeight","needWidth","tickLine","finalTicks","axisProps","customTickProps","tickLineProps","_this2$getTickLineCoo","lineCoord","tickProps","ticksGenerator","noTicksProps","tickItem","combinedClassName","Component","Background","fillOpacity","ry","renderLineItem","lineItem","_filterProps","restOfFilteredProps","HorizontalGridLines","_props$horizontal","horizontal","horizontalPoints","lineItemProps","VerticalGridLines","_props$vertical","vertical","verticalPoints","HorizontalStripes","horizontalFill","_props$horizontal2","roundedSortedHorizontalPoints","lastStripe","colorIndex","VerticalStripes","_props$vertical2","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","defaultHorizontalCoordinatesGenerator","CartesianGrid","_props$stroke","_props$fill","_props$horizontal3","_props$horizontalFill","_props$vertical3","_props$verticalFill","propsIncludingDefaults","horizontalValues","verticalValues","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","isVerticalValues","_generatorResult","Line","lines","lineLength","next","remainLength","restLength","remainLines","emptyLines","curveDom","clipDot","customDotProps","dots","dotsProps","curveProps","strokeDasharray","animateNewValues","prevPoints","prevPointsDiffFactor","prevPointIndex","_interpolatorX","_interpolatorY","curLength","currentStrokeDasharray","hasSinglePoint","_ref2$r","_ref2$strokeWidth","strokeWidth","_ref3$clipDot","dotSize","linesUnit","dotItem","_Area","Area","areaProps","startY","endY","isRange","prevBaseLine","stepPoints","stepBaseLine","_interpolator","chartBaseValue","itemBaseValue","domainMax","domainMin","hasStack","isHorizontalLayout","isBreakPoint","XAxisImpl","axisOptions","XAxis","React.Component","YAxisImpl","YAxis","detectReferenceElementsDomain","specifiedTicks","areas","idKey","valueKey","finalDomain","key1","key2","value2","has","Events","EE","addListener","emitter","listener","evt","clearEvent","EventEmitter","events","handlers","ee","listeners","a2","a3","a4","a5","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","_window","_window2","_this$container$getBo","scrollOffsetX","scrollOffsetY","pageX","pageY","isDomainSpecifiedByUser","domainStart","domainEnd","getCursorRectangle","activeCoordinate","tooltipAxisBandSize","getRadialCursorPoints","getCursorPoints","innerPoint","outerPoint","Cursor","_element$props$cursor","_defaultProps","element","tooltipEventType","activePayload","activeTooltipIndex","elementPropsCursor","cursorComp","_getRadialCursorPoint","cursorProps","ORIENT_MAP","FULL_WIDTH_AND_HEIGHT","originCoordinate","renderAsIs","calculateTooltipPos","rangeObj","getActiveCoordinate","tooltipTicks","_angle","_radius","getDisplayedData","graphicalItems","dataEndIndex","itemsData","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","_child$props$data","getTooltipData","rangeData","getAxisMapByAxes","axes","axisIdKey","stackOffset","isCategorical","_childProps$domain2","childProps","allowDuplicatedCategory","includeHidden","itemAxisId","categoricalDomain","defaultDomain","_childProps$domain","childDomain","duplicate","errorBarsDomain","_defaultProps2","_defaultProps3","itemHide","axisDomain","isDomainValid","getAxisMapByItems","Axis","_defaultProps4","_defaultProps5","getAxisMap","_ref4$axisType","AxisComp","tooltipTicksGenerator","createDefaultState","defaultShowTooltip","brushItem","hasGraphicalBarItem","getAxisNameByLayout","calculateOffset","prevLegendBBox","_ref5$xAxisMap","_ref5$yAxisMap","offsetH","offsetV","brushBottom","offsetWidth","offsetHeight","getCartesianAxisSize","axisObj","axisName","generateCategoricalChart","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","currentState","globalMaxBarSize","_getAxisNameByLayout","numericAxisName","cateAxisName","formattedItems","childMaxBarSize","axisObjInitialValue","cateAxis","cateTicks","itemIsBar","_getBandSizeOfAxis","barBandSize","composedFn","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","cateAxisMap","ticksObj","CategoricalChartWrapper","_props$id","_props$throttleDelay","cId","_ref9","mouse","_nextState","onMouseEnter","onMouseMove","onMouseLeave","eventName","_mouse","_nextState2","onClick","onMouseDown","_nextState3","onMouseUp","_nextState4","onDoubleClick","_nextState5","onContextMenu","_nextState6","syncMethod","chartX","chartY","validateChartX","validateChartY","_element$props$active","isTooltipActive","elementDefaultProps","axisOption","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","_tooltipItem$props$ac","tooltipItem","_this$state6","_this$state7","_element$props2","_element$props2$xAxis","_element$props2$yAxis","_ref10","activePoint","basePoint","childIndex","itemItemProps","activeDot","_this$state8","_item$props","activeShape","hasActive","itemEvents","findWithPayload","_this$getItemByXY","_ref11","_ref11$graphicalItem","_ref11$graphicalItem$","xyItem","_this$props$margin$le","_this$props$margin$to","tooltipElem","defaultIndex","independentAxisCoord","dependentAxisCoord","isHorizontal","scatterPlotElement","_ref12","_this$props$margin$le2","_this$props$margin$to2","eventType","boundingRect","containerOffset","_this$state9","toolTipData","xScale","yScale","scaledX","scaledY","isInRange","_this$state10","tooltipEvents","outerEvents","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$yAxisMap","chartXY","_this$state11","itemDisplayName","activeBarItem","_activeBarItem","compact","_this$props$tabIndex","_this$props$role","defaultState","_defaultState","keepFromPrevState","updatesToState","_brush$props$startInd","_brush$props","_brush$props$endIndex","_brush$props2","brush","hasDifferentStartOrEndIndex","hasGlobalData","newUpdateId","CategoricalChart","AreaChart","pivot","totals","sessionIds","pt","sid","fmtTs","ts","fmtTokens","gradId","sessionId","SessionsMemoryChart","jsx","jsxs","HEADERS","fmtAge","ms","pctClass","pct","fmtPct","fmtWindow","tokens","window","Sparkline","stepX","segments","indexSeries","ActiveSessionsTable","sessions","seriesById","srs","sparkPts","isSessionSample","WINDOWS","SummaryTiles","combinedTokens","maxWindow","combinedPct","SessionsTab","minutes","setMinutes","sessionsData","sessionsErr","refetchSessions","useApi","fetchSessions","timeseriesData","timeseriesErr","refetchTimeseries","fetchSessionTimeseries","useSSE","sampleEvents","lastSampleTs","windowLabel","Fragment"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383]} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/TimeSavedCard-B8AIjNTY.js b/extensions/dashboard-client/dist/assets/TimeSavedCard-DVRXGcYK.js similarity index 93% rename from extensions/dashboard-client/dist/assets/TimeSavedCard-B8AIjNTY.js rename to extensions/dashboard-client/dist/assets/TimeSavedCard-DVRXGcYK.js index 8b5c0cb..3c9d6a1 100644 --- a/extensions/dashboard-client/dist/assets/TimeSavedCard-B8AIjNTY.js +++ b/extensions/dashboard-client/dist/assets/TimeSavedCard-DVRXGcYK.js @@ -1,2 +1,2 @@ -import{j as e}from"./index-CqLN7STl.js";function l(a){const t=a??0;return t>=1048576?`${(t/1048576).toFixed(1)} MiB`:t>=1024?`${(t/1024).toFixed(1)} KiB`:`${t} B`}function n(a){const t=a??0;return t>=3600?`${(t/3600).toFixed(1)}h`:t>=60?`${Math.round(t/60)}m`:t>=1?`${t.toFixed(1)}s`:`${Math.round(t*1e3)}ms`}function r(a){const c=(a??0)*100;return c>=10?`${Math.round(c)}%`:`${c.toFixed(1)}%`}function s({label:a,value:t}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:a}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function u(a){return e.jsxs("div",{className:"card cache-hits-card",children:[e.jsx("h3",{children:"💾 Cache Hits & Compactions"}),e.jsx(s,{label:"Cache Hits (session)",value:a.cacheHitsSession.toLocaleString()}),e.jsx(s,{label:"Cache Hits (total)",value:a.cacheHitsTotal.toLocaleString()}),e.jsx(s,{label:"Tokens Saved (session)",value:a.tokensSavedSession.toLocaleString()}),e.jsx(s,{label:"Tokens Saved (total)",value:a.tokensSavedTotal.toLocaleString()}),e.jsx(s,{label:"Compactions (session)",value:a.compactionsSession.toLocaleString()}),e.jsx(s,{label:"Compactions (total)",value:a.compactionsTotal.toLocaleString()})]})}function o({label:a,value:t}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:a}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function d(a){return e.jsxs("div",{className:"card time-saved-card",children:[e.jsx("h3",{children:"⏱ Time Saved (est.)"}),e.jsx(o,{label:"Compact (session)",value:n(a.compactSessionSec)}),e.jsx(o,{label:"Compact (total)",value:n(a.compactTotalSec)}),e.jsx(o,{label:"Cache Hit (session)",value:n(a.cacheHitSessionSec)}),e.jsx(o,{label:"Cache Hit (total)",value:n(a.cacheHitTotalSec)})]})}export{u as C,d as T,l as a,r as f}; -//# sourceMappingURL=TimeSavedCard-B8AIjNTY.js.map +import{j as e}from"./index-CqpO7WrQ.js";function l(a){const t=a??0;return t>=1048576?`${(t/1048576).toFixed(1)} MiB`:t>=1024?`${(t/1024).toFixed(1)} KiB`:`${t} B`}function n(a){const t=a??0;return t>=3600?`${(t/3600).toFixed(1)}h`:t>=60?`${Math.round(t/60)}m`:t>=1?`${t.toFixed(1)}s`:`${Math.round(t*1e3)}ms`}function r(a){const c=(a??0)*100;return c>=10?`${Math.round(c)}%`:`${c.toFixed(1)}%`}function s({label:a,value:t}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:a}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function u(a){return e.jsxs("div",{className:"card cache-hits-card",children:[e.jsx("h3",{children:"💾 Cache Hits & Compactions"}),e.jsx(s,{label:"Cache Hits (session)",value:a.cacheHitsSession.toLocaleString()}),e.jsx(s,{label:"Cache Hits (total)",value:a.cacheHitsTotal.toLocaleString()}),e.jsx(s,{label:"Tokens Saved (session)",value:a.tokensSavedSession.toLocaleString()}),e.jsx(s,{label:"Tokens Saved (total)",value:a.tokensSavedTotal.toLocaleString()}),e.jsx(s,{label:"Compactions (session)",value:a.compactionsSession.toLocaleString()}),e.jsx(s,{label:"Compactions (total)",value:a.compactionsTotal.toLocaleString()})]})}function o({label:a,value:t}){return e.jsxs("div",{className:"ov-stat-row",children:[e.jsx("span",{className:"ov-stat-label",children:a}),e.jsx("span",{className:"ov-stat-value",children:t})]})}function d(a){return e.jsxs("div",{className:"card time-saved-card",children:[e.jsx("h3",{children:"⏱ Time Saved (est.)"}),e.jsx(o,{label:"Compact (session)",value:n(a.compactSessionSec)}),e.jsx(o,{label:"Compact (total)",value:n(a.compactTotalSec)}),e.jsx(o,{label:"Cache Hit (session)",value:n(a.cacheHitSessionSec)}),e.jsx(o,{label:"Cache Hit (total)",value:n(a.cacheHitTotalSec)})]})}export{u as C,d as T,l as a,r as f}; +//# sourceMappingURL=TimeSavedCard-DVRXGcYK.js.map diff --git a/extensions/dashboard-client/dist/assets/TimeSavedCard-B8AIjNTY.js.map b/extensions/dashboard-client/dist/assets/TimeSavedCard-DVRXGcYK.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/TimeSavedCard-B8AIjNTY.js.map rename to extensions/dashboard-client/dist/assets/TimeSavedCard-DVRXGcYK.js.map index a4e2e83..2ec2a20 100644 --- a/extensions/dashboard-client/dist/assets/TimeSavedCard-B8AIjNTY.js.map +++ b/extensions/dashboard-client/dist/assets/TimeSavedCard-DVRXGcYK.js.map @@ -1 +1 @@ -{"version":3,"file":"TimeSavedCard-B8AIjNTY.js","sources":["../../src/utils/format.ts","../../src/components/CacheHitsCard.tsx","../../src/components/TimeSavedCard.tsx"],"sourcesContent":["/**\n * dashboard-client/src/utils/format.ts — shared formatting helpers.\n *\n * Mirrors the format functions from the old static dashboard (html.ts)\n * so the React rewrite shows identical values.\n */\n\n/** Format bytes as KiB/MiB/B (matches html.ts fmtBytes). */\nexport function fmtBytes(b: number | null | undefined): string {\n\tconst n = b ?? 0;\n\tif (n >= 1_048_576) return `${(n / 1_048_576).toFixed(1)} MiB`;\n\tif (n >= 1024) return `${(n / 1024).toFixed(1)} KiB`;\n\treturn `${n} B`;\n}\n\n/** Format seconds as h/m/s/ms (matches html.ts fmtSec). */\nexport function fmtSec(s: number | null | undefined): string {\n\tconst n = s ?? 0;\n\tif (n >= 3600) return `${(n / 3600).toFixed(1)}h`;\n\tif (n >= 60) return `${Math.round(n / 60)}m`;\n\tif (n >= 1) return `${n.toFixed(1)}s`;\n\treturn `${Math.round(n * 1000)}ms`;\n}\n\n/**\n * Display a 0–1 fraction as a percentage string.\n * Uses one decimal place below 10%, rounded above (matches html.ts pct logic).\n */\nexport function fmtPctFromFraction(\n\tv: number | null | undefined,\n): string {\n\tconst n = v ?? 0;\n\tconst pct = n * 100;\n\tif (pct >= 10) return `${Math.round(pct)}%`;\n\treturn `${pct.toFixed(1)}%`;\n}\n\n/** Round a 0–1 fraction to a one-decimal percentage (for trophy values). */\nexport function fmtPct(v: number | null | undefined): string {\n\tconst n = v ?? 0;\n\treturn `${Math.round(n * 10) / 10}%`;\n}\n\n/** Format milliseconds (matches html.ts fmtMs). */\nexport function fmtMs(v: number | null | undefined): string {\n\tif (v == null) return \"\\u2014\";\n\treturn v >= 100 ? `${Math.round(v)}ms` : `${v.toFixed(1)}ms`;\n}\n\n/** Format a number with fixed decimals or em-dash for null (matches fmtNum). */\nexport function fmtNum(\n\tv: number | null | undefined,\n\tdec: number,\n): string {\n\tif (v == null || typeof v !== \"number\") return \"\\u2014\";\n\treturn v.toFixed(dec);\n}\n\n/** Collapse an array of numbers into a range string or single value. */\nexport function collapseNum(samples: number[]): string {\n\tif (samples.length === 0) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\tif (lo === hi) return lo.toLocaleString();\n\treturn `${lo.toLocaleString()}\\u2013${hi.toLocaleString()}`;\n}\n\n/** Collapse an array of rates into a range string or single value. */\nexport function collapseRate(samples: number[]): string {\n\tif (samples.length === 0) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\tif (lo === hi) return `$${lo.toFixed(6)}`;\n\treturn `$${lo.toFixed(6)}\\u2013$${hi.toFixed(6)}`;\n}\n\n/** Format a date string or null as locale string or em-dash. */\nexport function fmtDate(ts: string | number | null | undefined): string {\n\tif (!ts) return \"\\u2014\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn \"\\u2014\";\n\t}\n}\n","/**\n * dashboard-client/src/components/CacheHitsCard.tsx — Cache Hits & Compactions card.\n *\n * 6 fields: Cache Hits (session), Cache Hits (total),\n * Tokens Saved (session), Tokens Saved (total),\n * Compactions (session), Compactions (total).\n */\n\nimport type React from \"react\";\n\nexport interface CacheHitsCardProps {\n\t/** Cache hits in the current session. */\n\tcacheHitsSession: number;\n\t/** Total cache hits across all sessions. */\n\tcacheHitsTotal: number;\n\t/** Tokens saved by cache hits this session. */\n\ttokensSavedSession: number;\n\t/** Total tokens saved by cache hits. */\n\ttokensSavedTotal: number;\n\t/** Compactions performed this session. */\n\tcompactionsSession: number;\n\t/** Total compactions performed. */\n\tcompactionsTotal: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n}: {\n\tlabel: string;\n\tvalue: string | number;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t{label}\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function CacheHitsCard(\n\tprops: CacheHitsCardProps,\n): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t

    💾 Cache Hits & Compactions

    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/TimeSavedCard.tsx — Time Saved (est.) card.\n *\n * 4 fields: Compact (session), Compact (total),\n * Cache Hit (session), Cache Hit (total).\n */\n\nimport type React from \"react\";\nimport { fmtSec } from \"../utils/format\";\n\nexport interface TimeSavedCardProps {\n\t/** Seconds saved by compaction this session. */\n\tcompactSessionSec: number;\n\t/** Total seconds saved by compaction. */\n\tcompactTotalSec: number;\n\t/** Seconds saved by cache hits this session. */\n\tcacheHitSessionSec: number;\n\t/** Total seconds saved by cache hits. */\n\tcacheHitTotalSec: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n}: {\n\tlabel: string;\n\tvalue: string;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t{label}\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function TimeSavedCard(\n\tprops: TimeSavedCardProps,\n): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t

    ⏱ Time Saved (est.)

    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n"],"names":["fmtBytes","b","n","fmtSec","s","fmtPctFromFraction","v","pct","StatRow","label","value","jsxs","jsx","CacheHitsCard","props","TimeSavedCard"],"mappings":"wCAQO,SAASA,EAASC,EAAsC,CAC9D,MAAMC,EAAID,GAAK,EACf,OAAIC,GAAK,QAAkB,IAAIA,EAAI,SAAW,QAAQ,CAAC,CAAC,OACpDA,GAAK,KAAa,IAAIA,EAAI,MAAM,QAAQ,CAAC,CAAC,OACvC,GAAGA,CAAC,IACZ,CAGO,SAASC,EAAOC,EAAsC,CAC5D,MAAMF,EAAIE,GAAK,EACf,OAAIF,GAAK,KAAa,IAAIA,EAAI,MAAM,QAAQ,CAAC,CAAC,IAC1CA,GAAK,GAAW,GAAG,KAAK,MAAMA,EAAI,EAAE,CAAC,IACrCA,GAAK,EAAU,GAAGA,EAAE,QAAQ,CAAC,CAAC,IAC3B,GAAG,KAAK,MAAMA,EAAI,GAAI,CAAC,IAC/B,CAMO,SAASG,EACfC,EACS,CAET,MAAMC,GADID,GAAK,GACC,IAChB,OAAIC,GAAO,GAAW,GAAG,KAAK,MAAMA,CAAG,CAAC,IACjC,GAAGA,EAAI,QAAQ,CAAC,CAAC,GACzB,CCVA,SAASC,EAAQ,CAChB,MAAAC,EACA,MAAAC,CACD,EAGuB,CACtB,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,cACd,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAH,EAAM,EACvCG,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAF,CAAA,CAAM,CAAA,EACxC,CAEF,CAEO,SAASG,EACfC,EACqB,CACrB,OACCH,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,6BAAA,CAA+B,EACnCA,EAAAA,IAACJ,EAAA,CACA,MAAM,uBACN,MAAOM,EAAM,iBAAiB,eAAA,CAAe,CAAA,EAE9CF,EAAAA,IAACJ,EAAA,CACA,MAAM,qBACN,MAAOM,EAAM,eAAe,eAAA,CAAe,CAAA,EAE5CF,EAAAA,IAACJ,EAAA,CACA,MAAM,yBACN,MAAOM,EAAM,mBAAmB,eAAA,CAAe,CAAA,EAEhDF,EAAAA,IAACJ,EAAA,CACA,MAAM,uBACN,MAAOM,EAAM,iBAAiB,eAAA,CAAe,CAAA,EAE9CF,EAAAA,IAACJ,EAAA,CACA,MAAM,wBACN,MAAOM,EAAM,mBAAmB,eAAA,CAAe,CAAA,EAEhDF,EAAAA,IAACJ,EAAA,CACA,MAAM,sBACN,MAAOM,EAAM,iBAAiB,eAAA,CAAe,CAAA,CAC9C,EACD,CAEF,CCnDA,SAASN,EAAQ,CAChB,MAAAC,EACA,MAAAC,CACD,EAGuB,CACtB,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,cACd,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAH,EAAM,EACvCG,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAF,CAAA,CAAM,CAAA,EACxC,CAEF,CAEO,SAASK,EACfD,EACqB,CACrB,OACCH,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,qBAAA,CAAmB,EACvBA,EAAAA,IAACJ,EAAA,CACA,MAAM,oBACN,MAAOL,EAAOW,EAAM,iBAAiB,CAAA,CAAA,EAEtCF,EAAAA,IAACJ,EAAA,CACA,MAAM,kBACN,MAAOL,EAAOW,EAAM,eAAe,CAAA,CAAA,EAEpCF,EAAAA,IAACJ,EAAA,CACA,MAAM,sBACN,MAAOL,EAAOW,EAAM,kBAAkB,CAAA,CAAA,EAEvCF,EAAAA,IAACJ,EAAA,CACA,MAAM,oBACN,MAAOL,EAAOW,EAAM,gBAAgB,CAAA,CAAA,CACrC,EACD,CAEF"} \ No newline at end of file +{"version":3,"file":"TimeSavedCard-DVRXGcYK.js","sources":["../../src/utils/format.ts","../../src/components/CacheHitsCard.tsx","../../src/components/TimeSavedCard.tsx"],"sourcesContent":["/**\n * dashboard-client/src/utils/format.ts — shared formatting helpers.\n *\n * Mirrors the format functions from the old static dashboard (html.ts)\n * so the React rewrite shows identical values.\n */\n\n/** Format bytes as KiB/MiB/B (matches html.ts fmtBytes). */\nexport function fmtBytes(b: number | null | undefined): string {\n\tconst n = b ?? 0;\n\tif (n >= 1_048_576) return `${(n / 1_048_576).toFixed(1)} MiB`;\n\tif (n >= 1024) return `${(n / 1024).toFixed(1)} KiB`;\n\treturn `${n} B`;\n}\n\n/** Format seconds as h/m/s/ms (matches html.ts fmtSec). */\nexport function fmtSec(s: number | null | undefined): string {\n\tconst n = s ?? 0;\n\tif (n >= 3600) return `${(n / 3600).toFixed(1)}h`;\n\tif (n >= 60) return `${Math.round(n / 60)}m`;\n\tif (n >= 1) return `${n.toFixed(1)}s`;\n\treturn `${Math.round(n * 1000)}ms`;\n}\n\n/**\n * Display a 0–1 fraction as a percentage string.\n * Uses one decimal place below 10%, rounded above (matches html.ts pct logic).\n */\nexport function fmtPctFromFraction(\n\tv: number | null | undefined,\n): string {\n\tconst n = v ?? 0;\n\tconst pct = n * 100;\n\tif (pct >= 10) return `${Math.round(pct)}%`;\n\treturn `${pct.toFixed(1)}%`;\n}\n\n/** Round a 0–1 fraction to a one-decimal percentage (for trophy values). */\nexport function fmtPct(v: number | null | undefined): string {\n\tconst n = v ?? 0;\n\treturn `${Math.round(n * 10) / 10}%`;\n}\n\n/** Format milliseconds (matches html.ts fmtMs). */\nexport function fmtMs(v: number | null | undefined): string {\n\tif (v == null) return \"\\u2014\";\n\treturn v >= 100 ? `${Math.round(v)}ms` : `${v.toFixed(1)}ms`;\n}\n\n/** Format a number with fixed decimals or em-dash for null (matches fmtNum). */\nexport function fmtNum(\n\tv: number | null | undefined,\n\tdec: number,\n): string {\n\tif (v == null || typeof v !== \"number\") return \"\\u2014\";\n\treturn v.toFixed(dec);\n}\n\n/** Collapse an array of numbers into a range string or single value. */\nexport function collapseNum(samples: number[]): string {\n\tif (samples.length === 0) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\tif (lo === hi) return lo.toLocaleString();\n\treturn `${lo.toLocaleString()}\\u2013${hi.toLocaleString()}`;\n}\n\n/** Collapse an array of rates into a range string or single value. */\nexport function collapseRate(samples: number[]): string {\n\tif (samples.length === 0) return \"\\u2014\";\n\tconst lo = Math.min(...samples);\n\tconst hi = Math.max(...samples);\n\tif (lo === hi) return `$${lo.toFixed(6)}`;\n\treturn `$${lo.toFixed(6)}\\u2013$${hi.toFixed(6)}`;\n}\n\n/** Format a date string or null as locale string or em-dash. */\nexport function fmtDate(ts: string | number | null | undefined): string {\n\tif (!ts) return \"\\u2014\";\n\ttry {\n\t\treturn new Date(ts).toLocaleString();\n\t} catch {\n\t\treturn \"\\u2014\";\n\t}\n}\n","/**\n * dashboard-client/src/components/CacheHitsCard.tsx — Cache Hits & Compactions card.\n *\n * 6 fields: Cache Hits (session), Cache Hits (total),\n * Tokens Saved (session), Tokens Saved (total),\n * Compactions (session), Compactions (total).\n */\n\nimport type React from \"react\";\n\nexport interface CacheHitsCardProps {\n\t/** Cache hits in the current session. */\n\tcacheHitsSession: number;\n\t/** Total cache hits across all sessions. */\n\tcacheHitsTotal: number;\n\t/** Tokens saved by cache hits this session. */\n\ttokensSavedSession: number;\n\t/** Total tokens saved by cache hits. */\n\ttokensSavedTotal: number;\n\t/** Compactions performed this session. */\n\tcompactionsSession: number;\n\t/** Total compactions performed. */\n\tcompactionsTotal: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n}: {\n\tlabel: string;\n\tvalue: string | number;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t{label}\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function CacheHitsCard(\n\tprops: CacheHitsCardProps,\n): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t

    💾 Cache Hits & Compactions

    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/components/TimeSavedCard.tsx — Time Saved (est.) card.\n *\n * 4 fields: Compact (session), Compact (total),\n * Cache Hit (session), Cache Hit (total).\n */\n\nimport type React from \"react\";\nimport { fmtSec } from \"../utils/format\";\n\nexport interface TimeSavedCardProps {\n\t/** Seconds saved by compaction this session. */\n\tcompactSessionSec: number;\n\t/** Total seconds saved by compaction. */\n\tcompactTotalSec: number;\n\t/** Seconds saved by cache hits this session. */\n\tcacheHitSessionSec: number;\n\t/** Total seconds saved by cache hits. */\n\tcacheHitTotalSec: number;\n}\n\nfunction StatRow({\n\tlabel,\n\tvalue,\n}: {\n\tlabel: string;\n\tvalue: string;\n}): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t{label}\n\t\t\t{value}\n\t\t
    \n\t);\n}\n\nexport function TimeSavedCard(\n\tprops: TimeSavedCardProps,\n): React.ReactElement {\n\treturn (\n\t\t
    \n\t\t\t

    ⏱ Time Saved (est.)

    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t);\n}\n"],"names":["fmtBytes","b","n","fmtSec","s","fmtPctFromFraction","v","pct","StatRow","label","value","jsxs","jsx","CacheHitsCard","props","TimeSavedCard"],"mappings":"wCAQO,SAASA,EAASC,EAAsC,CAC9D,MAAMC,EAAID,GAAK,EACf,OAAIC,GAAK,QAAkB,IAAIA,EAAI,SAAW,QAAQ,CAAC,CAAC,OACpDA,GAAK,KAAa,IAAIA,EAAI,MAAM,QAAQ,CAAC,CAAC,OACvC,GAAGA,CAAC,IACZ,CAGO,SAASC,EAAOC,EAAsC,CAC5D,MAAMF,EAAIE,GAAK,EACf,OAAIF,GAAK,KAAa,IAAIA,EAAI,MAAM,QAAQ,CAAC,CAAC,IAC1CA,GAAK,GAAW,GAAG,KAAK,MAAMA,EAAI,EAAE,CAAC,IACrCA,GAAK,EAAU,GAAGA,EAAE,QAAQ,CAAC,CAAC,IAC3B,GAAG,KAAK,MAAMA,EAAI,GAAI,CAAC,IAC/B,CAMO,SAASG,EACfC,EACS,CAET,MAAMC,GADID,GAAK,GACC,IAChB,OAAIC,GAAO,GAAW,GAAG,KAAK,MAAMA,CAAG,CAAC,IACjC,GAAGA,EAAI,QAAQ,CAAC,CAAC,GACzB,CCVA,SAASC,EAAQ,CAChB,MAAAC,EACA,MAAAC,CACD,EAGuB,CACtB,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,cACd,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAH,EAAM,EACvCG,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAF,CAAA,CAAM,CAAA,EACxC,CAEF,CAEO,SAASG,EACfC,EACqB,CACrB,OACCH,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,6BAAA,CAA+B,EACnCA,EAAAA,IAACJ,EAAA,CACA,MAAM,uBACN,MAAOM,EAAM,iBAAiB,eAAA,CAAe,CAAA,EAE9CF,EAAAA,IAACJ,EAAA,CACA,MAAM,qBACN,MAAOM,EAAM,eAAe,eAAA,CAAe,CAAA,EAE5CF,EAAAA,IAACJ,EAAA,CACA,MAAM,yBACN,MAAOM,EAAM,mBAAmB,eAAA,CAAe,CAAA,EAEhDF,EAAAA,IAACJ,EAAA,CACA,MAAM,uBACN,MAAOM,EAAM,iBAAiB,eAAA,CAAe,CAAA,EAE9CF,EAAAA,IAACJ,EAAA,CACA,MAAM,wBACN,MAAOM,EAAM,mBAAmB,eAAA,CAAe,CAAA,EAEhDF,EAAAA,IAACJ,EAAA,CACA,MAAM,sBACN,MAAOM,EAAM,iBAAiB,eAAA,CAAe,CAAA,CAC9C,EACD,CAEF,CCnDA,SAASN,EAAQ,CAChB,MAAAC,EACA,MAAAC,CACD,EAGuB,CACtB,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,cACd,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAH,EAAM,EACvCG,EAAAA,IAAC,OAAA,CAAK,UAAU,gBAAiB,SAAAF,CAAA,CAAM,CAAA,EACxC,CAEF,CAEO,SAASK,EACfD,EACqB,CACrB,OACCH,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,qBAAA,CAAmB,EACvBA,EAAAA,IAACJ,EAAA,CACA,MAAM,oBACN,MAAOL,EAAOW,EAAM,iBAAiB,CAAA,CAAA,EAEtCF,EAAAA,IAACJ,EAAA,CACA,MAAM,kBACN,MAAOL,EAAOW,EAAM,eAAe,CAAA,CAAA,EAEpCF,EAAAA,IAACJ,EAAA,CACA,MAAM,sBACN,MAAOL,EAAOW,EAAM,kBAAkB,CAAA,CAAA,EAEvCF,EAAAA,IAACJ,EAAA,CACA,MAAM,oBACN,MAAOL,EAAOW,EAAM,gBAAgB,CAAA,CAAA,CACrC,EACD,CAEF"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/TopicsTab-DKuct4oD.js b/extensions/dashboard-client/dist/assets/TopicsTab-BznmkVJs.js similarity index 91% rename from extensions/dashboard-client/dist/assets/TopicsTab-DKuct4oD.js rename to extensions/dashboard-client/dist/assets/TopicsTab-BznmkVJs.js index 763808a..a87ec9e 100644 --- a/extensions/dashboard-client/dist/assets/TopicsTab-DKuct4oD.js +++ b/extensions/dashboard-client/dist/assets/TopicsTab-BznmkVJs.js @@ -1,2 +1,2 @@ -import{u as m,r as a,m as u,n as p,j as e}from"./index-CqLN7STl.js";function b(s){return s?new Date(s).toLocaleString():"—"}function f(){const{data:s,loading:h,error:n}=m(a.useCallback(()=>u(),[]),{pollInterval:3e4}),[l,x]=a.useState(""),[i,o]=a.useState(null),r=m(a.useCallback(()=>i?p(i):Promise.reject(),[i]),{pollInterval:0}),d=a.useMemo(()=>{if(!s)return[];const t=l.trim().toLowerCase();return t?s.topics.filter(c=>c.label.toLowerCase().includes(t)||c.termScore.some(j=>j.term.toLowerCase().includes(t))):s.topics},[s,l]);return n&&!s?e.jsxs("div",{className:"tab-stub",children:["Error loading topics: ",n.message]}):h&&!s?e.jsx("div",{className:"tab-stub",children:"Loading topics…"}):s?s.totalTopics===0?e.jsxs("div",{className:"tab-stub",children:[e.jsx("h3",{children:"Wiki"}),e.jsx("p",{children:"No topics yet. Topics are auto-generated after every 10th compaction from real memory embeddings (k-means + TF-IDF)."}),e.jsx("p",{children:"Check back after a few more compaction cycles."})]}):e.jsxs("div",{className:"tab-content topics-tab",children:[e.jsx("h3",{children:"Wiki"}),e.jsxs("p",{className:"subtitle",children:[s.totalTopics," topic",s.totalTopics!==1?"s":""," ·"," ",s.totalAssigned," assigned memori",s.totalAssigned!==1?"es":"y",s.lastRebuildAt!=null&&e.jsxs(e.Fragment,{children:[" · last rebuild ",new Date(s.lastRebuildAt).toLocaleString()]})]}),e.jsx("input",{type:"search",className:"topics-search",placeholder:"Filter topics by label or term…",value:l,onChange:t=>x(t.target.value)}),i&&e.jsxs("section",{className:"topic-drilldown",children:[e.jsxs("h4",{children:[e.jsx("button",{type:"button",className:"link-btn",onClick:()=>o(null),children:"← back"})," ","Topic ",e.jsx("code",{children:i}),r.data&&e.jsxs(e.Fragment,{children:[" · ",r.data.label]}),r.data&&e.jsxs(e.Fragment,{children:[" · ",r.data.assignments.length," memories"]})]}),r.error?e.jsxs("div",{className:"tab-stub",children:["Error: ",r.error.message]}):r.loading&&!r.data?e.jsx("div",{className:"tab-stub",children:"Loading memories…"}):r.data?e.jsxs("table",{className:"data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Memory id"}),e.jsx("th",{children:"Confidence"}),e.jsx("th",{children:"Assigned"})]})}),e.jsx("tbody",{children:r.data.assignments.map(t=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:t.memoryId})}),e.jsx("td",{children:t.confidence!=null?t.confidence.toFixed(2):"—"}),e.jsx("td",{children:b(t.assignedAt)})]},t.memoryId))})]}):null]}),!i&&e.jsxs("table",{className:"data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Label"}),e.jsx("th",{children:"Memories"}),e.jsx("th",{children:"Top Terms"}),e.jsx("th",{})]})}),e.jsxs("tbody",{children:[d.map(t=>e.jsxs("tr",{className:"topic-row",onClick:()=>o(t.id),style:{cursor:"pointer"},children:[e.jsx("td",{className:"topic-label",children:t.label}),e.jsx("td",{className:"topic-count",children:t.memoryCount}),e.jsx("td",{className:"topic-terms",children:t.termScore.slice(0,8).map(c=>c.term).join(", ")}),e.jsx("td",{children:e.jsx("button",{type:"button",className:"mini-btn",children:"drill"})})]},t.id)),d.length===0&&e.jsx("tr",{children:e.jsxs("td",{colSpan:4,className:"muted",children:["No topics match “",l,"”."]})})]})]})]}):e.jsx("div",{className:"tab-stub",children:"No topic data available."})}export{f as default}; -//# sourceMappingURL=TopicsTab-DKuct4oD.js.map +import{u as h,r as a,n as u,o as p,j as e}from"./index-CqpO7WrQ.js";function b(s){return s?new Date(s).toLocaleString():"—"}function f(){const{data:s,loading:m,error:n}=h(a.useCallback(()=>u(),[]),{pollInterval:3e4}),[l,x]=a.useState(""),[i,o]=a.useState(null),r=h(a.useCallback(()=>i?p(i):Promise.reject(),[i]),{pollInterval:0}),d=a.useMemo(()=>{if(!s)return[];const t=l.trim().toLowerCase();return t?s.topics.filter(c=>c.label.toLowerCase().includes(t)||c.termScore.some(j=>j.term.toLowerCase().includes(t))):s.topics},[s,l]);return n&&!s?e.jsxs("div",{className:"tab-stub",children:["Error loading topics: ",n.message]}):m&&!s?e.jsx("div",{className:"tab-stub",children:"Loading topics…"}):s?s.totalTopics===0?e.jsxs("div",{className:"tab-stub",children:[e.jsx("h3",{children:"Wiki"}),e.jsx("p",{children:"No topics yet. Topics are auto-generated after every 10th compaction from real memory embeddings (k-means + TF-IDF)."}),e.jsx("p",{children:"Check back after a few more compaction cycles."})]}):e.jsxs("div",{className:"tab-content topics-tab",children:[e.jsx("h3",{children:"Wiki"}),e.jsxs("p",{className:"subtitle",children:[s.totalTopics," topic",s.totalTopics!==1?"s":""," ·"," ",s.totalAssigned," assigned memori",s.totalAssigned!==1?"es":"y",s.lastRebuildAt!=null&&e.jsxs(e.Fragment,{children:[" · last rebuild ",new Date(s.lastRebuildAt).toLocaleString()]})]}),e.jsx("input",{type:"search",className:"topics-search",placeholder:"Filter topics by label or term…",value:l,onChange:t=>x(t.target.value)}),i&&e.jsxs("section",{className:"topic-drilldown",children:[e.jsxs("h4",{children:[e.jsx("button",{type:"button",className:"link-btn",onClick:()=>o(null),children:"← back"})," ","Topic ",e.jsx("code",{children:i}),r.data&&e.jsxs(e.Fragment,{children:[" · ",r.data.label]}),r.data&&e.jsxs(e.Fragment,{children:[" · ",r.data.assignments.length," memories"]})]}),r.error?e.jsxs("div",{className:"tab-stub",children:["Error: ",r.error.message]}):r.loading&&!r.data?e.jsx("div",{className:"tab-stub",children:"Loading memories…"}):r.data?e.jsxs("table",{className:"data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Memory id"}),e.jsx("th",{children:"Confidence"}),e.jsx("th",{children:"Assigned"})]})}),e.jsx("tbody",{children:r.data.assignments.map(t=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:t.memoryId})}),e.jsx("td",{children:t.confidence!=null?t.confidence.toFixed(2):"—"}),e.jsx("td",{children:b(t.assignedAt)})]},t.memoryId))})]}):null]}),!i&&e.jsxs("table",{className:"data-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Label"}),e.jsx("th",{children:"Memories"}),e.jsx("th",{children:"Top Terms"}),e.jsx("th",{})]})}),e.jsxs("tbody",{children:[d.map(t=>e.jsxs("tr",{className:"topic-row",onClick:()=>o(t.id),style:{cursor:"pointer"},children:[e.jsx("td",{className:"topic-label",children:t.label}),e.jsx("td",{className:"topic-count",children:t.memoryCount}),e.jsx("td",{className:"topic-terms",children:t.termScore.slice(0,8).map(c=>c.term).join(", ")}),e.jsx("td",{children:e.jsx("button",{type:"button",className:"mini-btn",children:"drill"})})]},t.id)),d.length===0&&e.jsx("tr",{children:e.jsxs("td",{colSpan:4,className:"muted",children:["No topics match “",l,"”."]})})]})]})]}):e.jsx("div",{className:"tab-stub",children:"No topic data available."})}export{f as default}; +//# sourceMappingURL=TopicsTab-BznmkVJs.js.map diff --git a/extensions/dashboard-client/dist/assets/TopicsTab-DKuct4oD.js.map b/extensions/dashboard-client/dist/assets/TopicsTab-BznmkVJs.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/TopicsTab-DKuct4oD.js.map rename to extensions/dashboard-client/dist/assets/TopicsTab-BznmkVJs.js.map index 97e2a0e..d1151a1 100644 --- a/extensions/dashboard-client/dist/assets/TopicsTab-DKuct4oD.js.map +++ b/extensions/dashboard-client/dist/assets/TopicsTab-BznmkVJs.js.map @@ -1 +1 @@ -{"version":3,"file":"TopicsTab-DKuct4oD.js","sources":["../../src/tabs/TopicsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/TopicsTab.tsx — Auto-categorizing wiki (S51 + S52 polish).\n *\n * Fetches /api/topics and renders the k-means + TF-IDF topic clusters. S52 polish\n * adds: (1) a search box filtering topics by label / discriminative term, and\n * (2) a topic drill-down — click a topic to load its member memories\n * (/api/topics/:id/memories). Read-only; no write operations.\n */\n\nimport type React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchTopics, fetchTopicMemories } from \"../api/client\";\nimport type { TopicsResponse, TopicMemoriesResponse } from \"@contracts\";\n\nfunction fmtTs(ms: number | null): string {\n\tif (!ms) return \"—\";\n\treturn new Date(ms).toLocaleString();\n}\n\nexport default function TopicsTab(): React.ReactElement {\n\tconst { data, loading, error } = useApi(\n\t\tuseCallback(() => fetchTopics(), []),\n\t\t{ pollInterval: 30_000 },\n\t);\n\tconst [query, setQuery] = useState(\"\");\n\tconst [drillTopicId, setDrillTopicId] = useState(null);\n\n\tconst drill = useApi(\n\t\tuseCallback(\n\t\t\t() =>\n\t\t\t\tdrillTopicId ? fetchTopicMemories(drillTopicId) : Promise.reject(),\n\t\t\t[drillTopicId],\n\t\t),\n\t\t{ pollInterval: 0 },\n\t);\n\n\tconst filtered = useMemo(() => {\n\t\tif (!data) return [];\n\t\tconst q = query.trim().toLowerCase();\n\t\tif (!q) return data.topics;\n\t\treturn data.topics.filter(\n\t\t\t(t) =>\n\t\t\t\tt.label.toLowerCase().includes(q) ||\n\t\t\t\tt.termScore.some((s) => s.term.toLowerCase().includes(q)),\n\t\t);\n\t}, [data, query]);\n\n\tif (error && !data) {\n\t\treturn (\n\t\t\t
    Error loading topics: {error.message}
    \n\t\t);\n\t}\n\tif (loading && !data) {\n\t\treturn
    Loading topics…
    ;\n\t}\n\tif (!data) {\n\t\treturn
    No topic data available.
    ;\n\t}\n\n\tif (data.totalTopics === 0) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Wiki

    \n\t\t\t\t

    \n\t\t\t\t\tNo topics yet. Topics are auto-generated after every 10th compaction\n\t\t\t\t\tfrom real memory embeddings (k-means + TF-IDF).\n\t\t\t\t

    \n\t\t\t\t

    Check back after a few more compaction cycles.

    \n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    Wiki

    \n\t\t\t

    \n\t\t\t\t{data.totalTopics} topic{data.totalTopics !== 1 ? \"s\" : \"\"} ·{\" \"}\n\t\t\t\t{data.totalAssigned} assigned memori\n\t\t\t\t{data.totalAssigned !== 1 ? \"es\" : \"y\"}\n\t\t\t\t{data.lastRebuildAt != null && (\n\t\t\t\t\t<> · last rebuild {new Date(data.lastRebuildAt).toLocaleString()}\n\t\t\t\t)}\n\t\t\t

    \n\n\t\t\t setQuery(e.target.value)}\n\t\t\t/>\n\n\t\t\t{drillTopicId && (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t setDrillTopicId(null)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t← back\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\tTopic {drillTopicId}\n\t\t\t\t\t\t{drill.data && <> · {drill.data.label}}\n\t\t\t\t\t\t{drill.data && <> · {drill.data.assignments.length} memories}\n\t\t\t\t\t

    \n\t\t\t\t\t{drill.error ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tError: {(drill.error as Error).message}\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : drill.loading && !drill.data ? (\n\t\t\t\t\t\t
    Loading memories…
    \n\t\t\t\t\t) : drill.data ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{drill.data.assignments.map((a) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    Memory idConfidenceAssigned
    \n\t\t\t\t\t\t\t\t\t\t\t{a.memoryId}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{a.confidence != null ? a.confidence.toFixed(2) : \"—\"}\n\t\t\t\t\t\t\t\t\t\t{fmtTs(a.assignedAt)}
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{!drillTopicId && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{filtered.map((t) => (\n\t\t\t\t\t\t\t setDrillTopicId(t.id)}\n\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{filtered.length === 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t
    LabelMemoriesTop Terms
    {t.label}{t.memoryCount}\n\t\t\t\t\t\t\t\t\t{t.termScore\n\t\t\t\t\t\t\t\t\t\t.slice(0, 8)\n\t\t\t\t\t\t\t\t\t\t.map((s) => s.term)\n\t\t\t\t\t\t\t\t\t\t.join(\", \")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\tNo topics match “{query}”.\n\t\t\t\t\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n"],"names":["fmtTs","ms","TopicsTab","data","loading","error","useApi","useCallback","fetchTopics","query","setQuery","useState","drillTopicId","setDrillTopicId","drill","fetchTopicMemories","filtered","useMemo","q","t","s","jsxs","jsx","Fragment","e","a"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"TopicsTab-BznmkVJs.js","sources":["../../src/tabs/TopicsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/TopicsTab.tsx — Auto-categorizing wiki (S51 + S52 polish).\n *\n * Fetches /api/topics and renders the k-means + TF-IDF topic clusters. S52 polish\n * adds: (1) a search box filtering topics by label / discriminative term, and\n * (2) a topic drill-down — click a topic to load its member memories\n * (/api/topics/:id/memories). Read-only; no write operations.\n */\n\nimport type React from \"react\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchTopics, fetchTopicMemories } from \"../api/client\";\nimport type { TopicsResponse, TopicMemoriesResponse } from \"@contracts\";\n\nfunction fmtTs(ms: number | null): string {\n\tif (!ms) return \"—\";\n\treturn new Date(ms).toLocaleString();\n}\n\nexport default function TopicsTab(): React.ReactElement {\n\tconst { data, loading, error } = useApi(\n\t\tuseCallback(() => fetchTopics(), []),\n\t\t{ pollInterval: 30_000 },\n\t);\n\tconst [query, setQuery] = useState(\"\");\n\tconst [drillTopicId, setDrillTopicId] = useState(null);\n\n\tconst drill = useApi(\n\t\tuseCallback(\n\t\t\t() =>\n\t\t\t\tdrillTopicId ? fetchTopicMemories(drillTopicId) : Promise.reject(),\n\t\t\t[drillTopicId],\n\t\t),\n\t\t{ pollInterval: 0 },\n\t);\n\n\tconst filtered = useMemo(() => {\n\t\tif (!data) return [];\n\t\tconst q = query.trim().toLowerCase();\n\t\tif (!q) return data.topics;\n\t\treturn data.topics.filter(\n\t\t\t(t) =>\n\t\t\t\tt.label.toLowerCase().includes(q) ||\n\t\t\t\tt.termScore.some((s) => s.term.toLowerCase().includes(q)),\n\t\t);\n\t}, [data, query]);\n\n\tif (error && !data) {\n\t\treturn (\n\t\t\t
    Error loading topics: {error.message}
    \n\t\t);\n\t}\n\tif (loading && !data) {\n\t\treturn
    Loading topics…
    ;\n\t}\n\tif (!data) {\n\t\treturn
    No topic data available.
    ;\n\t}\n\n\tif (data.totalTopics === 0) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Wiki

    \n\t\t\t\t

    \n\t\t\t\t\tNo topics yet. Topics are auto-generated after every 10th compaction\n\t\t\t\t\tfrom real memory embeddings (k-means + TF-IDF).\n\t\t\t\t

    \n\t\t\t\t

    Check back after a few more compaction cycles.

    \n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    Wiki

    \n\t\t\t

    \n\t\t\t\t{data.totalTopics} topic{data.totalTopics !== 1 ? \"s\" : \"\"} ·{\" \"}\n\t\t\t\t{data.totalAssigned} assigned memori\n\t\t\t\t{data.totalAssigned !== 1 ? \"es\" : \"y\"}\n\t\t\t\t{data.lastRebuildAt != null && (\n\t\t\t\t\t<> · last rebuild {new Date(data.lastRebuildAt).toLocaleString()}\n\t\t\t\t)}\n\t\t\t

    \n\n\t\t\t setQuery(e.target.value)}\n\t\t\t/>\n\n\t\t\t{drillTopicId && (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t setDrillTopicId(null)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t← back\n\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\tTopic {drillTopicId}\n\t\t\t\t\t\t{drill.data && <> · {drill.data.label}}\n\t\t\t\t\t\t{drill.data && <> · {drill.data.assignments.length} memories}\n\t\t\t\t\t

    \n\t\t\t\t\t{drill.error ? (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tError: {(drill.error as Error).message}\n\t\t\t\t\t\t
    \n\t\t\t\t\t) : drill.loading && !drill.data ? (\n\t\t\t\t\t\t
    Loading memories…
    \n\t\t\t\t\t) : drill.data ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{drill.data.assignments.map((a) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    Memory idConfidenceAssigned
    \n\t\t\t\t\t\t\t\t\t\t\t{a.memoryId}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{a.confidence != null ? a.confidence.toFixed(2) : \"—\"}\n\t\t\t\t\t\t\t\t\t\t{fmtTs(a.assignedAt)}
    \n\t\t\t\t\t) : null}\n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t{!drillTopicId && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{filtered.map((t) => (\n\t\t\t\t\t\t\t setDrillTopicId(t.id)}\n\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{filtered.length === 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t
    LabelMemoriesTop Terms
    {t.label}{t.memoryCount}\n\t\t\t\t\t\t\t\t\t{t.termScore\n\t\t\t\t\t\t\t\t\t\t.slice(0, 8)\n\t\t\t\t\t\t\t\t\t\t.map((s) => s.term)\n\t\t\t\t\t\t\t\t\t\t.join(\", \")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\tNo topics match “{query}”.\n\t\t\t\t\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n"],"names":["fmtTs","ms","TopicsTab","data","loading","error","useApi","useCallback","fetchTopics","query","setQuery","useState","drillTopicId","setDrillTopicId","drill","fetchTopicMemories","filtered","useMemo","q","t","s","jsxs","jsx","Fragment","e","a"],"mappings":"oEAeA,SAASA,EAAMC,EAA2B,CACzC,OAAKA,EACE,IAAI,KAAKA,CAAE,EAAE,eAAA,EADJ,GAEjB,CAEA,SAAwBC,GAAgC,CACvD,KAAM,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,CAAA,EAAUC,EAChCC,cAAY,IAAMC,EAAA,EAAe,EAAE,EACnC,CAAE,aAAc,GAAA,CAAO,EAElB,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAS,EAAE,EAC/B,CAACC,EAAcC,CAAe,EAAIF,EAAAA,SAAwB,IAAI,EAE9DG,EAAQR,EACbC,EAAAA,YACC,IACCK,EAAeG,EAAmBH,CAAY,EAAI,QAAQ,OAAA,EAC3D,CAACA,CAAY,CAAA,EAEd,CAAE,aAAc,CAAA,CAAE,EAGbI,EAAWC,EAAAA,QAAQ,IAAM,CAC9B,GAAI,CAACd,EAAM,MAAO,CAAA,EAClB,MAAMe,EAAIT,EAAM,KAAA,EAAO,YAAA,EACvB,OAAKS,EACEf,EAAK,OAAO,OACjBgB,GACAA,EAAE,MAAM,cAAc,SAASD,CAAC,GAChCC,EAAE,UAAU,KAAMC,GAAMA,EAAE,KAAK,cAAc,SAASF,CAAC,CAAC,CAAA,EAJ3Cf,EAAK,MAMrB,EAAG,CAACA,EAAMM,CAAK,CAAC,EAEhB,OAAIJ,GAAS,CAACF,EAEZkB,EAAAA,KAAC,MAAA,CAAI,UAAU,WAAW,SAAA,CAAA,yBAAuBhB,EAAM,OAAA,EAAQ,EAG7DD,GAAW,CAACD,EACRmB,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,kBAAe,EAE5CnB,EAIDA,EAAK,cAAgB,EAEvBkB,EAAAA,KAAC,MAAA,CAAI,UAAU,WACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,MAAA,CAAI,EACRA,EAAAA,IAAC,KAAE,SAAA,sHAAA,CAGH,EACAA,EAAAA,IAAC,KAAE,SAAA,gDAAA,CAA8C,CAAA,EAClD,EAKDD,EAAAA,KAAC,MAAA,CAAI,UAAU,yBACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,MAAA,CAAI,EACRD,EAAAA,KAAC,IAAA,CAAE,UAAU,WACX,SAAA,CAAAlB,EAAK,YAAY,SAAOA,EAAK,cAAgB,EAAI,IAAM,GAAG,KAAG,IAC7DA,EAAK,cAAc,mBACnBA,EAAK,gBAAkB,EAAI,KAAO,IAClCA,EAAK,eAAiB,MACtBkB,EAAAA,KAAAE,EAAAA,SAAA,CAAE,SAAA,CAAA,mBAAiB,IAAI,KAAKpB,EAAK,aAAa,EAAE,eAAA,CAAe,CAAA,CAAE,CAAA,EAEnE,EAEAmB,EAAAA,IAAC,QAAA,CACA,KAAK,SACL,UAAU,gBACV,YAAY,kCACZ,MAAOb,EACP,SAAWe,GAAMd,EAASc,EAAE,OAAO,KAAK,CAAA,CAAA,EAGxCZ,GACAS,EAAAA,KAAC,UAAA,CAAQ,UAAU,kBAClB,SAAA,CAAAA,OAAC,KAAA,CACA,SAAA,CAAAC,EAAAA,IAAC,SAAA,CACA,KAAK,SACL,UAAU,WACV,QAAS,IAAMT,EAAgB,IAAI,EACnC,SAAA,QAAA,CAAA,EAES,IAAI,SACRS,EAAAA,IAAC,QAAM,SAAAV,CAAA,CAAa,EACzBE,EAAM,MAAQO,EAAAA,KAAAE,EAAAA,SAAA,CAAE,SAAA,CAAA,MAAIT,EAAM,KAAK,KAAA,EAAM,EACrCA,EAAM,MAAQO,EAAAA,KAAAE,EAAAA,SAAA,CAAE,SAAA,CAAA,MAAIT,EAAM,KAAK,YAAY,OAAO,WAAA,CAAA,CAAS,CAAA,EAC7D,EACCA,EAAM,MACNO,OAAC,MAAA,CAAI,UAAU,WAAW,SAAA,CAAA,UAChBP,EAAM,MAAgB,OAAA,EAChC,EACGA,EAAM,SAAW,CAACA,EAAM,KAC3BQ,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,6BAAiB,EACxCR,EAAM,KACTO,OAAC,QAAA,CAAM,UAAU,aAChB,SAAA,CAAAC,EAAAA,IAAC,QAAA,CACA,gBAAC,KAAA,CACA,SAAA,CAAAA,EAAAA,IAAC,MAAG,SAAA,WAAA,CAAS,EACbA,EAAAA,IAAC,MAAG,SAAA,YAAA,CAAU,EACdA,EAAAA,IAAC,MAAG,SAAA,UAAA,CAAQ,CAAA,CAAA,CACb,CAAA,CACD,EACAA,EAAAA,IAAC,SACC,SAAAR,EAAM,KAAK,YAAY,IAAKW,GAC5BJ,EAAAA,KAAC,KAAA,CACA,SAAA,CAAAC,EAAAA,IAAC,KAAA,CACA,SAAAA,MAAC,OAAA,CAAM,SAAAG,EAAE,SAAS,EACnB,EACAH,EAAAA,IAAC,KAAA,CACC,SAAAG,EAAE,YAAc,KAAOA,EAAE,WAAW,QAAQ,CAAC,EAAI,GAAA,CACnD,EACAH,EAAAA,IAAC,KAAA,CAAI,SAAAtB,EAAMyB,EAAE,UAAU,CAAA,CAAE,CAAA,GAPjBA,EAAE,QAQX,CACA,CAAA,CACF,CAAA,CAAA,CACD,EACG,IAAA,EACL,EAGA,CAACb,GACDS,EAAAA,KAAC,QAAA,CAAM,UAAU,aAChB,SAAA,CAAAC,EAAAA,IAAC,QAAA,CACA,gBAAC,KAAA,CACA,SAAA,CAAAA,EAAAA,IAAC,MAAG,SAAA,OAAA,CAAK,EACTA,EAAAA,IAAC,MAAG,SAAA,UAAA,CAAQ,EACZA,EAAAA,IAAC,MAAG,SAAA,WAAA,CAAS,QACZ,KAAA,CAAA,CAAG,CAAA,CAAA,CACL,CAAA,CACD,SACC,QAAA,CACC,SAAA,CAAAN,EAAS,IAAK,GACdK,EAAAA,KAAC,KAAA,CAEA,UAAU,YACV,QAAS,IAAMR,EAAgB,EAAE,EAAE,EACnC,MAAO,CAAE,OAAQ,SAAA,EAEjB,SAAA,CAAAS,EAAAA,IAAC,KAAA,CAAG,UAAU,cAAe,SAAA,EAAE,MAAM,EACrCA,EAAAA,IAAC,KAAA,CAAG,UAAU,cAAe,WAAE,YAAY,QAC1C,KAAA,CAAG,UAAU,cACZ,SAAA,EAAE,UACD,MAAM,EAAG,CAAC,EACV,IAAKF,GAAMA,EAAE,IAAI,EACjB,KAAK,IAAI,EACZ,EACAE,EAAAA,IAAC,MACA,SAAAA,EAAAA,IAAC,SAAA,CAAO,KAAK,SAAS,UAAU,WAAW,SAAA,OAAA,CAE3C,CAAA,CACD,CAAA,CAAA,EAjBK,EAAE,EAAA,CAmBR,EACAN,EAAS,SAAW,GACpBM,EAAAA,IAAC,KAAA,CACA,gBAAC,KAAA,CAAG,QAAS,EAAG,UAAU,QAAQ,SAAA,CAAA,oBACfb,EAAM,IAAA,CAAA,CACzB,CAAA,CACD,CAAA,CAAA,CAEF,CAAA,CAAA,CACD,CAAA,EAEF,EA9HOa,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,2BAAwB,CAgI3D"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/TurnsTab-11MGLxY8.js b/extensions/dashboard-client/dist/assets/TurnsTab-D2wpt2Nu.js similarity index 96% rename from extensions/dashboard-client/dist/assets/TurnsTab-11MGLxY8.js rename to extensions/dashboard-client/dist/assets/TurnsTab-D2wpt2Nu.js index 12c318f..1f2e815 100644 --- a/extensions/dashboard-client/dist/assets/TurnsTab-11MGLxY8.js +++ b/extensions/dashboard-client/dist/assets/TurnsTab-D2wpt2Nu.js @@ -1,2 +1,2 @@ -import{u as f,r,o as C,q as w,s as I,t as T,v as $,j as e}from"./index-CqLN7STl.js";function j(n){return n?new Date(n).toLocaleString():"—"}function E(n){return n==="green"?"band band-green":n==="yellow"?"band band-yellow":n==="red"?"band band-red":"band"}function L(n){return n==="checkpoint"?"ckpt":n==="cluster_summary"?"raptor":"mem"}function S(){const{data:n,loading:i,error:d}=f(r.useCallback(()=>C(),[]),{pollInterval:1e4}),{data:c}=f(r.useCallback(()=>w(),[]),{pollInterval:5e3}),[s,l]=r.useState(null),[m,x]=r.useState(null),[v,p]=r.useState(!1),[N,u]=r.useState(null),[b,o]=r.useState(null),g=r.useCallback(async t=>{if(s===t){l(null),x(null);return}l(t),p(!0),x(null);try{const a=await I(t);x(a)}finally{p(!1)}},[s]),y=r.useCallback(async(t,a)=>{u(`fork:${t}:${a}`),o(null);try{const h=await T(t,a);o(`Forked → ${h.childConversationId} (${h.recalledCount} recalled)`)}catch(h){o(`Fork failed: ${h.message}`)}finally{u(null)}},[]),k=r.useCallback(async(t,a)=>{u(`rewind:${t}:${a}`),o(null);try{await $(t,a),o(`Rewind intent queued for turn ${a}`)}catch(h){o(`Rewind failed: ${h.message}`)}finally{u(null)}},[]);return d&&!n?e.jsxs("div",{className:"tab-stub",children:["Error loading turns: ",d.message]}):i&&!n?e.jsx("div",{className:"tab-stub",children:"Loading turns…"}):!n||n.conversations.length===0?e.jsxs("div",{className:"tab-stub",children:[e.jsx("h3",{children:"Turn-by-turn memory"}),e.jsxs("p",{children:["No turns recorded yet. Per-turn tracking starts when"," ",e.jsx("code",{children:"MEGACOMPACT_TURNS_DB=1"})," and the session runs through a compaction. Each turn records its context metrics + the checkpoints recalled into it."]})]}):e.jsxs("div",{className:"turns-tab",children:[e.jsx("h3",{children:"Turn-by-turn memory tracking + recall"}),b&&e.jsx("div",{className:"turns-notice",children:b}),c&&c.intents.length>0&&e.jsxs("section",{className:"turns-intents",children:[e.jsxs("h4",{children:["Pending rewind intents (",c.intents.length,")"]}),e.jsx("ul",{children:c.intents.map(t=>e.jsxs("li",{children:[j(t.createdAt)," — rewind ",e.jsx("code",{children:t.conversationId})," to turn ",t.targetTurnIndex]},t.id))})]}),e.jsxs("section",{className:"turns-conv-list",children:[e.jsxs("h4",{children:["Conversations (",n.conversations.length,")"]}),e.jsxs("table",{className:"turns-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Conversation"}),e.jsx("th",{children:"Turns"}),e.jsx("th",{children:"Recall"}),e.jsx("th",{children:"Epochs"}),e.jsx("th",{children:"Avg ctx%"}),e.jsx("th",{children:"Last turn"}),e.jsx("th",{})]})}),e.jsx("tbody",{children:n.conversations.map(t=>e.jsx(R,{c:t,active:n.activeConversationId===t.conversationId,expanded:s===t.conversationId,onExpand:()=>g(t.conversationId)},t.conversationId))})]})]}),s&&e.jsxs("section",{className:"turns-detail",children:[e.jsxs("h4",{children:["Turns in ",e.jsx("code",{children:s})]}),v?e.jsx("div",{className:"tab-stub",children:"Loading turns…"}):m?e.jsx(A,{detail:m,busy:N,onFork:y,onRewind:k}):e.jsx("div",{className:"tab-stub",children:"No detail."})]})]})}function R({c:n,active:i,expanded:d,onExpand:c}){return e.jsx(e.Fragment,{children:e.jsxs("tr",{className:i?"turns-row active":"turns-row",onClick:c,style:{cursor:"pointer"},children:[e.jsxs("td",{children:[d?"▾":"▸"," ",e.jsx("code",{children:n.conversationId}),i&&e.jsx("span",{className:"pill",children:"active"})]}),e.jsx("td",{children:n.turnCount}),e.jsx("td",{children:n.totalRecall}),e.jsx("td",{children:n.epochCount}),e.jsxs("td",{children:[(n.avgCtxPercent*100).toFixed(0),"%"]}),e.jsx("td",{children:j(n.lastTurnAt)}),e.jsx("td",{})]})})}function A({detail:n,busy:i,onFork:d,onRewind:c}){return e.jsxs("table",{className:"turns-detail-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Role"}),e.jsx("th",{children:"Ctx"}),e.jsx("th",{children:"Band"}),e.jsx("th",{children:"Epoch"}),e.jsx("th",{children:"Recalled checkpoints (memory recall)"}),e.jsx("th",{children:"Ended"}),e.jsx("th",{children:"Actions"})]})}),e.jsx("tbody",{children:n.turns.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:s.turnIndex}),e.jsx("td",{children:s.role}),e.jsxs("td",{children:[s.ctxTokens??"—",s.ctxPercent!=null&&e.jsxs("span",{className:"muted",children:[" ","· ",(s.ctxPercent*100).toFixed(0),"%"]})]}),e.jsx("td",{children:e.jsx("span",{className:E(s.pressureBand),children:s.pressureBand??"—"})}),e.jsx("td",{children:s.epochId?e.jsx("code",{children:s.epochId.slice(0,8)}):"—"}),e.jsx("td",{className:"recall-cell",children:s.recall.length===0?e.jsx("span",{className:"muted",children:"—"}):e.jsx("ul",{className:"recall-list",children:s.recall.map(l=>e.jsxs("li",{children:[e.jsx("code",{children:l.checkpointId.slice(0,12)})," ",e.jsxs("span",{className:"muted",children:[L(l.source)," · ",l.score.toFixed(2),l.raptorLevel!=null?` · L${l.raptorLevel}`:""]})]},l.checkpointId))})}),e.jsx("td",{children:j(s.endedAt)}),e.jsxs("td",{className:"actions-cell",children:[e.jsx("button",{type:"button",className:"mini-btn",disabled:i!==null,onClick:()=>d(s.conversationId,s.turnIndex),children:"fork"}),e.jsx("button",{type:"button",className:"mini-btn",disabled:i!==null,onClick:()=>c(s.conversationId,s.turnIndex),children:"rewind"})]})]},`${s.conversationId}:${s.turnIndex}`))})]})}export{S as default}; -//# sourceMappingURL=TurnsTab-11MGLxY8.js.map +import{u as f,r,q as C,s as w,t as I,v as T,w as $,j as e}from"./index-CqpO7WrQ.js";function j(n){return n?new Date(n).toLocaleString():"—"}function E(n){return n==="green"?"band band-green":n==="yellow"?"band band-yellow":n==="red"?"band band-red":"band"}function L(n){return n==="checkpoint"?"ckpt":n==="cluster_summary"?"raptor":"mem"}function S(){const{data:n,loading:i,error:d}=f(r.useCallback(()=>C(),[]),{pollInterval:1e4}),{data:c}=f(r.useCallback(()=>w(),[]),{pollInterval:5e3}),[s,l]=r.useState(null),[m,x]=r.useState(null),[v,p]=r.useState(!1),[N,u]=r.useState(null),[b,o]=r.useState(null),g=r.useCallback(async t=>{if(s===t){l(null),x(null);return}l(t),p(!0),x(null);try{const a=await I(t);x(a)}finally{p(!1)}},[s]),y=r.useCallback(async(t,a)=>{u(`fork:${t}:${a}`),o(null);try{const h=await T(t,a);o(`Forked → ${h.childConversationId} (${h.recalledCount} recalled)`)}catch(h){o(`Fork failed: ${h.message}`)}finally{u(null)}},[]),k=r.useCallback(async(t,a)=>{u(`rewind:${t}:${a}`),o(null);try{await $(t,a),o(`Rewind intent queued for turn ${a}`)}catch(h){o(`Rewind failed: ${h.message}`)}finally{u(null)}},[]);return d&&!n?e.jsxs("div",{className:"tab-stub",children:["Error loading turns: ",d.message]}):i&&!n?e.jsx("div",{className:"tab-stub",children:"Loading turns…"}):!n||n.conversations.length===0?e.jsxs("div",{className:"tab-stub",children:[e.jsx("h3",{children:"Turn-by-turn memory"}),e.jsxs("p",{children:["No turns recorded yet. Per-turn tracking starts when"," ",e.jsx("code",{children:"MEGACOMPACT_TURNS_DB=1"})," and the session runs through a compaction. Each turn records its context metrics + the checkpoints recalled into it."]})]}):e.jsxs("div",{className:"turns-tab",children:[e.jsx("h3",{children:"Turn-by-turn memory tracking + recall"}),b&&e.jsx("div",{className:"turns-notice",children:b}),c&&c.intents.length>0&&e.jsxs("section",{className:"turns-intents",children:[e.jsxs("h4",{children:["Pending rewind intents (",c.intents.length,")"]}),e.jsx("ul",{children:c.intents.map(t=>e.jsxs("li",{children:[j(t.createdAt)," — rewind ",e.jsx("code",{children:t.conversationId})," to turn ",t.targetTurnIndex]},t.id))})]}),e.jsxs("section",{className:"turns-conv-list",children:[e.jsxs("h4",{children:["Conversations (",n.conversations.length,")"]}),e.jsxs("table",{className:"turns-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Conversation"}),e.jsx("th",{children:"Turns"}),e.jsx("th",{children:"Recall"}),e.jsx("th",{children:"Epochs"}),e.jsx("th",{children:"Avg ctx%"}),e.jsx("th",{children:"Last turn"}),e.jsx("th",{})]})}),e.jsx("tbody",{children:n.conversations.map(t=>e.jsx(R,{c:t,active:n.activeConversationId===t.conversationId,expanded:s===t.conversationId,onExpand:()=>g(t.conversationId)},t.conversationId))})]})]}),s&&e.jsxs("section",{className:"turns-detail",children:[e.jsxs("h4",{children:["Turns in ",e.jsx("code",{children:s})]}),v?e.jsx("div",{className:"tab-stub",children:"Loading turns…"}):m?e.jsx(A,{detail:m,busy:N,onFork:y,onRewind:k}):e.jsx("div",{className:"tab-stub",children:"No detail."})]})]})}function R({c:n,active:i,expanded:d,onExpand:c}){return e.jsx(e.Fragment,{children:e.jsxs("tr",{className:i?"turns-row active":"turns-row",onClick:c,style:{cursor:"pointer"},children:[e.jsxs("td",{children:[d?"▾":"▸"," ",e.jsx("code",{children:n.conversationId}),i&&e.jsx("span",{className:"pill",children:"active"})]}),e.jsx("td",{children:n.turnCount}),e.jsx("td",{children:n.totalRecall}),e.jsx("td",{children:n.epochCount}),e.jsxs("td",{children:[(n.avgCtxPercent*100).toFixed(0),"%"]}),e.jsx("td",{children:j(n.lastTurnAt)}),e.jsx("td",{})]})})}function A({detail:n,busy:i,onFork:d,onRewind:c}){return e.jsxs("table",{className:"turns-detail-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Role"}),e.jsx("th",{children:"Ctx"}),e.jsx("th",{children:"Band"}),e.jsx("th",{children:"Epoch"}),e.jsx("th",{children:"Recalled checkpoints (memory recall)"}),e.jsx("th",{children:"Ended"}),e.jsx("th",{children:"Actions"})]})}),e.jsx("tbody",{children:n.turns.map(s=>e.jsxs("tr",{children:[e.jsx("td",{children:s.turnIndex}),e.jsx("td",{children:s.role}),e.jsxs("td",{children:[s.ctxTokens??"—",s.ctxPercent!=null&&e.jsxs("span",{className:"muted",children:[" ","· ",(s.ctxPercent*100).toFixed(0),"%"]})]}),e.jsx("td",{children:e.jsx("span",{className:E(s.pressureBand),children:s.pressureBand??"—"})}),e.jsx("td",{children:s.epochId?e.jsx("code",{children:s.epochId.slice(0,8)}):"—"}),e.jsx("td",{className:"recall-cell",children:s.recall.length===0?e.jsx("span",{className:"muted",children:"—"}):e.jsx("ul",{className:"recall-list",children:s.recall.map(l=>e.jsxs("li",{children:[e.jsx("code",{children:l.checkpointId.slice(0,12)})," ",e.jsxs("span",{className:"muted",children:[L(l.source)," · ",l.score.toFixed(2),l.raptorLevel!=null?` · L${l.raptorLevel}`:""]})]},l.checkpointId))})}),e.jsx("td",{children:j(s.endedAt)}),e.jsxs("td",{className:"actions-cell",children:[e.jsx("button",{type:"button",className:"mini-btn",disabled:i!==null,onClick:()=>d(s.conversationId,s.turnIndex),children:"fork"}),e.jsx("button",{type:"button",className:"mini-btn",disabled:i!==null,onClick:()=>c(s.conversationId,s.turnIndex),children:"rewind"})]})]},`${s.conversationId}:${s.turnIndex}`))})]})}export{S as default}; +//# sourceMappingURL=TurnsTab-D2wpt2Nu.js.map diff --git a/extensions/dashboard-client/dist/assets/TurnsTab-11MGLxY8.js.map b/extensions/dashboard-client/dist/assets/TurnsTab-D2wpt2Nu.js.map similarity index 99% rename from extensions/dashboard-client/dist/assets/TurnsTab-11MGLxY8.js.map rename to extensions/dashboard-client/dist/assets/TurnsTab-D2wpt2Nu.js.map index 61249e1..8d6bfb6 100644 --- a/extensions/dashboard-client/dist/assets/TurnsTab-11MGLxY8.js.map +++ b/extensions/dashboard-client/dist/assets/TurnsTab-D2wpt2Nu.js.map @@ -1 +1 @@ -{"version":3,"file":"TurnsTab-11MGLxY8.js","sources":["../../src/tabs/TurnsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/TurnsTab.tsx — Turn-by-turn memory tracking + recall (S52).\n *\n * Fetches /api/turns (conversation list), expands the active conversation into\n * per-turn detail (/api/turns/conversation/:id), and renders:\n * - Conversation summary list (turn count, recall total, epochs, last turn).\n * - Per-turn rows: turn index, role, ctx tokens/percent + pressure band,\n * epoch id, and the injected-checkpoint recall set (the memory recalled\n * at each turn, with score + source).\n * - Pending rewind intents (S52A) + Fork action (S50C primitive).\n *\n * Read-mostly via /api/turns; fork/intent/prune via POST. No absolute URLs\n * (PREVENT-PI-004: loopback-only, same-origin static bundle).\n */\n\nimport type React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport {\n\tfetchTurns,\n\tfetchConversationTurns,\n\tfetchTurnIntents,\n\tpostFork,\n\tpostTurnIntent,\n} from \"../api/client\";\nimport type {\n\tTurnsResponse,\n\tConversationTurnsResponse,\n\tRewindIntentsResponse,\n\tTurnRow,\n\tConversationSummary,\n} from \"@contracts\";\n\nfunction fmtTs(ms: number): string {\n\tif (!ms) return \"—\";\n\treturn new Date(ms).toLocaleString();\n}\n\nfunction bandClass(band: TurnRow[\"pressureBand\"]): string {\n\tif (band === \"green\") return \"band band-green\";\n\tif (band === \"yellow\") return \"band band-yellow\";\n\tif (band === \"red\") return \"band band-red\";\n\treturn \"band\";\n}\n\nfunction sourceLabel(s: TurnRow[\"recall\"][number][\"source\"]): string {\n\tif (s === \"checkpoint\") return \"ckpt\";\n\tif (s === \"cluster_summary\") return \"raptor\";\n\treturn \"mem\";\n}\n\nexport default function TurnsTab(): React.ReactElement {\n\tconst {\n\t\tdata: turns,\n\t\tloading,\n\t\terror,\n\t} = useApi(\n\t\tuseCallback(() => fetchTurns(), []),\n\t\t{\n\t\t\tpollInterval: 10_000,\n\t\t},\n\t);\n\tconst { data: intents } = useApi(\n\t\tuseCallback(() => fetchTurnIntents(), []),\n\t\t{ pollInterval: 5_000 },\n\t);\n\tconst [expanded, setExpanded] = useState(null);\n\tconst [detail, setDetail] = useState(null);\n\tconst [detailLoading, setDetailLoading] = useState(false);\n\tconst [busy, setBusy] = useState(null);\n\tconst [notice, setNotice] = useState(null);\n\n\tconst expand = useCallback(\n\t\tasync (conversationId: string) => {\n\t\t\tif (expanded === conversationId) {\n\t\t\t\tsetExpanded(null);\n\t\t\t\tsetDetail(null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpanded(conversationId);\n\t\t\tsetDetailLoading(true);\n\t\t\tsetDetail(null);\n\t\t\ttry {\n\t\t\t\tconst d = await fetchConversationTurns(conversationId);\n\t\t\t\tsetDetail(d);\n\t\t\t} finally {\n\t\t\t\tsetDetailLoading(false);\n\t\t\t}\n\t\t},\n\t\t[expanded],\n\t);\n\n\tconst onFork = useCallback(\n\t\tasync (conversationId: string, turnIndex: number) => {\n\t\t\tsetBusy(`fork:${conversationId}:${turnIndex}`);\n\t\t\tsetNotice(null);\n\t\t\ttry {\n\t\t\t\tconst out = await postFork(conversationId, turnIndex);\n\t\t\t\tsetNotice(\n\t\t\t\t\t`Forked → ${out.childConversationId} (${out.recalledCount} recalled)`,\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\tsetNotice(`Fork failed: ${(e as Error).message}`);\n\t\t\t} finally {\n\t\t\t\tsetBusy(null);\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\tconst onRewind = useCallback(\n\t\tasync (conversationId: string, turnIndex: number) => {\n\t\t\tsetBusy(`rewind:${conversationId}:${turnIndex}`);\n\t\t\tsetNotice(null);\n\t\t\ttry {\n\t\t\t\tawait postTurnIntent(conversationId, turnIndex);\n\t\t\t\tsetNotice(`Rewind intent queued for turn ${turnIndex}`);\n\t\t\t} catch (e) {\n\t\t\t\tsetNotice(`Rewind failed: ${(e as Error).message}`);\n\t\t\t} finally {\n\t\t\t\tsetBusy(null);\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\tif (error && !turns) {\n\t\treturn
    Error loading turns: {error.message}
    ;\n\t}\n\tif (loading && !turns) {\n\t\treturn
    Loading turns…
    ;\n\t}\n\tif (!turns || turns.conversations.length === 0) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Turn-by-turn memory

    \n\t\t\t\t

    \n\t\t\t\t\tNo turns recorded yet. Per-turn tracking starts when{\" \"}\n\t\t\t\t\tMEGACOMPACT_TURNS_DB=1 and the session runs through a\n\t\t\t\t\tcompaction. Each turn records its context metrics + the checkpoints\n\t\t\t\t\trecalled into it.\n\t\t\t\t

    \n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    Turn-by-turn memory tracking + recall

    \n\t\t\t{notice &&
    {notice}
    }\n\n\t\t\t{intents && intents.intents.length > 0 && (\n\t\t\t\t
    \n\t\t\t\t\t

    Pending rewind intents ({intents.intents.length})

    \n\t\t\t\t\t
      \n\t\t\t\t\t\t{intents.intents.map((i) => (\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{fmtTs(i.createdAt)} — rewind {i.conversationId} to\n\t\t\t\t\t\t\t\tturn {i.targetTurnIndex}\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t
    \n\t\t\t\t

    Conversations ({turns.conversations.length})

    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{turns.conversations.map((c: ConversationSummary) => (\n\t\t\t\t\t\t\t expand(c.conversationId)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t
    ConversationTurnsRecallEpochsAvg ctx%Last turn
    \n\t\t\t
    \n\n\t\t\t{expanded && (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\tTurns in {expanded}\n\t\t\t\t\t

    \n\t\t\t\t\t{detailLoading ? (\n\t\t\t\t\t\t
    Loading turns…
    \n\t\t\t\t\t) : detail ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    No detail.
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n\nfunction ConversationRow({\n\tc,\n\tactive,\n\texpanded,\n\tonExpand,\n}: {\n\tc: ConversationSummary;\n\tactive: boolean;\n\texpanded: boolean;\n\tonExpand: () => void;\n}): React.ReactElement {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{expanded ? \"▾\" : \"▸\"} {c.conversationId}\n\t\t\t\t\t{active && active}\n\t\t\t\t\n\t\t\t\t{c.turnCount}\n\t\t\t\t{c.totalRecall}\n\t\t\t\t{c.epochCount}\n\t\t\t\t{(c.avgCtxPercent * 100).toFixed(0)}%\n\t\t\t\t{fmtTs(c.lastTurnAt)}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nfunction TurnDetail({\n\tdetail,\n\tbusy,\n\tonFork,\n\tonRewind,\n}: {\n\tdetail: ConversationTurnsResponse;\n\tbusy: string | null;\n\tonFork: (conversationId: string, turnIndex: number) => void;\n\tonRewind: (conversationId: string, turnIndex: number) => void;\n}): React.ReactElement {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{detail.turns.map((t) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\n\t\t
    #RoleCtxBandEpochRecalled checkpoints (memory recall)EndedActions
    {t.turnIndex}{t.role}\n\t\t\t\t\t\t\t{t.ctxTokens ?? \"—\"}\n\t\t\t\t\t\t\t{t.ctxPercent != null && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t· {(t.ctxPercent * 100).toFixed(0)}%\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t.pressureBand ?? \"—\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{t.epochId ? {t.epochId.slice(0, 8)} : \"—\"}\n\t\t\t\t\t\t\t{t.recall.length === 0 ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{t.recall.map((r) => (\n\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t{r.checkpointId.slice(0, 12)}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{sourceLabel(r.source)} · {r.score.toFixed(2)}\n\t\t\t\t\t\t\t\t\t\t\t\t{r.raptorLevel != null ? ` · L${r.raptorLevel}` : \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    {fmtTs(t.endedAt)}\n\t\t\t\t\t\t\t onFork(t.conversationId, t.turnIndex)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tfork\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t onRewind(t.conversationId, t.turnIndex)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\trewind\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t);\n}\n"],"names":["fmtTs","ms","bandClass","band","sourceLabel","s","TurnsTab","turns","loading","error","useApi","useCallback","fetchTurns","intents","fetchTurnIntents","expanded","setExpanded","useState","detail","setDetail","detailLoading","setDetailLoading","busy","setBusy","notice","setNotice","expand","conversationId","d","fetchConversationTurns","onFork","turnIndex","out","postFork","e","onRewind","postTurnIntent","jsxs","jsx","i","c","ConversationRow","TurnDetail","active","onExpand","Fragment","t","r"],"mappings":"oFAiCA,SAASA,EAAMC,EAAoB,CAClC,OAAKA,EACE,IAAI,KAAKA,CAAE,EAAE,eAAA,EADJ,GAEjB,CAEA,SAASC,EAAUC,EAAuC,CACzD,OAAIA,IAAS,QAAgB,kBACzBA,IAAS,SAAiB,mBAC1BA,IAAS,MAAc,gBACpB,MACR,CAEA,SAASC,EAAYC,EAAgD,CACpE,OAAIA,IAAM,aAAqB,OAC3BA,IAAM,kBAA0B,SAC7B,KACR,CAEA,SAAwBC,GAA+B,CACtD,KAAM,CACL,KAAMC,EACN,QAAAC,EACA,MAAAC,CAAA,EACGC,EACHC,cAAY,IAAMC,EAAA,EAAc,EAAE,EAClC,CACC,aAAc,GAAA,CACf,EAEK,CAAE,KAAMC,CAAA,EAAYH,EACzBC,cAAY,IAAMG,EAAA,EAAoB,EAAE,EACxC,CAAE,aAAc,GAAA,CAAM,EAEjB,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAAwB,IAAI,EACtD,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAA2C,IAAI,EACrE,CAACG,EAAeC,CAAgB,EAAIJ,EAAAA,SAAS,EAAK,EAClD,CAACK,EAAMC,CAAO,EAAIN,EAAAA,SAAwB,IAAI,EAC9C,CAACO,EAAQC,CAAS,EAAIR,EAAAA,SAAwB,IAAI,EAElDS,EAASf,EAAAA,YACd,MAAOgB,GAA2B,CACjC,GAAIZ,IAAaY,EAAgB,CAChCX,EAAY,IAAI,EAChBG,EAAU,IAAI,EACd,MACD,CACAH,EAAYW,CAAc,EAC1BN,EAAiB,EAAI,EACrBF,EAAU,IAAI,EACd,GAAI,CACH,MAAMS,EAAI,MAAMC,EAAuBF,CAAc,EACrDR,EAAUS,CAAC,CACZ,QAAA,CACCP,EAAiB,EAAK,CACvB,CACD,EACA,CAACN,CAAQ,CAAA,EAGJe,EAASnB,EAAAA,YACd,MAAOgB,EAAwBI,IAAsB,CACpDR,EAAQ,QAAQI,CAAc,IAAII,CAAS,EAAE,EAC7CN,EAAU,IAAI,EACd,GAAI,CACH,MAAMO,EAAM,MAAMC,EAASN,EAAgBI,CAAS,EACpDN,EACC,YAAYO,EAAI,mBAAmB,KAAKA,EAAI,aAAa,YAAA,CAE3D,OAASE,EAAG,CACXT,EAAU,gBAAiBS,EAAY,OAAO,EAAE,CACjD,QAAA,CACCX,EAAQ,IAAI,CACb,CACD,EACA,CAAA,CAAC,EAGIY,EAAWxB,EAAAA,YAChB,MAAOgB,EAAwBI,IAAsB,CACpDR,EAAQ,UAAUI,CAAc,IAAII,CAAS,EAAE,EAC/CN,EAAU,IAAI,EACd,GAAI,CACH,MAAMW,EAAeT,EAAgBI,CAAS,EAC9CN,EAAU,iCAAiCM,CAAS,EAAE,CACvD,OAASG,EAAG,CACXT,EAAU,kBAAmBS,EAAY,OAAO,EAAE,CACnD,QAAA,CACCX,EAAQ,IAAI,CACb,CACD,EACA,CAAA,CAAC,EAGF,OAAId,GAAS,CAACF,EACN8B,EAAAA,KAAC,MAAA,CAAI,UAAU,WAAW,SAAA,CAAA,wBAAsB5B,EAAM,OAAA,EAAQ,EAElED,GAAW,CAACD,EACR+B,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,iBAAc,EAE5C,CAAC/B,GAASA,EAAM,cAAc,SAAW,EAE3C8B,EAAAA,KAAC,MAAA,CAAI,UAAU,WACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,qBAAA,CAAmB,SACtB,IAAA,CAAE,SAAA,CAAA,uDACmD,IACrDA,EAAAA,IAAC,QAAK,SAAA,wBAAA,CAAsB,EAAO,uHAAA,CAAA,CAGpC,CAAA,EACD,EAKDD,EAAAA,KAAC,MAAA,CAAI,UAAU,YACd,SAAA,CAAAC,EAAAA,IAAC,MAAG,SAAA,uCAAA,CAAqC,EACxCd,GAAUc,EAAAA,IAAC,MAAA,CAAI,UAAU,eAAgB,SAAAd,EAAO,EAEhDX,GAAWA,EAAQ,QAAQ,OAAS,GACpCwB,OAAC,UAAA,CAAQ,UAAU,gBAClB,SAAA,CAAAA,OAAC,KAAA,CAAG,SAAA,CAAA,2BAAyBxB,EAAQ,QAAQ,OAAO,GAAA,EAAC,EACrDyB,EAAAA,IAAC,MACC,SAAAzB,EAAQ,QAAQ,IAAK0B,UACpB,KAAA,CACC,SAAA,CAAAvC,EAAMuC,EAAE,SAAS,EAAE,aAAUD,EAAAA,IAAC,OAAA,CAAM,SAAAC,EAAE,cAAA,CAAe,EAAO,YACvDA,EAAE,eAAA,GAFAA,EAAE,EAGX,CACA,CAAA,CACF,CAAA,EACD,EAGDF,EAAAA,KAAC,UAAA,CAAQ,UAAU,kBAClB,SAAA,CAAAA,OAAC,KAAA,CAAG,SAAA,CAAA,kBAAgB9B,EAAM,cAAc,OAAO,GAAA,EAAC,EAChD8B,EAAAA,KAAC,QAAA,CAAM,UAAU,cAChB,SAAA,CAAAC,EAAAA,IAAC,QAAA,CACA,gBAAC,KAAA,CACA,SAAA,CAAAA,EAAAA,IAAC,MAAG,SAAA,cAAA,CAAY,EAChBA,EAAAA,IAAC,MAAG,SAAA,OAAA,CAAK,EACTA,EAAAA,IAAC,MAAG,SAAA,QAAA,CAAM,EACVA,EAAAA,IAAC,MAAG,SAAA,QAAA,CAAM,EACVA,EAAAA,IAAC,MAAG,SAAA,UAAA,CAAQ,EACZA,EAAAA,IAAC,MAAG,SAAA,WAAA,CAAS,QACZ,KAAA,CAAA,CAAG,CAAA,CAAA,CACL,CAAA,CACD,QACC,QAAA,CACC,SAAA/B,EAAM,cAAc,IAAKiC,GACzBF,EAAAA,IAACG,EAAA,CAEA,EAAAD,EACA,OAAQjC,EAAM,uBAAyBiC,EAAE,eACzC,SAAUzB,IAAayB,EAAE,eACzB,SAAU,IAAMd,EAAOc,EAAE,cAAc,CAAA,EAJlCA,EAAE,cAAA,CAMR,CAAA,CACF,CAAA,CAAA,CACD,CAAA,EACD,EAECzB,GACAsB,EAAAA,KAAC,UAAA,CAAQ,UAAU,eAClB,SAAA,CAAAA,OAAC,KAAA,CAAG,SAAA,CAAA,YACMC,EAAAA,IAAC,QAAM,SAAAvB,CAAA,CAAS,CAAA,EAC1B,EACCK,EACAkB,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,gBAAA,CAAc,EACrCpB,EACHoB,EAAAA,IAACI,EAAA,CACA,OAAAxB,EACA,KAAAI,EACA,OAAAQ,EACA,SAAAK,CAAA,CAAA,EAGDG,EAAAA,IAAC,MAAA,CAAI,UAAU,WAAW,SAAA,YAAA,CAAU,CAAA,CAAA,CAEtC,CAAA,EAEF,CAEF,CAEA,SAASG,EAAgB,CACxB,EAAAD,EACA,OAAAG,EACA,SAAA5B,EACA,SAAA6B,CACD,EAKuB,CACtB,OACCN,MAAAO,EAAAA,SAAA,CACC,SAAAR,EAAAA,KAAC,KAAA,CACA,UAAWM,EAAS,mBAAqB,YACzC,QAASC,EACT,MAAO,CAAE,OAAQ,SAAA,EAEjB,SAAA,CAAAP,OAAC,KAAA,CACC,SAAA,CAAAtB,EAAW,IAAM,IAAI,IAACuB,EAAAA,IAAC,OAAA,CAAM,SAAAE,EAAE,cAAA,CAAe,EAC9CG,GAAUL,EAAAA,IAAC,OAAA,CAAK,UAAU,OAAO,SAAA,QAAA,CAAM,CAAA,EACzC,EACAA,EAAAA,IAAC,KAAA,CAAI,SAAAE,EAAE,SAAA,CAAU,EACjBF,EAAAA,IAAC,KAAA,CAAI,SAAAE,EAAE,WAAA,CAAY,EACnBF,EAAAA,IAAC,KAAA,CAAI,SAAAE,EAAE,UAAA,CAAW,SACjB,KAAA,CAAK,SAAA,EAAAA,EAAE,cAAgB,KAAK,QAAQ,CAAC,EAAE,GAAA,EAAC,EACzCF,EAAAA,IAAC,KAAA,CAAI,SAAAtC,EAAMwC,EAAE,UAAU,EAAE,QACxB,KAAA,CAAA,CAAG,CAAA,CAAA,CAAA,EAEN,CAEF,CAEA,SAASE,EAAW,CACnB,OAAAxB,EACA,KAAAI,EACA,OAAAQ,EACA,SAAAK,CACD,EAKuB,CACtB,OACCE,EAAAA,KAAC,QAAA,CAAM,UAAU,qBAChB,SAAA,CAAAC,EAAAA,IAAC,QAAA,CACA,gBAAC,KAAA,CACA,SAAA,CAAAA,EAAAA,IAAC,MAAG,SAAA,GAAA,CAAC,EACLA,EAAAA,IAAC,MAAG,SAAA,MAAA,CAAI,EACRA,EAAAA,IAAC,MAAG,SAAA,KAAA,CAAG,EACPA,EAAAA,IAAC,MAAG,SAAA,MAAA,CAAI,EACRA,EAAAA,IAAC,MAAG,SAAA,OAAA,CAAK,EACTA,EAAAA,IAAC,MAAG,SAAA,sCAAA,CAAoC,EACxCA,EAAAA,IAAC,MAAG,SAAA,OAAA,CAAK,EACTA,EAAAA,IAAC,MAAG,SAAA,SAAA,CAAO,CAAA,CAAA,CACZ,CAAA,CACD,EACAA,EAAAA,IAAC,SACC,SAAApB,EAAO,MAAM,IAAK4B,UACjB,KAAA,CACA,SAAA,CAAAR,EAAAA,IAAC,KAAA,CAAI,WAAE,SAAA,CAAU,EACjBA,EAAAA,IAAC,KAAA,CAAI,SAAAQ,EAAE,IAAA,CAAK,SACX,KAAA,CACC,SAAA,CAAAA,EAAE,WAAa,IACfA,EAAE,YAAc,MAChBT,EAAAA,KAAC,OAAA,CAAK,UAAU,QACd,SAAA,CAAA,IAAI,MACDS,EAAE,WAAa,KAAK,QAAQ,CAAC,EAAE,GAAA,CAAA,CACpC,CAAA,EAEF,EACAR,EAAAA,IAAC,KAAA,CACA,SAAAA,EAAAA,IAAC,OAAA,CAAK,UAAWpC,EAAU4C,EAAE,YAAY,EACvC,SAAAA,EAAE,cAAgB,GAAA,CACpB,EACD,EACAR,EAAAA,IAAC,KAAA,CAAI,SAAAQ,EAAE,QAAUR,EAAAA,IAAC,OAAA,CAAM,SAAAQ,EAAE,QAAQ,MAAM,EAAG,CAAC,CAAA,CAAE,EAAU,IAAI,EAC5DR,EAAAA,IAAC,KAAA,CAAG,UAAU,cACZ,SAAAQ,EAAE,OAAO,SAAW,EACpBR,EAAAA,IAAC,OAAA,CAAK,UAAU,QAAQ,aAAC,EAEzBA,EAAAA,IAAC,KAAA,CAAG,UAAU,cACZ,SAAAQ,EAAE,OAAO,IAAKC,GACdV,EAAAA,KAAC,KAAA,CACA,SAAA,CAAAC,MAAC,QAAM,SAAAS,EAAE,aAAa,MAAM,EAAG,EAAE,EAAE,EAAQ,IAC3CV,EAAAA,KAAC,OAAA,CAAK,UAAU,QACd,SAAA,CAAAjC,EAAY2C,EAAE,MAAM,EAAE,MAAIA,EAAE,MAAM,QAAQ,CAAC,EAC3CA,EAAE,aAAe,KAAO,OAAOA,EAAE,WAAW,GAAK,EAAA,CAAA,CACnD,CAAA,CAAA,EALQA,EAAE,YAMX,CACA,CAAA,CACF,CAAA,CAEF,EACAT,EAAAA,IAAC,KAAA,CAAI,SAAAtC,EAAM8C,EAAE,OAAO,EAAE,EACtBT,EAAAA,KAAC,KAAA,CAAG,UAAU,eACb,SAAA,CAAAC,EAAAA,IAAC,SAAA,CACA,KAAK,SACL,UAAU,WACV,SAAUhB,IAAS,KACnB,QAAS,IAAMQ,EAAOgB,EAAE,eAAgBA,EAAE,SAAS,EACnD,SAAA,MAAA,CAAA,EAGDR,EAAAA,IAAC,SAAA,CACA,KAAK,SACL,UAAU,WACV,SAAUhB,IAAS,KACnB,QAAS,IAAMa,EAASW,EAAE,eAAgBA,EAAE,SAAS,EACrD,SAAA,QAAA,CAAA,CAED,CAAA,CACD,CAAA,GArDQ,GAAGA,EAAE,cAAc,IAAIA,EAAE,SAAS,EAsD3C,CACA,CAAA,CACF,CAAA,EACD,CAEF"} \ No newline at end of file +{"version":3,"file":"TurnsTab-D2wpt2Nu.js","sources":["../../src/tabs/TurnsTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/TurnsTab.tsx — Turn-by-turn memory tracking + recall (S52).\n *\n * Fetches /api/turns (conversation list), expands the active conversation into\n * per-turn detail (/api/turns/conversation/:id), and renders:\n * - Conversation summary list (turn count, recall total, epochs, last turn).\n * - Per-turn rows: turn index, role, ctx tokens/percent + pressure band,\n * epoch id, and the injected-checkpoint recall set (the memory recalled\n * at each turn, with score + source).\n * - Pending rewind intents (S52A) + Fork action (S50C primitive).\n *\n * Read-mostly via /api/turns; fork/intent/prune via POST. No absolute URLs\n * (PREVENT-PI-004: loopback-only, same-origin static bundle).\n */\n\nimport type React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { useApi } from \"../hooks/useApi\";\nimport {\n\tfetchTurns,\n\tfetchConversationTurns,\n\tfetchTurnIntents,\n\tpostFork,\n\tpostTurnIntent,\n} from \"../api/client\";\nimport type {\n\tTurnsResponse,\n\tConversationTurnsResponse,\n\tRewindIntentsResponse,\n\tTurnRow,\n\tConversationSummary,\n} from \"@contracts\";\n\nfunction fmtTs(ms: number): string {\n\tif (!ms) return \"—\";\n\treturn new Date(ms).toLocaleString();\n}\n\nfunction bandClass(band: TurnRow[\"pressureBand\"]): string {\n\tif (band === \"green\") return \"band band-green\";\n\tif (band === \"yellow\") return \"band band-yellow\";\n\tif (band === \"red\") return \"band band-red\";\n\treturn \"band\";\n}\n\nfunction sourceLabel(s: TurnRow[\"recall\"][number][\"source\"]): string {\n\tif (s === \"checkpoint\") return \"ckpt\";\n\tif (s === \"cluster_summary\") return \"raptor\";\n\treturn \"mem\";\n}\n\nexport default function TurnsTab(): React.ReactElement {\n\tconst {\n\t\tdata: turns,\n\t\tloading,\n\t\terror,\n\t} = useApi(\n\t\tuseCallback(() => fetchTurns(), []),\n\t\t{\n\t\t\tpollInterval: 10_000,\n\t\t},\n\t);\n\tconst { data: intents } = useApi(\n\t\tuseCallback(() => fetchTurnIntents(), []),\n\t\t{ pollInterval: 5_000 },\n\t);\n\tconst [expanded, setExpanded] = useState(null);\n\tconst [detail, setDetail] = useState(null);\n\tconst [detailLoading, setDetailLoading] = useState(false);\n\tconst [busy, setBusy] = useState(null);\n\tconst [notice, setNotice] = useState(null);\n\n\tconst expand = useCallback(\n\t\tasync (conversationId: string) => {\n\t\t\tif (expanded === conversationId) {\n\t\t\t\tsetExpanded(null);\n\t\t\t\tsetDetail(null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpanded(conversationId);\n\t\t\tsetDetailLoading(true);\n\t\t\tsetDetail(null);\n\t\t\ttry {\n\t\t\t\tconst d = await fetchConversationTurns(conversationId);\n\t\t\t\tsetDetail(d);\n\t\t\t} finally {\n\t\t\t\tsetDetailLoading(false);\n\t\t\t}\n\t\t},\n\t\t[expanded],\n\t);\n\n\tconst onFork = useCallback(\n\t\tasync (conversationId: string, turnIndex: number) => {\n\t\t\tsetBusy(`fork:${conversationId}:${turnIndex}`);\n\t\t\tsetNotice(null);\n\t\t\ttry {\n\t\t\t\tconst out = await postFork(conversationId, turnIndex);\n\t\t\t\tsetNotice(\n\t\t\t\t\t`Forked → ${out.childConversationId} (${out.recalledCount} recalled)`,\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\tsetNotice(`Fork failed: ${(e as Error).message}`);\n\t\t\t} finally {\n\t\t\t\tsetBusy(null);\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\tconst onRewind = useCallback(\n\t\tasync (conversationId: string, turnIndex: number) => {\n\t\t\tsetBusy(`rewind:${conversationId}:${turnIndex}`);\n\t\t\tsetNotice(null);\n\t\t\ttry {\n\t\t\t\tawait postTurnIntent(conversationId, turnIndex);\n\t\t\t\tsetNotice(`Rewind intent queued for turn ${turnIndex}`);\n\t\t\t} catch (e) {\n\t\t\t\tsetNotice(`Rewind failed: ${(e as Error).message}`);\n\t\t\t} finally {\n\t\t\t\tsetBusy(null);\n\t\t\t}\n\t\t},\n\t\t[],\n\t);\n\n\tif (error && !turns) {\n\t\treturn
    Error loading turns: {error.message}
    ;\n\t}\n\tif (loading && !turns) {\n\t\treturn
    Loading turns…
    ;\n\t}\n\tif (!turns || turns.conversations.length === 0) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    Turn-by-turn memory

    \n\t\t\t\t

    \n\t\t\t\t\tNo turns recorded yet. Per-turn tracking starts when{\" \"}\n\t\t\t\t\tMEGACOMPACT_TURNS_DB=1 and the session runs through a\n\t\t\t\t\tcompaction. Each turn records its context metrics + the checkpoints\n\t\t\t\t\trecalled into it.\n\t\t\t\t

    \n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t

    Turn-by-turn memory tracking + recall

    \n\t\t\t{notice &&
    {notice}
    }\n\n\t\t\t{intents && intents.intents.length > 0 && (\n\t\t\t\t
    \n\t\t\t\t\t

    Pending rewind intents ({intents.intents.length})

    \n\t\t\t\t\t
      \n\t\t\t\t\t\t{intents.intents.map((i) => (\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{fmtTs(i.createdAt)} — rewind {i.conversationId} to\n\t\t\t\t\t\t\t\tturn {i.targetTurnIndex}\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t))}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t)}\n\n\t\t\t
    \n\t\t\t\t

    Conversations ({turns.conversations.length})

    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{turns.conversations.map((c: ConversationSummary) => (\n\t\t\t\t\t\t\t expand(c.conversationId)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\n\t\t\t\t
    ConversationTurnsRecallEpochsAvg ctx%Last turn
    \n\t\t\t
    \n\n\t\t\t{expanded && (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\tTurns in {expanded}\n\t\t\t\t\t

    \n\t\t\t\t\t{detailLoading ? (\n\t\t\t\t\t\t
    Loading turns…
    \n\t\t\t\t\t) : detail ? (\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    No detail.
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t);\n}\n\nfunction ConversationRow({\n\tc,\n\tactive,\n\texpanded,\n\tonExpand,\n}: {\n\tc: ConversationSummary;\n\tactive: boolean;\n\texpanded: boolean;\n\tonExpand: () => void;\n}): React.ReactElement {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{expanded ? \"▾\" : \"▸\"} {c.conversationId}\n\t\t\t\t\t{active && active}\n\t\t\t\t\n\t\t\t\t{c.turnCount}\n\t\t\t\t{c.totalRecall}\n\t\t\t\t{c.epochCount}\n\t\t\t\t{(c.avgCtxPercent * 100).toFixed(0)}%\n\t\t\t\t{fmtTs(c.lastTurnAt)}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nfunction TurnDetail({\n\tdetail,\n\tbusy,\n\tonFork,\n\tonRewind,\n}: {\n\tdetail: ConversationTurnsResponse;\n\tbusy: string | null;\n\tonFork: (conversationId: string, turnIndex: number) => void;\n\tonRewind: (conversationId: string, turnIndex: number) => void;\n}): React.ReactElement {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{detail.turns.map((t) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\n\t\t
    #RoleCtxBandEpochRecalled checkpoints (memory recall)EndedActions
    {t.turnIndex}{t.role}\n\t\t\t\t\t\t\t{t.ctxTokens ?? \"—\"}\n\t\t\t\t\t\t\t{t.ctxPercent != null && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t· {(t.ctxPercent * 100).toFixed(0)}%\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t.pressureBand ?? \"—\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{t.epochId ? {t.epochId.slice(0, 8)} : \"—\"}\n\t\t\t\t\t\t\t{t.recall.length === 0 ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{t.recall.map((r) => (\n\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t\t{r.checkpointId.slice(0, 12)}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{sourceLabel(r.source)} · {r.score.toFixed(2)}\n\t\t\t\t\t\t\t\t\t\t\t\t{r.raptorLevel != null ? ` · L${r.raptorLevel}` : \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
    {fmtTs(t.endedAt)}\n\t\t\t\t\t\t\t onFork(t.conversationId, t.turnIndex)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tfork\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t onRewind(t.conversationId, t.turnIndex)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\trewind\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t);\n}\n"],"names":["fmtTs","ms","bandClass","band","sourceLabel","s","TurnsTab","turns","loading","error","useApi","useCallback","fetchTurns","intents","fetchTurnIntents","expanded","setExpanded","useState","detail","setDetail","detailLoading","setDetailLoading","busy","setBusy","notice","setNotice","expand","conversationId","d","fetchConversationTurns","onFork","turnIndex","out","postFork","e","onRewind","postTurnIntent","jsxs","jsx","i","c","ConversationRow","TurnDetail","active","onExpand","Fragment","t","r"],"mappings":"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"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/index-CqLN7STl.js b/extensions/dashboard-client/dist/assets/index-CqpO7WrQ.js similarity index 64% rename from extensions/dashboard-client/dist/assets/index-CqLN7STl.js rename to extensions/dashboard-client/dist/assets/index-CqpO7WrQ.js index 53c04a1..cc59bf4 100644 --- a/extensions/dashboard-client/dist/assets/index-CqLN7STl.js +++ b/extensions/dashboard-client/dist/assets/index-CqpO7WrQ.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./OverviewTab-BMREvAth.js","./useSSE-CXrQSbVY.js","./TimeSavedCard-B8AIjNTY.js","./EventsTab-D5HoEVYo.js","./CacheTab-DEQbTq2T.js","./GameTab-Jzsc4yeY.js","./AchievementTiles-DZp_xQOW.js","./AchievementsTab-BzFHpAHM.js","./SessionsTab-mz_vz8i2.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./OverviewTab-sJnPapkl.js","./useSSE-BfmZMOWC.js","./TimeSavedCard-DVRXGcYK.js","./EventsTab-Daoh3-KJ.js","./CacheTab-BuFmuAIw.js","./GameTab-Cyy2Z1Ro.js","./AchievementTiles-CPBeKs-w.js","./AchievementsTab-Bg82nb4F.js","./SessionsTab-DfxFUEFC.js"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const u of l)if(u.type==="childList")for(const o of u.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const u={};return l.integrity&&(u.integrity=l.integrity),l.referrerPolicy&&(u.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?u.credentials="include":l.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function r(l){if(l.ep)return;l.ep=!0;const u=n(l);fetch(l.href,u)}})();var op=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function fc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xi={exports:{}},ll={},Zi={exports:{}},z={};/** * @license React * react.production.min.js @@ -7,7 +7,7 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./OverviewTab-BMREvAth * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var qn=Symbol.for("react.element"),dc=Symbol.for("react.portal"),pc=Symbol.for("react.fragment"),mc=Symbol.for("react.strict_mode"),hc=Symbol.for("react.profiler"),vc=Symbol.for("react.provider"),yc=Symbol.for("react.context"),gc=Symbol.for("react.forward_ref"),wc=Symbol.for("react.suspense"),Sc=Symbol.for("react.memo"),kc=Symbol.for("react.lazy"),$o=Symbol.iterator;function Ec(e){return e===null||typeof e!="object"?null:(e=$o&&e[$o]||e["@@iterator"],typeof e=="function"?e:null)}var Ji={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},qi=Object.assign,bi={};function an(e,t,n){this.props=e,this.context=t,this.refs=bi,this.updater=n||Ji}an.prototype.isReactComponent={};an.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};an.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function es(){}es.prototype=an.prototype;function Vu(e,t,n){this.props=e,this.context=t,this.refs=bi,this.updater=n||Ji}var Bu=Vu.prototype=new es;Bu.constructor=Vu;qi(Bu,an.prototype);Bu.isPureReactComponent=!0;var Ao=Array.isArray,ts=Object.prototype.hasOwnProperty,Hu={current:null},ns={key:!0,ref:!0,__self:!0,__source:!0};function rs(e,t,n){var r,l={},u=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(u=""+t.key),t)ts.call(t,r)&&!ns.hasOwnProperty(r)&&(l[r]=t[r]);var i=arguments.length-2;if(i===1)l.children=n;else if(1>>1,X=_[W];if(0>>1;Wl(El,T))ktl(lr,El)?(_[W]=lr,_[kt]=T,W=kt):(_[W]=El,_[St]=T,W=St);else if(ktl(lr,T))_[W]=lr,_[kt]=T,W=kt;else break e}}return N}function l(_,N){var T=_.sortIndex-N.sortIndex;return T!==0?T:_.id-N.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var o=Date,i=o.now();e.unstable_now=function(){return o.now()-i}}var s=[],c=[],h=1,m=null,p=3,g=!1,w=!1,S=!1,F=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(_){for(var N=n(c);N!==null;){if(N.callback===null)r(c);else if(N.startTime<=_)r(c),N.sortIndex=N.expirationTime,t(s,N);else break;N=n(c)}}function v(_){if(S=!1,d(_),!w)if(n(s)!==null)w=!0,Sl(E);else{var N=n(c);N!==null&&kl(v,N.startTime-_)}}function E(_,N){w=!1,S&&(S=!1,f(P),P=-1),g=!0;var T=p;try{for(d(N),m=n(s);m!==null&&(!(m.expirationTime>N)||_&&!Le());){var W=m.callback;if(typeof W=="function"){m.callback=null,p=m.priorityLevel;var X=W(m.expirationTime<=N);N=e.unstable_now(),typeof X=="function"?m.callback=X:m===n(s)&&r(s),d(N)}else r(s);m=n(s)}if(m!==null)var rr=!0;else{var St=n(c);St!==null&&kl(v,St.startTime-N),rr=!1}return rr}finally{m=null,p=T,g=!1}}var x=!1,C=null,P=-1,H=5,L=-1;function Le(){return!(e.unstable_now()-L_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):H=0<_?Math.floor(1e3/_):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return n(s)},e.unstable_next=function(_){switch(p){case 1:case 2:case 3:var N=3;break;default:N=p}var T=p;p=N;try{return _()}finally{p=T}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(_,N){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var T=p;p=_;try{return N()}finally{p=T}},e.unstable_scheduleCallback=function(_,N,T){var W=e.unstable_now();switch(typeof T=="object"&&T!==null?(T=T.delay,T=typeof T=="number"&&0W?(_.sortIndex=T,t(c,_),n(s)===null&&_===n(c)&&(S?(f(P),P=-1):S=!0,kl(v,T-W))):(_.sortIndex=X,t(s,_),w||g||(w=!0,Sl(E))),_},e.unstable_shouldYield=Le,e.unstable_wrapCallback=function(_){var N=p;return function(){var T=p;p=N;try{return _.apply(this,arguments)}finally{p=T}}}})(ss);is.exports=ss;var Ic=is.exports;/** + */(function(e){function t(_,N){var T=_.length;_.push(N);e:for(;0>>1,X=_[W];if(0>>1;Wl(_l,T))ktl(lr,_l)?(_[W]=lr,_[kt]=T,W=kt):(_[W]=_l,_[St]=T,W=St);else if(ktl(lr,T))_[W]=lr,_[kt]=T,W=kt;else break e}}return N}function l(_,N){var T=_.sortIndex-N.sortIndex;return T!==0?T:_.id-N.id}if(typeof performance=="object"&&typeof performance.now=="function"){var u=performance;e.unstable_now=function(){return u.now()}}else{var o=Date,i=o.now();e.unstable_now=function(){return o.now()-i}}var s=[],c=[],h=1,m=null,p=3,g=!1,w=!1,S=!1,F=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,a=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(_){for(var N=n(c);N!==null;){if(N.callback===null)r(c);else if(N.startTime<=_)r(c),N.sortIndex=N.expirationTime,t(s,N);else break;N=n(c)}}function v(_){if(S=!1,d(_),!w)if(n(s)!==null)w=!0,kl(E);else{var N=n(c);N!==null&&El(v,N.startTime-_)}}function E(_,N){w=!1,S&&(S=!1,f(P),P=-1),g=!0;var T=p;try{for(d(N),m=n(s);m!==null&&(!(m.expirationTime>N)||_&&!Le());){var W=m.callback;if(typeof W=="function"){m.callback=null,p=m.priorityLevel;var X=W(m.expirationTime<=N);N=e.unstable_now(),typeof X=="function"?m.callback=X:m===n(s)&&r(s),d(N)}else r(s);m=n(s)}if(m!==null)var rr=!0;else{var St=n(c);St!==null&&El(v,St.startTime-N),rr=!1}return rr}finally{m=null,p=T,g=!1}}var x=!1,C=null,P=-1,H=5,L=-1;function Le(){return!(e.unstable_now()-L_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):H=0<_?Math.floor(1e3/_):5},e.unstable_getCurrentPriorityLevel=function(){return p},e.unstable_getFirstCallbackNode=function(){return n(s)},e.unstable_next=function(_){switch(p){case 1:case 2:case 3:var N=3;break;default:N=p}var T=p;p=N;try{return _()}finally{p=T}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(_,N){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var T=p;p=_;try{return N()}finally{p=T}},e.unstable_scheduleCallback=function(_,N,T){var W=e.unstable_now();switch(typeof T=="object"&&T!==null?(T=T.delay,T=typeof T=="number"&&0W?(_.sortIndex=T,t(c,_),n(s)===null&&_===n(c)&&(S?(f(P),P=-1):S=!0,El(v,T-W))):(_.sortIndex=X,t(s,_),w||g||(w=!0,kl(E))),_},e.unstable_shouldYield=Le,e.unstable_wrapCallback=function(_){var N=p;return function(){var T=p;p=N;try{return _.apply(this,arguments)}finally{p=T}}}})(ss);is.exports=ss;var Ic=is.exports;/** * @license React * react-dom.production.min.js * @@ -31,12 +31,12 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./OverviewTab-BMREvAth * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var jc=ce,Se=Ic;function y(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Xl=Object.prototype.hasOwnProperty,Dc=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Bo={},Ho={};function Mc(e){return Xl.call(Ho,e)?!0:Xl.call(Bo,e)?!1:Dc.test(e)?Ho[e]=!0:(Bo[e]=!0,!1)}function Fc(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Uc(e,t,n,r){if(t===null||typeof t>"u"||Fc(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ae(e,t,n,r,l,u,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=o}var ee={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ee[e]=new ae(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ee[t]=new ae(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ee[e]=new ae(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ee[e]=new ae(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ee[e]=new ae(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ee[e]=new ae(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ee[e]=new ae(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ee[e]=new ae(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ee[e]=new ae(e,5,!1,e.toLowerCase(),null,!1,!1)});var Qu=/[\-:]([a-z])/g;function Ku(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Qu,Ku);ee[t]=new ae(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Qu,Ku);ee[t]=new ae(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Qu,Ku);ee[t]=new ae(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ee[e]=new ae(e,1,!1,e.toLowerCase(),null,!1,!1)});ee.xlinkHref=new ae("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ee[e]=new ae(e,1,!1,e.toLowerCase(),null,!0,!0)});function Gu(e,t,n,r){var l=ee.hasOwnProperty(t)?ee[t]:null;(l!==null?l.type!==0:r||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Zl=Object.prototype.hasOwnProperty,Dc=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Bo={},Ho={};function Mc(e){return Zl.call(Ho,e)?!0:Zl.call(Bo,e)?!1:Dc.test(e)?Ho[e]=!0:(Bo[e]=!0,!1)}function Fc(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Uc(e,t,n,r){if(t===null||typeof t>"u"||Fc(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ae(e,t,n,r,l,u,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=o}var te={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){te[e]=new ae(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];te[t]=new ae(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){te[e]=new ae(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){te[e]=new ae(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){te[e]=new ae(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){te[e]=new ae(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){te[e]=new ae(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){te[e]=new ae(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){te[e]=new ae(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ku=/[\-:]([a-z])/g;function Gu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ku,Gu);te[t]=new ae(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ku,Gu);te[t]=new ae(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ku,Gu);te[t]=new ae(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){te[e]=new ae(e,1,!1,e.toLowerCase(),null,!1,!1)});te.xlinkHref=new ae("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){te[e]=new ae(e,1,!1,e.toLowerCase(),null,!0,!0)});function Yu(e,t,n,r){var l=te.hasOwnProperty(t)?te[t]:null;(l!==null?l.type!==0:r||!(2i||l[o]!==u[i]){var s=` -`+l[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=i);break}}}finally{Cl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?En(e):""}function $c(e){switch(e.tag){case 5:return En(e.type);case 16:return En("Lazy");case 13:return En("Suspense");case 19:return En("SuspenseList");case 0:case 2:case 15:return e=Pl(e.type,!1),e;case 11:return e=Pl(e.type.render,!1),e;case 1:return e=Pl(e.type,!0),e;default:return""}}function bl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ut:return"Fragment";case Ft:return"Portal";case Zl:return"Profiler";case Yu:return"StrictMode";case Jl:return"Suspense";case ql:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case fs:return(e.displayName||"Context")+".Consumer";case cs:return(e._context.displayName||"Context")+".Provider";case Xu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Zu:return t=e.displayName||null,t!==null?t:bl(e.type)||"Memo";case tt:t=e._payload,e=e._init;try{return bl(e(t))}catch{}}return null}function Ac(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return bl(t);case 8:return t===Yu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ht(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ps(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Vc(e){var t=ps(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,u.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ir(e){e._valueTracker||(e._valueTracker=Vc(e))}function ms(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ps(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function jr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function eu(e,t){var n=t.checked;return V({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Qo(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ht(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function hs(e,t){t=t.checked,t!=null&&Gu(e,"checked",t,!1)}function tu(e,t){hs(e,t);var n=ht(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?nu(e,t.type,n):t.hasOwnProperty("defaultValue")&&nu(e,t.type,ht(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ko(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function nu(e,t,n){(t!=="number"||jr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var _n=Array.isArray;function Xt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=sr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Mn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Bc=["Webkit","ms","Moz","O"];Object.keys(Pn).forEach(function(e){Bc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pn[t]=Pn[e]})});function ws(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pn.hasOwnProperty(e)&&Pn[e]?(""+t).trim():t+"px"}function Ss(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=ws(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Hc=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function uu(e,t){if(t){if(Hc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(y(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(y(61))}if(t.style!=null&&typeof t.style!="object")throw Error(y(62))}}function ou(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var iu=null;function Ju(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var su=null,Zt=null,Jt=null;function Xo(e){if(e=tr(e)){if(typeof su!="function")throw Error(y(280));var t=e.stateNode;t&&(t=al(t),su(e.stateNode,e.type,t))}}function ks(e){Zt?Jt?Jt.push(e):Jt=[e]:Zt=e}function Es(){if(Zt){var e=Zt,t=Jt;if(Jt=Zt=null,Xo(e),t)for(e=0;e>>=0,e===0?32:31-(ef(e)/tf|0)|0}var ar=64,cr=4194304;function xn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ur(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,u=e.pingedLanes,o=n&268435455;if(o!==0){var i=o&~l;i!==0?r=xn(i):(u&=o,u!==0&&(r=xn(u)))}else o=n&~l,o!==0?r=xn(o):u!==0&&(r=xn(u));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,u=t&-t,l>=u||l===16&&(u&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function bn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-De(t),e[t]=n}function uf(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Tn),li=" ",ui=!1;function Bs(e,t){switch(e){case"keyup":return jf.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $t=!1;function Mf(e,t){switch(e){case"compositionend":return Hs(t);case"keypress":return t.which!==32?null:(ui=!0,li);case"textInput":return e=t.data,e===li&&ui?null:e;default:return null}}function Ff(e,t){if($t)return e==="compositionend"||!uo&&Bs(e,t)?(e=As(),Cr=no=ut=null,$t=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ai(n)}}function Gs(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Gs(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ys(){for(var e=window,t=jr();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=jr(e.document)}return t}function oo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Kf(e){var t=Ys(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Gs(n.ownerDocument.documentElement,n)){if(r!==null&&oo(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,u=Math.min(r.start,l);r=r.end===void 0?u:Math.min(r.end,l),!e.extend&&u>r&&(l=r,r=u,u=l),l=ci(n,u);var o=ci(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),u>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,At=null,mu=null,Ln=null,hu=!1;function fi(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;hu||At==null||At!==jr(r)||(r=At,"selectionStart"in r&&oo(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ln&&Bn(Ln,r)||(Ln=r,r=Vr(mu,"onSelect"),0Ht||(e.current=ku[Ht],ku[Ht]=null,Ht--)}function j(e,t){Ht++,ku[Ht]=e.current,e.current=t}var vt={},ue=gt(vt),pe=gt(!1),zt=vt;function nn(e,t){var n=e.type.contextTypes;if(!n)return vt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},u;for(u in n)l[u]=t[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function me(e){return e=e.childContextTypes,e!=null}function Hr(){M(pe),M(ue)}function gi(e,t,n){if(ue.current!==vt)throw Error(y(168));j(ue,t),j(pe,n)}function ra(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(y(108,Ac(e)||"Unknown",l));return V({},n,r)}function Wr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||vt,zt=ue.current,j(ue,e),j(pe,pe.current),!0}function wi(e,t,n){var r=e.stateNode;if(!r)throw Error(y(169));n?(e=ra(e,t,zt),r.__reactInternalMemoizedMergedChildContext=e,M(pe),M(ue),j(ue,e)):M(pe),j(pe,n)}var Qe=null,cl=!1,Al=!1;function la(e){Qe===null?Qe=[e]:Qe.push(e)}function ld(e){cl=!0,la(e)}function wt(){if(!Al&&Qe!==null){Al=!0;var e=0,t=I;try{var n=Qe;for(I=1;e>=o,l-=o,Ke=1<<32-De(t)+l|n<P?(H=C,C=null):H=C.sibling;var L=p(f,C,d[P],v);if(L===null){C===null&&(C=H);break}e&&C&&L.alternate===null&&t(f,C),a=u(L,a,P),x===null?E=L:x.sibling=L,x=L,C=H}if(P===d.length)return n(f,C),U&&Et(f,P),E;if(C===null){for(;PP?(H=C,C=null):H=C.sibling;var Le=p(f,C,L.value,v);if(Le===null){C===null&&(C=H);break}e&&C&&Le.alternate===null&&t(f,C),a=u(Le,a,P),x===null?E=Le:x.sibling=Le,x=Le,C=H}if(L.done)return n(f,C),U&&Et(f,P),E;if(C===null){for(;!L.done;P++,L=d.next())L=m(f,L.value,v),L!==null&&(a=u(L,a,P),x===null?E=L:x.sibling=L,x=L);return U&&Et(f,P),E}for(C=r(f,C);!L.done;P++,L=d.next())L=g(C,f,P,L.value,v),L!==null&&(e&&L.alternate!==null&&C.delete(L.key===null?P:L.key),a=u(L,a,P),x===null?E=L:x.sibling=L,x=L);return e&&C.forEach(function(dn){return t(f,dn)}),U&&Et(f,P),E}function F(f,a,d,v){if(typeof d=="object"&&d!==null&&d.type===Ut&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case or:e:{for(var E=d.key,x=a;x!==null;){if(x.key===E){if(E=d.type,E===Ut){if(x.tag===7){n(f,x.sibling),a=l(x,d.props.children),a.return=f,f=a;break e}}else if(x.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===tt&&Ei(E)===x.type){n(f,x.sibling),a=l(x,d.props),a.ref=wn(f,x,d),a.return=f,f=a;break e}n(f,x);break}else t(f,x);x=x.sibling}d.type===Ut?(a=Tt(d.props.children,f.mode,v,d.key),a.return=f,f=a):(v=Ir(d.type,d.key,d.props,null,f.mode,v),v.ref=wn(f,a,d),v.return=f,f=v)}return o(f);case Ft:e:{for(x=d.key;a!==null;){if(a.key===x)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){n(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=Yl(d,f.mode,v),a.return=f,f=a}return o(f);case tt:return x=d._init,F(f,a,x(d._payload),v)}if(_n(d))return w(f,a,d,v);if(mn(d))return S(f,a,d,v);yr(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,d),a.return=f,f=a):(n(f,a),a=Gl(d,f.mode,v),a.return=f,f=a),o(f)):n(f,a)}return F}var ln=sa(!0),aa=sa(!1),Gr=gt(null),Yr=null,Kt=null,co=null;function fo(){co=Kt=Yr=null}function po(e){var t=Gr.current;M(Gr),e._currentValue=t}function xu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function bt(e,t){Yr=e,co=Kt=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(de=!0),e.firstContext=null)}function Te(e){var t=e._currentValue;if(co!==e)if(e={context:e,memoizedValue:t,next:null},Kt===null){if(Yr===null)throw Error(y(308));Kt=e,Yr.dependencies={lanes:0,firstContext:e}}else Kt=Kt.next=e;return t}var Ct=null;function mo(e){Ct===null?Ct=[e]:Ct.push(e)}function ca(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,mo(t)):(n.next=l.next,l.next=n),t.interleaved=n,Je(e,r)}function Je(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var nt=!1;function ho(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function fa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ye(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ft(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,R&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Je(e,n)}return l=r.interleaved,l===null?(t.next=t,mo(r)):(t.next=l.next,l.next=t),r.interleaved=t,Je(e,n)}function Nr(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,bu(e,n)}}function _i(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};u===null?l=u=o:u=u.next=o,n=n.next}while(n!==null);u===null?l=u=t:u=u.next=t}else l=u=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Xr(e,t,n,r){var l=e.updateQueue;nt=!1;var u=l.firstBaseUpdate,o=l.lastBaseUpdate,i=l.shared.pending;if(i!==null){l.shared.pending=null;var s=i,c=s.next;s.next=null,o===null?u=c:o.next=c,o=s;var h=e.alternate;h!==null&&(h=h.updateQueue,i=h.lastBaseUpdate,i!==o&&(i===null?h.firstBaseUpdate=c:i.next=c,h.lastBaseUpdate=s))}if(u!==null){var m=l.baseState;o=0,h=c=s=null,i=u;do{var p=i.lane,g=i.eventTime;if((r&p)===p){h!==null&&(h=h.next={eventTime:g,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var w=e,S=i;switch(p=t,g=n,S.tag){case 1:if(w=S.payload,typeof w=="function"){m=w.call(g,m,p);break e}m=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=S.payload,p=typeof w=="function"?w.call(g,m,p):w,p==null)break e;m=V({},m,p);break e;case 2:nt=!0}}i.callback!==null&&i.lane!==0&&(e.flags|=64,p=l.effects,p===null?l.effects=[i]:p.push(i))}else g={eventTime:g,lane:p,tag:i.tag,payload:i.payload,callback:i.callback,next:null},h===null?(c=h=g,s=m):h=h.next=g,o|=p;if(i=i.next,i===null){if(i=l.shared.pending,i===null)break;p=i,i=p.next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}while(!0);if(h===null&&(s=m),l.baseState=s,l.firstBaseUpdate=c,l.lastBaseUpdate=h,t=l.shared.interleaved,t!==null){l=t;do o|=l.lane,l=l.next;while(l!==t)}else u===null&&(l.shared.lanes=0);Ot|=o,e.lanes=o,e.memoizedState=m}}function xi(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Bl.transition;Bl.transition={};try{e(!1),t()}finally{I=n,Bl.transition=r}}function Ta(){return ze().memoizedState}function sd(e,t,n){var r=pt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},za(e))La(t,n);else if(n=ca(e,t,n,r),n!==null){var l=ie();Me(n,e,r,l),Ra(n,t,r)}}function ad(e,t,n){var r=pt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(za(e))La(t,l);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var o=t.lastRenderedState,i=u(o,n);if(l.hasEagerState=!0,l.eagerState=i,Fe(i,o)){var s=t.interleaved;s===null?(l.next=l,mo(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ca(e,t,l,r),n!==null&&(l=ie(),Me(n,e,r,l),Ra(n,t,r))}}function za(e){var t=e.alternate;return e===A||t!==null&&t===A}function La(e,t){Rn=Jr=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ra(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,bu(e,n)}}var qr={readContext:Te,useCallback:ne,useContext:ne,useEffect:ne,useImperativeHandle:ne,useInsertionEffect:ne,useLayoutEffect:ne,useMemo:ne,useReducer:ne,useRef:ne,useState:ne,useDebugValue:ne,useDeferredValue:ne,useTransition:ne,useMutableSource:ne,useSyncExternalStore:ne,useId:ne,unstable_isNewReconciler:!1},cd={readContext:Te,useCallback:function(e,t){return Ae().memoizedState=[e,t===void 0?null:t],e},useContext:Te,useEffect:Pi,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,zr(4194308,4,_a.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zr(4194308,4,e,t)},useInsertionEffect:function(e,t){return zr(4,2,e,t)},useMemo:function(e,t){var n=Ae();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ae();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=sd.bind(null,A,e),[r.memoizedState,e]},useRef:function(e){var t=Ae();return e={current:e},t.memoizedState=e},useState:Ci,useDebugValue:_o,useDeferredValue:function(e){return Ae().memoizedState=e},useTransition:function(){var e=Ci(!1),t=e[0];return e=id.bind(null,e[1]),Ae().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=A,l=Ae();if(U){if(n===void 0)throw Error(y(407));n=n()}else{if(n=t(),J===null)throw Error(y(349));Rt&30||ha(r,t,n)}l.memoizedState=n;var u={value:n,getSnapshot:t};return l.queue=u,Pi(ya.bind(null,r,u,e),[e]),r.flags|=2048,Zn(9,va.bind(null,r,u,n,t),void 0,null),n},useId:function(){var e=Ae(),t=J.identifierPrefix;if(U){var n=Ge,r=Ke;n=(r&~(1<<32-De(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Yn++,0")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=i);break}}}finally{Pl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?En(e):""}function $c(e){switch(e.tag){case 5:return En(e.type);case 16:return En("Lazy");case 13:return En("Suspense");case 19:return En("SuspenseList");case 0:case 2:case 15:return e=Nl(e.type,!1),e;case 11:return e=Nl(e.type.render,!1),e;case 1:return e=Nl(e.type,!0),e;default:return""}}function eu(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ut:return"Fragment";case Ft:return"Portal";case Jl:return"Profiler";case Xu:return"StrictMode";case ql:return"Suspense";case bl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case fs:return(e.displayName||"Context")+".Consumer";case cs:return(e._context.displayName||"Context")+".Provider";case Zu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ju:return t=e.displayName||null,t!==null?t:eu(e.type)||"Memo";case tt:t=e._payload,e=e._init;try{return eu(e(t))}catch{}}return null}function Ac(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return eu(t);case 8:return t===Xu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ht(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function ps(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Vc(e){var t=ps(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){r=""+o,u.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ir(e){e._valueTracker||(e._valueTracker=Vc(e))}function ms(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ps(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function jr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function tu(e,t){var n=t.checked;return V({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Qo(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ht(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function hs(e,t){t=t.checked,t!=null&&Yu(e,"checked",t,!1)}function nu(e,t){hs(e,t);var n=ht(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ru(e,t.type,n):t.hasOwnProperty("defaultValue")&&ru(e,t.type,ht(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ko(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ru(e,t,n){(t!=="number"||jr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var _n=Array.isArray;function Xt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=sr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Mn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Pn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Bc=["Webkit","ms","Moz","O"];Object.keys(Pn).forEach(function(e){Bc.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Pn[t]=Pn[e]})});function ws(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Pn.hasOwnProperty(e)&&Pn[e]?(""+t).trim():t+"px"}function Ss(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=ws(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var Hc=V({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ou(e,t){if(t){if(Hc[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(y(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(y(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(y(61))}if(t.style!=null&&typeof t.style!="object")throw Error(y(62))}}function iu(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var su=null;function qu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var au=null,Zt=null,Jt=null;function Xo(e){if(e=tr(e)){if(typeof au!="function")throw Error(y(280));var t=e.stateNode;t&&(t=al(t),au(e.stateNode,e.type,t))}}function ks(e){Zt?Jt?Jt.push(e):Jt=[e]:Zt=e}function Es(){if(Zt){var e=Zt,t=Jt;if(Jt=Zt=null,Xo(e),t)for(e=0;e>>=0,e===0?32:31-(ef(e)/tf|0)|0}var ar=64,cr=4194304;function xn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ur(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,u=e.pingedLanes,o=n&268435455;if(o!==0){var i=o&~l;i!==0?r=xn(i):(u&=o,u!==0&&(r=xn(u)))}else o=n&~l,o!==0?r=xn(o):u!==0&&(r=xn(u));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,u=t&-t,l>=u||l===16&&(u&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function bn(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-De(t),e[t]=n}function uf(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Tn),li=" ",ui=!1;function Bs(e,t){switch(e){case"keyup":return jf.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $t=!1;function Mf(e,t){switch(e){case"compositionend":return Hs(t);case"keypress":return t.which!==32?null:(ui=!0,li);case"textInput":return e=t.data,e===li&&ui?null:e;default:return null}}function Ff(e,t){if($t)return e==="compositionend"||!oo&&Bs(e,t)?(e=As(),Cr=ro=ut=null,$t=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ai(n)}}function Gs(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Gs(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Ys(){for(var e=window,t=jr();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=jr(e.document)}return t}function io(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Kf(e){var t=Ys(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Gs(n.ownerDocument.documentElement,n)){if(r!==null&&io(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,u=Math.min(r.start,l);r=r.end===void 0?u:Math.min(r.end,l),!e.extend&&u>r&&(l=r,r=u,u=l),l=ci(n,u);var o=ci(n,r);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),u>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,At=null,hu=null,Ln=null,vu=!1;function fi(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;vu||At==null||At!==jr(r)||(r=At,"selectionStart"in r&&io(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ln&&Bn(Ln,r)||(Ln=r,r=Vr(hu,"onSelect"),0Ht||(e.current=Eu[Ht],Eu[Ht]=null,Ht--)}function j(e,t){Ht++,Eu[Ht]=e.current,e.current=t}var vt={},ue=gt(vt),me=gt(!1),zt=vt;function nn(e,t){var n=e.type.contextTypes;if(!n)return vt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},u;for(u in n)l[u]=t[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function he(e){return e=e.childContextTypes,e!=null}function Hr(){M(me),M(ue)}function gi(e,t,n){if(ue.current!==vt)throw Error(y(168));j(ue,t),j(me,n)}function ra(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(y(108,Ac(e)||"Unknown",l));return V({},n,r)}function Wr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||vt,zt=ue.current,j(ue,e),j(me,me.current),!0}function wi(e,t,n){var r=e.stateNode;if(!r)throw Error(y(169));n?(e=ra(e,t,zt),r.__reactInternalMemoizedMergedChildContext=e,M(me),M(ue),j(ue,e)):M(me),j(me,n)}var Qe=null,cl=!1,Vl=!1;function la(e){Qe===null?Qe=[e]:Qe.push(e)}function ld(e){cl=!0,la(e)}function wt(){if(!Vl&&Qe!==null){Vl=!0;var e=0,t=I;try{var n=Qe;for(I=1;e>=o,l-=o,Ke=1<<32-De(t)+l|n<P?(H=C,C=null):H=C.sibling;var L=p(f,C,d[P],v);if(L===null){C===null&&(C=H);break}e&&C&&L.alternate===null&&t(f,C),a=u(L,a,P),x===null?E=L:x.sibling=L,x=L,C=H}if(P===d.length)return n(f,C),U&&Et(f,P),E;if(C===null){for(;PP?(H=C,C=null):H=C.sibling;var Le=p(f,C,L.value,v);if(Le===null){C===null&&(C=H);break}e&&C&&Le.alternate===null&&t(f,C),a=u(Le,a,P),x===null?E=Le:x.sibling=Le,x=Le,C=H}if(L.done)return n(f,C),U&&Et(f,P),E;if(C===null){for(;!L.done;P++,L=d.next())L=m(f,L.value,v),L!==null&&(a=u(L,a,P),x===null?E=L:x.sibling=L,x=L);return U&&Et(f,P),E}for(C=r(f,C);!L.done;P++,L=d.next())L=g(C,f,P,L.value,v),L!==null&&(e&&L.alternate!==null&&C.delete(L.key===null?P:L.key),a=u(L,a,P),x===null?E=L:x.sibling=L,x=L);return e&&C.forEach(function(dn){return t(f,dn)}),U&&Et(f,P),E}function F(f,a,d,v){if(typeof d=="object"&&d!==null&&d.type===Ut&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case or:e:{for(var E=d.key,x=a;x!==null;){if(x.key===E){if(E=d.type,E===Ut){if(x.tag===7){n(f,x.sibling),a=l(x,d.props.children),a.return=f,f=a;break e}}else if(x.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===tt&&Ei(E)===x.type){n(f,x.sibling),a=l(x,d.props),a.ref=wn(f,x,d),a.return=f,f=a;break e}n(f,x);break}else t(f,x);x=x.sibling}d.type===Ut?(a=Tt(d.props.children,f.mode,v,d.key),a.return=f,f=a):(v=Ir(d.type,d.key,d.props,null,f.mode,v),v.ref=wn(f,a,d),v.return=f,f=v)}return o(f);case Ft:e:{for(x=d.key;a!==null;){if(a.key===x)if(a.tag===4&&a.stateNode.containerInfo===d.containerInfo&&a.stateNode.implementation===d.implementation){n(f,a.sibling),a=l(a,d.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=Xl(d,f.mode,v),a.return=f,f=a}return o(f);case tt:return x=d._init,F(f,a,x(d._payload),v)}if(_n(d))return w(f,a,d,v);if(mn(d))return S(f,a,d,v);yr(f,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,d),a.return=f,f=a):(n(f,a),a=Yl(d,f.mode,v),a.return=f,f=a),o(f)):n(f,a)}return F}var ln=sa(!0),aa=sa(!1),Gr=gt(null),Yr=null,Kt=null,fo=null;function po(){fo=Kt=Yr=null}function mo(e){var t=Gr.current;M(Gr),e._currentValue=t}function Cu(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function bt(e,t){Yr=e,fo=Kt=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(pe=!0),e.firstContext=null)}function Te(e){var t=e._currentValue;if(fo!==e)if(e={context:e,memoizedValue:t,next:null},Kt===null){if(Yr===null)throw Error(y(308));Kt=e,Yr.dependencies={lanes:0,firstContext:e}}else Kt=Kt.next=e;return t}var Ct=null;function ho(e){Ct===null?Ct=[e]:Ct.push(e)}function ca(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,ho(t)):(n.next=l.next,l.next=n),t.interleaved=n,Je(e,r)}function Je(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var nt=!1;function vo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function fa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ye(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ft(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,R&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,Je(e,n)}return l=r.interleaved,l===null?(t.next=t,ho(r)):(t.next=l.next,l.next=t),r.interleaved=t,Je(e,n)}function Nr(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eo(e,n)}}function _i(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};u===null?l=u=o:u=u.next=o,n=n.next}while(n!==null);u===null?l=u=t:u=u.next=t}else l=u=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Xr(e,t,n,r){var l=e.updateQueue;nt=!1;var u=l.firstBaseUpdate,o=l.lastBaseUpdate,i=l.shared.pending;if(i!==null){l.shared.pending=null;var s=i,c=s.next;s.next=null,o===null?u=c:o.next=c,o=s;var h=e.alternate;h!==null&&(h=h.updateQueue,i=h.lastBaseUpdate,i!==o&&(i===null?h.firstBaseUpdate=c:i.next=c,h.lastBaseUpdate=s))}if(u!==null){var m=l.baseState;o=0,h=c=s=null,i=u;do{var p=i.lane,g=i.eventTime;if((r&p)===p){h!==null&&(h=h.next={eventTime:g,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var w=e,S=i;switch(p=t,g=n,S.tag){case 1:if(w=S.payload,typeof w=="function"){m=w.call(g,m,p);break e}m=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=S.payload,p=typeof w=="function"?w.call(g,m,p):w,p==null)break e;m=V({},m,p);break e;case 2:nt=!0}}i.callback!==null&&i.lane!==0&&(e.flags|=64,p=l.effects,p===null?l.effects=[i]:p.push(i))}else g={eventTime:g,lane:p,tag:i.tag,payload:i.payload,callback:i.callback,next:null},h===null?(c=h=g,s=m):h=h.next=g,o|=p;if(i=i.next,i===null){if(i=l.shared.pending,i===null)break;p=i,i=p.next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}while(!0);if(h===null&&(s=m),l.baseState=s,l.firstBaseUpdate=c,l.lastBaseUpdate=h,t=l.shared.interleaved,t!==null){l=t;do o|=l.lane,l=l.next;while(l!==t)}else u===null&&(l.shared.lanes=0);Ot|=o,e.lanes=o,e.memoizedState=m}}function xi(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Hl.transition;Hl.transition={};try{e(!1),t()}finally{I=n,Hl.transition=r}}function Ta(){return ze().memoizedState}function sd(e,t,n){var r=pt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},za(e))La(t,n);else if(n=ca(e,t,n,r),n!==null){var l=ie();Me(n,e,r,l),Ra(n,t,r)}}function ad(e,t,n){var r=pt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(za(e))La(t,l);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var o=t.lastRenderedState,i=u(o,n);if(l.hasEagerState=!0,l.eagerState=i,Fe(i,o)){var s=t.interleaved;s===null?(l.next=l,ho(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=ca(e,t,l,r),n!==null&&(l=ie(),Me(n,e,r,l),Ra(n,t,r))}}function za(e){var t=e.alternate;return e===A||t!==null&&t===A}function La(e,t){Rn=Jr=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ra(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,eo(e,n)}}var qr={readContext:Te,useCallback:ne,useContext:ne,useEffect:ne,useImperativeHandle:ne,useInsertionEffect:ne,useLayoutEffect:ne,useMemo:ne,useReducer:ne,useRef:ne,useState:ne,useDebugValue:ne,useDeferredValue:ne,useTransition:ne,useMutableSource:ne,useSyncExternalStore:ne,useId:ne,unstable_isNewReconciler:!1},cd={readContext:Te,useCallback:function(e,t){return Ae().memoizedState=[e,t===void 0?null:t],e},useContext:Te,useEffect:Pi,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,zr(4194308,4,_a.bind(null,t,e),n)},useLayoutEffect:function(e,t){return zr(4194308,4,e,t)},useInsertionEffect:function(e,t){return zr(4,2,e,t)},useMemo:function(e,t){var n=Ae();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ae();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=sd.bind(null,A,e),[r.memoizedState,e]},useRef:function(e){var t=Ae();return e={current:e},t.memoizedState=e},useState:Ci,useDebugValue:xo,useDeferredValue:function(e){return Ae().memoizedState=e},useTransition:function(){var e=Ci(!1),t=e[0];return e=id.bind(null,e[1]),Ae().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=A,l=Ae();if(U){if(n===void 0)throw Error(y(407));n=n()}else{if(n=t(),J===null)throw Error(y(349));Rt&30||ha(r,t,n)}l.memoizedState=n;var u={value:n,getSnapshot:t};return l.queue=u,Pi(ya.bind(null,r,u,e),[e]),r.flags|=2048,Zn(9,va.bind(null,r,u,n,t),void 0,null),n},useId:function(){var e=Ae(),t=J.identifierPrefix;if(U){var n=Ge,r=Ke;n=(r&~(1<<32-De(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Yn++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Ve]=t,e[Qn]=r,Va(e,t,!1,!1),t.stateNode=e;e:{switch(o=ou(n,r),n){case"dialog":D("cancel",e),D("close",e),l=r;break;case"iframe":case"object":case"embed":D("load",e),l=r;break;case"video":case"audio":for(l=0;lsn&&(t.flags|=128,r=!0,Sn(u,!1),t.lanes=4194304)}else{if(!r)if(e=Zr(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Sn(u,!0),u.tail===null&&u.tailMode==="hidden"&&!o.alternate&&!U)return re(t),null}else 2*Q()-u.renderingStartTime>sn&&n!==1073741824&&(t.flags|=128,r=!0,Sn(u,!1),t.lanes=4194304);u.isBackwards?(o.sibling=t.child,t.child=o):(n=u.last,n!==null?n.sibling=o:t.child=o,u.last=o)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=Q(),t.sibling=null,n=$.current,j($,r?n&1|2:n&1),t):(re(t),null);case 22:case 23:return zo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ye&1073741824&&(re(t),t.subtreeFlags&6&&(t.flags|=8192)):re(t),null;case 24:return null;case 25:return null}throw Error(y(156,t.tag))}function gd(e,t){switch(so(t),t.tag){case 1:return me(t.type)&&Hr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return un(),M(pe),M(ue),go(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return yo(t),null;case 13:if(M($),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(y(340));rn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return M($),null;case 4:return un(),null;case 10:return po(t.type._context),null;case 22:case 23:return zo(),null;case 24:return null;default:return null}}var wr=!1,le=!1,wd=typeof WeakSet=="function"?WeakSet:Set,k=null;function Gt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){B(e,t,r)}else n.current=null}function Iu(e,t,n){try{n()}catch(r){B(e,t,r)}}var Fi=!1;function Sd(e,t){if(vu=$r,e=Ys(),oo(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var o=0,i=-1,s=-1,c=0,h=0,m=e,p=null;t:for(;;){for(var g;m!==n||l!==0&&m.nodeType!==3||(i=o+l),m!==u||r!==0&&m.nodeType!==3||(s=o+r),m.nodeType===3&&(o+=m.nodeValue.length),(g=m.firstChild)!==null;)p=m,m=g;for(;;){if(m===e)break t;if(p===n&&++c===l&&(i=o),p===u&&++h===r&&(s=o),(g=m.nextSibling)!==null)break;m=p,p=m.parentNode}m=g}n=i===-1||s===-1?null:{start:i,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(yu={focusedElem:e,selectionRange:n},$r=!1,k=t;k!==null;)if(t=k,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,k=e;else for(;k!==null;){t=k;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var S=w.memoizedProps,F=w.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?S:Oe(t.type,S),F);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(v){B(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,k=e;break}k=t.return}return w=Fi,Fi=!1,w}function On(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,u!==void 0&&Iu(t,n,u)}l=l.next}while(l!==r)}}function pl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ju(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Wa(e){var t=e.alternate;t!==null&&(e.alternate=null,Wa(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ve],delete t[Qn],delete t[Su],delete t[nd],delete t[rd])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Qa(e){return e.tag===5||e.tag===3||e.tag===4}function Ui(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Qa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Du(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Br));else if(r!==4&&(e=e.child,e!==null))for(Du(e,t,n),e=e.sibling;e!==null;)Du(e,t,n),e=e.sibling}function Mu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Mu(e,t,n),e=e.sibling;e!==null;)Mu(e,t,n),e=e.sibling}var q=null,Ie=!1;function et(e,t,n){for(n=n.child;n!==null;)Ka(e,t,n),n=n.sibling}function Ka(e,t,n){if(Be&&typeof Be.onCommitFiberUnmount=="function")try{Be.onCommitFiberUnmount(ul,n)}catch{}switch(n.tag){case 5:le||Gt(n,t);case 6:var r=q,l=Ie;q=null,et(e,t,n),q=r,Ie=l,q!==null&&(Ie?(e=q,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):q.removeChild(n.stateNode));break;case 18:q!==null&&(Ie?(e=q,n=n.stateNode,e.nodeType===8?$l(e.parentNode,n):e.nodeType===1&&$l(e,n),An(e)):$l(q,n.stateNode));break;case 4:r=q,l=Ie,q=n.stateNode.containerInfo,Ie=!0,et(e,t,n),q=r,Ie=l;break;case 0:case 11:case 14:case 15:if(!le&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var u=l,o=u.destroy;u=u.tag,o!==void 0&&(u&2||u&4)&&Iu(n,t,o),l=l.next}while(l!==r)}et(e,t,n);break;case 1:if(!le&&(Gt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(i){B(n,t,i)}et(e,t,n);break;case 21:et(e,t,n);break;case 22:n.mode&1?(le=(r=le)||n.memoizedState!==null,et(e,t,n),le=r):et(e,t,n);break;default:et(e,t,n)}}function $i(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new wd),t.forEach(function(r){var l=zd.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Re(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~u}if(r=l,r=Q()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ed(r/1960))-r,10e?16:e,ot===null)var r=!1;else{if(e=ot,ot=null,tl=0,R&6)throw Error(y(331));var l=R;for(R|=4,k=e.current;k!==null;){var u=k,o=u.child;if(k.flags&16){var i=u.deletions;if(i!==null){for(var s=0;sQ()-No?Nt(e,0):Po|=n),he(e,t)}function ec(e,t){t===0&&(e.mode&1?(t=cr,cr<<=1,!(cr&130023424)&&(cr=4194304)):t=1);var n=ie();e=Je(e,t),e!==null&&(bn(e,t,n),he(e,n))}function Td(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ec(e,n)}function zd(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(t),ec(e,n)}var tc;tc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||pe.current)de=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return de=!1,vd(e,t,n);de=!!(e.flags&131072)}else de=!1,U&&t.flags&1048576&&ua(t,Kr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Lr(e,t),e=t.pendingProps;var l=nn(t,ue.current);bt(t,n),l=So(null,t,r,e,l,n);var u=ko();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,me(r)?(u=!0,Wr(t)):u=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,ho(t),l.updater=dl,t.stateNode=l,l._reactInternals=t,Pu(t,r,e,n),t=zu(null,t,r,!0,u,n)):(t.tag=0,U&&u&&io(t),oe(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Lr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Rd(r),e=Oe(r,e),l){case 0:t=Tu(null,t,r,e,n);break e;case 1:t=ji(null,t,r,e,n);break e;case 11:t=Oi(null,t,r,e,n);break e;case 14:t=Ii(null,t,r,Oe(r.type,e),n);break e}throw Error(y(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Tu(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),ji(e,t,r,l,n);case 3:e:{if(Ua(t),e===null)throw Error(y(387));r=t.pendingProps,u=t.memoizedState,l=u.element,fa(e,t),Xr(t,r,null,n);var o=t.memoizedState;if(r=o.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){l=on(Error(y(423)),t),t=Di(e,t,r,n,l);break e}else if(r!==l){l=on(Error(y(424)),t),t=Di(e,t,r,n,l);break e}else for(ge=ct(t.stateNode.containerInfo.firstChild),we=t,U=!0,je=null,n=aa(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(rn(),r===l){t=qe(e,t,n);break e}oe(e,t,r,n)}t=t.child}return t;case 5:return da(t),e===null&&_u(t),r=t.type,l=t.pendingProps,u=e!==null?e.memoizedProps:null,o=l.children,gu(r,l)?o=null:u!==null&&gu(r,u)&&(t.flags|=32),Fa(e,t),oe(e,t,o,n),t.child;case 6:return e===null&&_u(t),null;case 13:return $a(e,t,n);case 4:return vo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=ln(t,null,r,n):oe(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Oi(e,t,r,l,n);case 7:return oe(e,t,t.pendingProps,n),t.child;case 8:return oe(e,t,t.pendingProps.children,n),t.child;case 12:return oe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,u=t.memoizedProps,o=l.value,j(Gr,r._currentValue),r._currentValue=o,u!==null)if(Fe(u.value,o)){if(u.children===l.children&&!pe.current){t=qe(e,t,n);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var i=u.dependencies;if(i!==null){o=u.child;for(var s=i.firstContext;s!==null;){if(s.context===r){if(u.tag===1){s=Ye(-1,n&-n),s.tag=2;var c=u.updateQueue;if(c!==null){c=c.shared;var h=c.pending;h===null?s.next=s:(s.next=h.next,h.next=s),c.pending=s}}u.lanes|=n,s=u.alternate,s!==null&&(s.lanes|=n),xu(u.return,n,t),i.lanes|=n;break}s=s.next}}else if(u.tag===10)o=u.type===t.type?null:u.child;else if(u.tag===18){if(o=u.return,o===null)throw Error(y(341));o.lanes|=n,i=o.alternate,i!==null&&(i.lanes|=n),xu(o,n,t),o=u.sibling}else o=u.child;if(o!==null)o.return=u;else for(o=u;o!==null;){if(o===t){o=null;break}if(u=o.sibling,u!==null){u.return=o.return,o=u;break}o=o.return}u=o}oe(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,bt(t,n),l=Te(l),r=r(l),t.flags|=1,oe(e,t,r,n),t.child;case 14:return r=t.type,l=Oe(r,t.pendingProps),l=Oe(r.type,l),Ii(e,t,r,l,n);case 15:return Da(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Lr(e,t),t.tag=1,me(r)?(e=!0,Wr(t)):e=!1,bt(t,n),Oa(t,r,l),Pu(t,r,l,n),zu(null,t,r,!0,e,n);case 19:return Aa(e,t,n);case 22:return Ma(e,t,n)}throw Error(y(156,t.tag))};function nc(e,t){return zs(e,t)}function Ld(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pe(e,t,n,r){return new Ld(e,t,n,r)}function Ro(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Rd(e){if(typeof e=="function")return Ro(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xu)return 11;if(e===Zu)return 14}return 2}function mt(e,t){var n=e.alternate;return n===null?(n=Pe(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ir(e,t,n,r,l,u){var o=2;if(r=e,typeof e=="function")Ro(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ut:return Tt(n.children,l,u,t);case Yu:o=8,l|=8;break;case Zl:return e=Pe(12,n,t,l|2),e.elementType=Zl,e.lanes=u,e;case Jl:return e=Pe(13,n,t,l),e.elementType=Jl,e.lanes=u,e;case ql:return e=Pe(19,n,t,l),e.elementType=ql,e.lanes=u,e;case ds:return hl(n,l,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case cs:o=10;break e;case fs:o=9;break e;case Xu:o=11;break e;case Zu:o=14;break e;case tt:o=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return t=Pe(o,n,t,l),t.elementType=e,t.type=r,t.lanes=u,t}function Tt(e,t,n,r){return e=Pe(7,e,r,t),e.lanes=n,e}function hl(e,t,n,r){return e=Pe(22,e,r,t),e.elementType=ds,e.lanes=n,e.stateNode={isHidden:!1},e}function Gl(e,t,n){return e=Pe(6,e,null,t),e.lanes=n,e}function Yl(e,t,n){return t=Pe(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Od(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Tl(0),this.expirationTimes=Tl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Tl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Oo(e,t,n,r,l,u,o,i,s){return e=new Od(e,t,n,i,s),t===1?(t=1,u===!0&&(t|=8)):t=0,u=Pe(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ho(u),e}function Id(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(oc)}catch(e){console.error(e)}}oc(),os.exports=Ee;var Ud=os.exports,ic,Gi=Ud;ic=Gi.createRoot,Gi.hydrateRoot;const $d="modulepreload",Ad=function(e,t){return new URL(e,t).href},Yi={},Ue=function(t,n,r){let l=Promise.resolve();if(n&&n.length>0){const o=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),s=i?.nonce||i?.getAttribute("nonce");l=Promise.allSettled(n.map(c=>{if(c=Ad(c,r),c in Yi)return;Yi[c]=!0;const h=c.endsWith(".css"),m=h?'[rel="stylesheet"]':"";if(!!r)for(let w=o.length-1;w>=0;w--){const S=o[w];if(S.href===c&&(!h||S.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${m}`))return;const g=document.createElement("link");if(g.rel=h?"stylesheet":$d,h||(g.as="script"),g.crossOrigin="",g.href=c,s&&g.setAttribute("nonce",s),document.head.appendChild(g),h)return new Promise((w,S)=>{g.addEventListener("load",w),g.addEventListener("error",()=>S(new Error(`Unable to preload CSS for ${c}`)))})}))}function u(o){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o}return l.then(o=>{for(const i of o||[])i.status==="rejected"&&u(i.reason);return t().catch(u)})};class Vd extends ke.Component{state={hasError:!1,error:null};static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("[dashboard] render error:",t,n.componentStack)}handleReload=()=>{window.location.reload()};render(){return this.state.hasError?O.jsxs("div",{className:"error-fallback",children:[O.jsx("h2",{children:"Something went wrong"}),O.jsx("p",{children:this.state.error?.message??"Unknown render error"}),O.jsx("button",{type:"button",onClick:this.handleReload,children:"Reload dashboard"})]}):this.props.children}}function Bd({tabs:e,active:t,onTabChange:n}){return O.jsx("nav",{className:"tab-bar",role:"tablist",children:e.map(r=>O.jsx("button",{type:"button",role:"tab","aria-selected":t===r.id,className:t===r.id?"active":"",onClick:()=>n(r.id),children:r.label},r.id))})}function Hd(){return O.jsx("div",{className:"loading-spinner",children:"Loading…"})}function Wd(e,t={}){const{pollInterval:n=0}=t,[r,l]=ce.useState(null),[u,o]=ce.useState(null),[i,s]=ce.useState(!0),[c,h]=ce.useState(null),m=ce.useRef(!0),p=ce.useCallback(async()=>{s(!0),o(null);try{const g=await e();m.current&&(l(g),h(Date.now()))}catch(g){m.current&&o(g instanceof Error?g:new Error(String(g)))}finally{m.current&&s(!1)}},[e]);return ce.useEffect(()=>(m.current=!0,p(),()=>{m.current=!1}),[p]),ce.useEffect(()=>{if(n<=0)return;const g=setInterval(p,n);return()=>clearInterval(g)},[p,n]),{data:r,error:u,loading:i,refetch:p,lastFetchedAt:c}}const te={snapshot:{path:"/api/snapshot"},index:{path:"/api/index"},servers:{path:"/api/servers"},getGameState:{path:"/api/game-state"},putGameState:{path:"/api/game-state"},gameScores:{path:"/api/game-scores"},perf:{path:"/api/perf"},achievements:{path:"/api/achievements"},sessions:{path:"/api/sessions"},sessionTimeseries:{path:"/api/sessions/timeseries"},topics:{path:"/api/topics"},turns:{path:"/api/turns"},conversationTurns:{path:"/api/turns/conversation/:convId"},turnIntents:{path:"/api/turns/intents"},postTurnIntent:{path:"/api/turns/intent"},fork:{path:"/api/fork"},topicMemories:{path:"/api/topics/:topicId/memories"}};class Mo extends Error{status;constructor(t,n){super(`dashboard API ${t}: ${n}`),this.name="ApiError",this.status=t}}async function ve(e){const t=await fetch(e);if(!t.ok)throw new Mo(t.status,await t.text().catch(()=>t.statusText));return t.json()}async function Qd(e,t){const n=await fetch(e,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Mo(n.status,await n.text().catch(()=>n.statusText));return n.json()}async function sc(e,t){const n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Mo(n.status,await n.text().catch(()=>n.statusText));return n.json()}function Fo(e){const t=new URLSearchParams;for(const[r,l]of Object.entries(e))l!=null&&t.set(r,String(l));const n=t.toString();return n?`?${n}`:""}function Kd(){return ve(te.snapshot.path)}function ip(){return ve(te.index.path)}function sp(){return ve(te.servers.path)}function ap(){return ve(te.getGameState.path)}function cp(e){return Qd(te.putGameState.path,e)}function fp(e={}){return ve(`${te.gameScores.path}${Fo({metric:e.metric,limit:e.limit})}`)}function dp(e={}){return ve(`${te.perf.path}${Fo({minutes:e.minutes})}`)}function pp(){return ve(te.achievements.path)}function mp(){return ve(te.sessions.path)}function hp(e){return ve(`${te.sessionTimeseries.path}${Fo({minutes:e})}`)}function vp(){return ve(te.topics.path)}function yp(){return ve(te.turns.path)}function gp(e){return ve(`${te.conversationTurns.path.replace(":convId",encodeURIComponent(e))}`)}function wp(){return ve(te.turnIntents.path)}function Sp(e,t){return sc(te.postTurnIntent.path,{conversationId:e,targetTurnIndex:t})}function kp(e,t){return sc(te.fork.path,{conversationId:e,turnIndex:t})}function Ep(e){return ve(te.topicMemories.path.replace(":topicId",encodeURIComponent(e)))}const Gd=ke.lazy(()=>Ue(()=>import("./OverviewTab-BMREvAth.js"),__vite__mapDeps([0,1,2]),import.meta.url)),Yd=ke.lazy(()=>Ue(()=>import("./ReposTab-DuyhOktG.js"),[],import.meta.url)),Xd=ke.lazy(()=>Ue(()=>import("./EventsTab-D5HoEVYo.js"),__vite__mapDeps([3,1]),import.meta.url)),Zd=ke.lazy(()=>Ue(()=>import("./ConfigTab-DQ4FG33J.js"),[],import.meta.url)),Jd=ke.lazy(()=>Ue(()=>import("./MetricsTab-D_XnsEYX.js"),[],import.meta.url)),qd=ke.lazy(()=>Ue(()=>import("./CacheTab-DEQbTq2T.js"),__vite__mapDeps([4,2]),import.meta.url)),bd=ke.lazy(()=>Ue(()=>import("./GameTab-Jzsc4yeY.js"),__vite__mapDeps([5,6]),import.meta.url)),ep=ke.lazy(()=>Ue(()=>import("./AchievementsTab-BzFHpAHM.js"),__vite__mapDeps([7,6]),import.meta.url)),tp=ke.lazy(()=>Ue(()=>import("./SessionsTab-mz_vz8i2.js"),__vite__mapDeps([8,1]),import.meta.url)),np=ke.lazy(()=>Ue(()=>import("./TopicsTab-DKuct4oD.js"),[],import.meta.url)),rp=ke.lazy(()=>Ue(()=>import("./TurnsTab-11MGLxY8.js"),[],import.meta.url)),lp=[{id:"overview",label:"Overview"},{id:"repos",label:"Repos"},{id:"events",label:"Events"},{id:"config",label:"Config"},{id:"metrics",label:"Metrics"},{id:"cache",label:"Cache"},{id:"game",label:"Game"},{id:"achievements",label:"Achievements"},{id:"sessions",label:"Sessions"},{id:"topics",label:"Topics"},{id:"turns",label:"Turns"}];function up(){const[e,t]=ce.useState("overview"),{data:n,loading:r,error:l}=Wd(ce.useCallback(()=>Kd(),[]),{pollInterval:5e3}),u=n?.tier??"unknown",o=n?.model?.name??"";return O.jsx(Vd,{children:O.jsxs("div",{className:"dashboard-app",children:[O.jsx("header",{className:"dashboard-header",children:O.jsxs("h1",{children:["mega-compact dashboard",O.jsx("span",{className:"tier",children:u}),o&&O.jsx("span",{className:"version-pill",children:o})]})}),O.jsx(Bd,{tabs:lp,active:e,onTabChange:t}),O.jsx("main",{className:"dashboard-content",children:O.jsxs(ke.Suspense,{fallback:O.jsx(Hd,{}),children:[e==="overview"&&O.jsx(Gd,{snapshot:n,loading:r,error:l}),e==="repos"&&O.jsx(Yd,{}),e==="events"&&O.jsx(Xd,{}),e==="config"&&O.jsx(Zd,{}),e==="metrics"&&O.jsx(Jd,{}),e==="cache"&&O.jsx(qd,{}),e==="game"&&O.jsx(bd,{}),e==="achievements"&&O.jsx(ep,{}),e==="sessions"&&O.jsx(tp,{}),e==="topics"&&O.jsx(np,{}),e==="turns"&&O.jsx(rp,{})]})})]})})}const ac=document.getElementById("root");if(!ac)throw new Error("dashboard-client: #root element not found in index.html");ic(ac).render(O.jsx(ce.StrictMode,{children:O.jsx(up,{})}));export{ke as R,sp as a,ip as b,Kd as c,ap as d,dp as e,mp as f,fp as g,pp as h,op as i,O as j,fc as k,hp as l,vp as m,Ep as n,yp as o,cp as p,wp as q,ce as r,gp as s,kp as t,Wd as u,Sp as v}; -//# sourceMappingURL=index-CqLN7STl.js.map +`+u.stack}return{value:e,source:t,stack:l,digest:null}}function Kl(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Tu(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var pd=typeof WeakMap=="function"?WeakMap:Map;function Ia(e,t,n){n=Ye(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){el||(el=!0,Uu=r),Tu(e,t)},n}function ja(e,t,n){n=Ye(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){Tu(e,t)}}var u=e.stateNode;return u!==null&&typeof u.componentDidCatch=="function"&&(n.callback=function(){Tu(e,t),typeof r!="function"&&(dt===null?dt=new Set([this]):dt.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function zi(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new pd;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=Nd.bind(null,e,t,n),t.then(e,e))}function Li(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Ri(e,t,n,r,l){return e.mode&1?(e.flags|=65536,e.lanes=l,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Ye(-1,1),t.tag=2,ft(n,t,1))),n.lanes|=1),e)}var md=be.ReactCurrentOwner,pe=!1;function oe(e,t,n,r){t.child=e===null?aa(t,null,n,r):ln(t,e.child,n,r)}function Oi(e,t,n,r,l){n=n.render;var u=t.ref;return bt(t,l),r=ko(e,t,n,r,u,l),n=Eo(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,qe(e,t,l)):(U&&n&&so(t),t.flags|=1,oe(e,t,r,l),t.child)}function Ii(e,t,n,r,l){if(e===null){var u=n.type;return typeof u=="function"&&!Oo(u)&&u.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=u,Da(e,t,u,r,l)):(e=Ir(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(u=e.child,!(e.lanes&l)){var o=u.memoizedProps;if(n=n.compare,n=n!==null?n:Bn,n(o,r)&&e.ref===t.ref)return qe(e,t,l)}return t.flags|=1,e=mt(u,r),e.ref=t.ref,e.return=t,t.child=e}function Da(e,t,n,r,l){if(e!==null){var u=e.memoizedProps;if(Bn(u,r)&&e.ref===t.ref)if(pe=!1,t.pendingProps=r=u,(e.lanes&l)!==0)e.flags&131072&&(pe=!0);else return t.lanes=e.lanes,qe(e,t,l)}return zu(e,t,n,r,l)}function Ma(e,t,n){var r=t.pendingProps,l=r.children,u=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},j(Yt,ye),ye|=n;else{if(!(n&1073741824))return e=u!==null?u.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,j(Yt,ye),ye|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=u!==null?u.baseLanes:n,j(Yt,ye),ye|=r}else u!==null?(r=u.baseLanes|n,t.memoizedState=null):r=n,j(Yt,ye),ye|=r;return oe(e,t,l,n),t.child}function Fa(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function zu(e,t,n,r,l){var u=he(n)?zt:ue.current;return u=nn(t,u),bt(t,l),n=ko(e,t,n,r,u,l),r=Eo(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,qe(e,t,l)):(U&&r&&so(t),t.flags|=1,oe(e,t,n,l),t.child)}function ji(e,t,n,r,l){if(he(n)){var u=!0;Wr(t)}else u=!1;if(bt(t,l),t.stateNode===null)Lr(e,t),Oa(t,n,r),Nu(t,n,r,l),r=!0;else if(e===null){var o=t.stateNode,i=t.memoizedProps;o.props=i;var s=o.context,c=n.contextType;typeof c=="object"&&c!==null?c=Te(c):(c=he(n)?zt:ue.current,c=nn(t,c));var h=n.getDerivedStateFromProps,m=typeof h=="function"||typeof o.getSnapshotBeforeUpdate=="function";m||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(i!==r||s!==c)&&Ti(t,o,r,c),nt=!1;var p=t.memoizedState;o.state=p,Xr(t,r,o,l),s=t.memoizedState,i!==r||p!==s||me.current||nt?(typeof h=="function"&&(Pu(t,n,h,r),s=t.memoizedState),(i=nt||Ni(t,n,i,r,p,s,c))?(m||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),o.props=r,o.state=s,o.context=c,r=i):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,fa(e,t),i=t.memoizedProps,c=t.type===t.elementType?i:Oe(t.type,i),o.props=c,m=t.pendingProps,p=o.context,s=n.contextType,typeof s=="object"&&s!==null?s=Te(s):(s=he(n)?zt:ue.current,s=nn(t,s));var g=n.getDerivedStateFromProps;(h=typeof g=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(i!==m||p!==s)&&Ti(t,o,r,s),nt=!1,p=t.memoizedState,o.state=p,Xr(t,r,o,l);var w=t.memoizedState;i!==m||p!==w||me.current||nt?(typeof g=="function"&&(Pu(t,n,g,r),w=t.memoizedState),(c=nt||Ni(t,n,c,r,p,w,s)||!1)?(h||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,w,s),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,w,s)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=w),o.props=r,o.state=w,o.context=s,r=c):(typeof o.componentDidUpdate!="function"||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||i===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Lu(e,t,n,r,u,l)}function Lu(e,t,n,r,l,u){Fa(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return l&&wi(t,n,!1),qe(e,t,u);r=t.stateNode,md.current=t;var i=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=ln(t,e.child,null,u),t.child=ln(t,null,i,u)):oe(e,t,i,u),t.memoizedState=r.state,l&&wi(t,n,!0),t.child}function Ua(e){var t=e.stateNode;t.pendingContext?gi(e,t.pendingContext,t.pendingContext!==t.context):t.context&&gi(e,t.context,!1),yo(e,t.containerInfo)}function Di(e,t,n,r,l){return rn(),co(l),t.flags|=256,oe(e,t,n,r),t.child}var Ru={dehydrated:null,treeContext:null,retryLane:0};function Ou(e){return{baseLanes:e,cachePool:null,transitions:null}}function $a(e,t,n){var r=t.pendingProps,l=$.current,u=!1,o=(t.flags&128)!==0,i;if((i=o)||(i=e!==null&&e.memoizedState===null?!1:(l&2)!==0),i?(u=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(l|=1),j($,l&1),e===null)return xu(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,u?(r=t.mode,u=t.child,o={mode:"hidden",children:o},!(r&1)&&u!==null?(u.childLanes=0,u.pendingProps=o):u=hl(o,r,0,null),e=Tt(e,r,n,null),u.return=t,e.return=t,u.sibling=e,t.child=u,t.child.memoizedState=Ou(n),t.memoizedState=Ru,e):Co(t,o));if(l=e.memoizedState,l!==null&&(i=l.dehydrated,i!==null))return hd(e,t,o,r,i,l,n);if(u){u=r.fallback,o=t.mode,l=e.child,i=l.sibling;var s={mode:"hidden",children:r.children};return!(o&1)&&t.child!==l?(r=t.child,r.childLanes=0,r.pendingProps=s,t.deletions=null):(r=mt(l,s),r.subtreeFlags=l.subtreeFlags&14680064),i!==null?u=mt(i,u):(u=Tt(u,o,n,null),u.flags|=2),u.return=t,r.return=t,r.sibling=u,t.child=r,r=u,u=t.child,o=e.child.memoizedState,o=o===null?Ou(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},u.memoizedState=o,u.childLanes=e.childLanes&~n,t.memoizedState=Ru,r}return u=e.child,e=u.sibling,r=mt(u,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Co(e,t){return t=hl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function gr(e,t,n,r){return r!==null&&co(r),ln(t,e.child,null,n),e=Co(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function hd(e,t,n,r,l,u,o){if(n)return t.flags&256?(t.flags&=-257,r=Kl(Error(y(422))),gr(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(u=r.fallback,l=t.mode,r=hl({mode:"visible",children:r.children},l,0,null),u=Tt(u,l,o,null),u.flags|=2,r.return=t,u.return=t,r.sibling=u,t.child=r,t.mode&1&&ln(t,e.child,null,o),t.child.memoizedState=Ou(o),t.memoizedState=Ru,u);if(!(t.mode&1))return gr(e,t,o,null);if(l.data==="$!"){if(r=l.nextSibling&&l.nextSibling.dataset,r)var i=r.dgst;return r=i,u=Error(y(419)),r=Kl(u,r,void 0),gr(e,t,o,r)}if(i=(o&e.childLanes)!==0,pe||i){if(r=J,r!==null){switch(o&-o){case 4:l=2;break;case 16:l=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:l=32;break;case 536870912:l=268435456;break;default:l=0}l=l&(r.suspendedLanes|o)?0:l,l!==0&&l!==u.retryLane&&(u.retryLane=l,Je(e,l),Me(r,e,l,-1))}return Ro(),r=Kl(Error(y(421))),gr(e,t,o,r)}return l.data==="$?"?(t.flags|=128,t.child=e.child,t=Td.bind(null,e),l._reactRetry=t,null):(e=u.treeContext,ge=ct(l.nextSibling),we=t,U=!0,je=null,e!==null&&(xe[Ce++]=Ke,xe[Ce++]=Ge,xe[Ce++]=Lt,Ke=e.id,Ge=e.overflow,Lt=t),t=Co(t,r.children),t.flags|=4096,t)}function Mi(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Cu(e.return,t,n)}function Gl(e,t,n,r,l){var u=e.memoizedState;u===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:l}:(u.isBackwards=t,u.rendering=null,u.renderingStartTime=0,u.last=r,u.tail=n,u.tailMode=l)}function Aa(e,t,n){var r=t.pendingProps,l=r.revealOrder,u=r.tail;if(oe(e,t,r.children,n),r=$.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Mi(e,n,t);else if(e.tag===19)Mi(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(j($,r),!(t.mode&1))t.memoizedState=null;else switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&Zr(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),Gl(t,!1,l,n,u);break;case"backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&Zr(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}Gl(t,!0,n,null,u);break;case"together":Gl(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Lr(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function qe(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ot|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(y(153));if(t.child!==null){for(e=t.child,n=mt(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=mt(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function vd(e,t,n){switch(t.tag){case 3:Ua(t),rn();break;case 5:da(t);break;case 1:he(t.type)&&Wr(t);break;case 4:yo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,l=t.memoizedProps.value;j(Gr,r._currentValue),r._currentValue=l;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(j($,$.current&1),t.flags|=128,null):n&t.child.childLanes?$a(e,t,n):(j($,$.current&1),e=qe(e,t,n),e!==null?e.sibling:null);j($,$.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return Aa(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),j($,$.current),r)break;return null;case 22:case 23:return t.lanes=0,Ma(e,t,n)}return qe(e,t,n)}var Va,Iu,Ba,Ha;Va=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Iu=function(){};Ba=function(e,t,n,r){var l=e.memoizedProps;if(l!==r){e=t.stateNode,Pt(He.current);var u=null;switch(n){case"input":l=tu(e,l),r=tu(e,r),u=[];break;case"select":l=V({},l,{value:void 0}),r=V({},r,{value:void 0}),u=[];break;case"textarea":l=lu(e,l),r=lu(e,r),u=[];break;default:typeof l.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Br)}ou(n,r);var o;n=null;for(c in l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&l[c]!=null)if(c==="style"){var i=l[c];for(o in i)i.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(Dn.hasOwnProperty(c)?u||(u=[]):(u=u||[]).push(c,null));for(c in r){var s=r[c];if(i=l?.[c],r.hasOwnProperty(c)&&s!==i&&(s!=null||i!=null))if(c==="style")if(i){for(o in i)!i.hasOwnProperty(o)||s&&s.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in s)s.hasOwnProperty(o)&&i[o]!==s[o]&&(n||(n={}),n[o]=s[o])}else n||(u||(u=[]),u.push(c,n)),n=s;else c==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,i=i?i.__html:void 0,s!=null&&i!==s&&(u=u||[]).push(c,s)):c==="children"?typeof s!="string"&&typeof s!="number"||(u=u||[]).push(c,""+s):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(Dn.hasOwnProperty(c)?(s!=null&&c==="onScroll"&&D("scroll",e),u||i===s||(u=[])):(u=u||[]).push(c,s))}n&&(u=u||[]).push("style",n);var c=u;(t.updateQueue=c)&&(t.flags|=4)}};Ha=function(e,t,n,r){n!==r&&(t.flags|=4)};function Sn(e,t){if(!U)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function re(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags&14680064,r|=l.flags&14680064,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function yd(e,t,n){var r=t.pendingProps;switch(ao(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return re(t),null;case 1:return he(t.type)&&Hr(),re(t),null;case 3:return r=t.stateNode,un(),M(me),M(ue),wo(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(vr(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,je!==null&&(Vu(je),je=null))),Iu(e,t),re(t),null;case 5:go(t);var l=Pt(Gn.current);if(n=t.type,e!==null&&t.stateNode!=null)Ba(e,t,n,r,l),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(y(166));return re(t),null}if(e=Pt(He.current),vr(t)){r=t.stateNode,n=t.type;var u=t.memoizedProps;switch(r[Ve]=t,r[Qn]=u,e=(t.mode&1)!==0,n){case"dialog":D("cancel",r),D("close",r);break;case"iframe":case"object":case"embed":D("load",r);break;case"video":case"audio":for(l=0;l<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Ve]=t,e[Qn]=r,Va(e,t,!1,!1),t.stateNode=e;e:{switch(o=iu(n,r),n){case"dialog":D("cancel",e),D("close",e),l=r;break;case"iframe":case"object":case"embed":D("load",e),l=r;break;case"video":case"audio":for(l=0;lsn&&(t.flags|=128,r=!0,Sn(u,!1),t.lanes=4194304)}else{if(!r)if(e=Zr(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Sn(u,!0),u.tail===null&&u.tailMode==="hidden"&&!o.alternate&&!U)return re(t),null}else 2*Q()-u.renderingStartTime>sn&&n!==1073741824&&(t.flags|=128,r=!0,Sn(u,!1),t.lanes=4194304);u.isBackwards?(o.sibling=t.child,t.child=o):(n=u.last,n!==null?n.sibling=o:t.child=o,u.last=o)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=Q(),t.sibling=null,n=$.current,j($,r?n&1|2:n&1),t):(re(t),null);case 22:case 23:return Lo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?ye&1073741824&&(re(t),t.subtreeFlags&6&&(t.flags|=8192)):re(t),null;case 24:return null;case 25:return null}throw Error(y(156,t.tag))}function gd(e,t){switch(ao(t),t.tag){case 1:return he(t.type)&&Hr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return un(),M(me),M(ue),wo(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return go(t),null;case 13:if(M($),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(y(340));rn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return M($),null;case 4:return un(),null;case 10:return mo(t.type._context),null;case 22:case 23:return Lo(),null;case 24:return null;default:return null}}var wr=!1,le=!1,wd=typeof WeakSet=="function"?WeakSet:Set,k=null;function Gt(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){B(e,t,r)}else n.current=null}function ju(e,t,n){try{n()}catch(r){B(e,t,r)}}var Fi=!1;function Sd(e,t){if(yu=$r,e=Ys(),io(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var o=0,i=-1,s=-1,c=0,h=0,m=e,p=null;t:for(;;){for(var g;m!==n||l!==0&&m.nodeType!==3||(i=o+l),m!==u||r!==0&&m.nodeType!==3||(s=o+r),m.nodeType===3&&(o+=m.nodeValue.length),(g=m.firstChild)!==null;)p=m,m=g;for(;;){if(m===e)break t;if(p===n&&++c===l&&(i=o),p===u&&++h===r&&(s=o),(g=m.nextSibling)!==null)break;m=p,p=m.parentNode}m=g}n=i===-1||s===-1?null:{start:i,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(gu={focusedElem:e,selectionRange:n},$r=!1,k=t;k!==null;)if(t=k,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,k=e;else for(;k!==null;){t=k;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var S=w.memoizedProps,F=w.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?S:Oe(t.type,S),F);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(y(163))}}catch(v){B(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,k=e;break}k=t.return}return w=Fi,Fi=!1,w}function On(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,u!==void 0&&ju(t,n,u)}l=l.next}while(l!==r)}}function pl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Du(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Wa(e){var t=e.alternate;t!==null&&(e.alternate=null,Wa(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ve],delete t[Qn],delete t[ku],delete t[nd],delete t[rd])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Qa(e){return e.tag===5||e.tag===3||e.tag===4}function Ui(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Qa(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Mu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Br));else if(r!==4&&(e=e.child,e!==null))for(Mu(e,t,n),e=e.sibling;e!==null;)Mu(e,t,n),e=e.sibling}function Fu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Fu(e,t,n),e=e.sibling;e!==null;)Fu(e,t,n),e=e.sibling}var b=null,Ie=!1;function et(e,t,n){for(n=n.child;n!==null;)Ka(e,t,n),n=n.sibling}function Ka(e,t,n){if(Be&&typeof Be.onCommitFiberUnmount=="function")try{Be.onCommitFiberUnmount(ul,n)}catch{}switch(n.tag){case 5:le||Gt(n,t);case 6:var r=b,l=Ie;b=null,et(e,t,n),b=r,Ie=l,b!==null&&(Ie?(e=b,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):b.removeChild(n.stateNode));break;case 18:b!==null&&(Ie?(e=b,n=n.stateNode,e.nodeType===8?Al(e.parentNode,n):e.nodeType===1&&Al(e,n),An(e)):Al(b,n.stateNode));break;case 4:r=b,l=Ie,b=n.stateNode.containerInfo,Ie=!0,et(e,t,n),b=r,Ie=l;break;case 0:case 11:case 14:case 15:if(!le&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var u=l,o=u.destroy;u=u.tag,o!==void 0&&(u&2||u&4)&&ju(n,t,o),l=l.next}while(l!==r)}et(e,t,n);break;case 1:if(!le&&(Gt(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(i){B(n,t,i)}et(e,t,n);break;case 21:et(e,t,n);break;case 22:n.mode&1?(le=(r=le)||n.memoizedState!==null,et(e,t,n),le=r):et(e,t,n);break;default:et(e,t,n)}}function $i(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new wd),t.forEach(function(r){var l=zd.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Re(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=o),r&=~u}if(r=l,r=Q()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ed(r/1960))-r,10e?16:e,ot===null)var r=!1;else{if(e=ot,ot=null,tl=0,R&6)throw Error(y(331));var l=R;for(R|=4,k=e.current;k!==null;){var u=k,o=u.child;if(k.flags&16){var i=u.deletions;if(i!==null){for(var s=0;sQ()-To?Nt(e,0):No|=n),ve(e,t)}function ec(e,t){t===0&&(e.mode&1?(t=cr,cr<<=1,!(cr&130023424)&&(cr=4194304)):t=1);var n=ie();e=Je(e,t),e!==null&&(bn(e,t,n),ve(e,n))}function Td(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ec(e,n)}function zd(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(y(314))}r!==null&&r.delete(t),ec(e,n)}var tc;tc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||me.current)pe=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return pe=!1,vd(e,t,n);pe=!!(e.flags&131072)}else pe=!1,U&&t.flags&1048576&&ua(t,Kr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Lr(e,t),e=t.pendingProps;var l=nn(t,ue.current);bt(t,n),l=ko(null,t,r,e,l,n);var u=Eo();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,he(r)?(u=!0,Wr(t)):u=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,vo(t),l.updater=dl,t.stateNode=l,l._reactInternals=t,Nu(t,r,e,n),t=Lu(null,t,r,!0,u,n)):(t.tag=0,U&&u&&so(t),oe(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Lr(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=Rd(r),e=Oe(r,e),l){case 0:t=zu(null,t,r,e,n);break e;case 1:t=ji(null,t,r,e,n);break e;case 11:t=Oi(null,t,r,e,n);break e;case 14:t=Ii(null,t,r,Oe(r.type,e),n);break e}throw Error(y(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),zu(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),ji(e,t,r,l,n);case 3:e:{if(Ua(t),e===null)throw Error(y(387));r=t.pendingProps,u=t.memoizedState,l=u.element,fa(e,t),Xr(t,r,null,n);var o=t.memoizedState;if(r=o.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){l=on(Error(y(423)),t),t=Di(e,t,r,n,l);break e}else if(r!==l){l=on(Error(y(424)),t),t=Di(e,t,r,n,l);break e}else for(ge=ct(t.stateNode.containerInfo.firstChild),we=t,U=!0,je=null,n=aa(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(rn(),r===l){t=qe(e,t,n);break e}oe(e,t,r,n)}t=t.child}return t;case 5:return da(t),e===null&&xu(t),r=t.type,l=t.pendingProps,u=e!==null?e.memoizedProps:null,o=l.children,wu(r,l)?o=null:u!==null&&wu(r,u)&&(t.flags|=32),Fa(e,t),oe(e,t,o,n),t.child;case 6:return e===null&&xu(t),null;case 13:return $a(e,t,n);case 4:return yo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=ln(t,null,r,n):oe(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Oi(e,t,r,l,n);case 7:return oe(e,t,t.pendingProps,n),t.child;case 8:return oe(e,t,t.pendingProps.children,n),t.child;case 12:return oe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,u=t.memoizedProps,o=l.value,j(Gr,r._currentValue),r._currentValue=o,u!==null)if(Fe(u.value,o)){if(u.children===l.children&&!me.current){t=qe(e,t,n);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var i=u.dependencies;if(i!==null){o=u.child;for(var s=i.firstContext;s!==null;){if(s.context===r){if(u.tag===1){s=Ye(-1,n&-n),s.tag=2;var c=u.updateQueue;if(c!==null){c=c.shared;var h=c.pending;h===null?s.next=s:(s.next=h.next,h.next=s),c.pending=s}}u.lanes|=n,s=u.alternate,s!==null&&(s.lanes|=n),Cu(u.return,n,t),i.lanes|=n;break}s=s.next}}else if(u.tag===10)o=u.type===t.type?null:u.child;else if(u.tag===18){if(o=u.return,o===null)throw Error(y(341));o.lanes|=n,i=o.alternate,i!==null&&(i.lanes|=n),Cu(o,n,t),o=u.sibling}else o=u.child;if(o!==null)o.return=u;else for(o=u;o!==null;){if(o===t){o=null;break}if(u=o.sibling,u!==null){u.return=o.return,o=u;break}o=o.return}u=o}oe(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,bt(t,n),l=Te(l),r=r(l),t.flags|=1,oe(e,t,r,n),t.child;case 14:return r=t.type,l=Oe(r,t.pendingProps),l=Oe(r.type,l),Ii(e,t,r,l,n);case 15:return Da(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Oe(r,l),Lr(e,t),t.tag=1,he(r)?(e=!0,Wr(t)):e=!1,bt(t,n),Oa(t,r,l),Nu(t,r,l,n),Lu(null,t,r,!0,e,n);case 19:return Aa(e,t,n);case 22:return Ma(e,t,n)}throw Error(y(156,t.tag))};function nc(e,t){return zs(e,t)}function Ld(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pe(e,t,n,r){return new Ld(e,t,n,r)}function Oo(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Rd(e){if(typeof e=="function")return Oo(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Zu)return 11;if(e===Ju)return 14}return 2}function mt(e,t){var n=e.alternate;return n===null?(n=Pe(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ir(e,t,n,r,l,u){var o=2;if(r=e,typeof e=="function")Oo(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ut:return Tt(n.children,l,u,t);case Xu:o=8,l|=8;break;case Jl:return e=Pe(12,n,t,l|2),e.elementType=Jl,e.lanes=u,e;case ql:return e=Pe(13,n,t,l),e.elementType=ql,e.lanes=u,e;case bl:return e=Pe(19,n,t,l),e.elementType=bl,e.lanes=u,e;case ds:return hl(n,l,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case cs:o=10;break e;case fs:o=9;break e;case Zu:o=11;break e;case Ju:o=14;break e;case tt:o=16,r=null;break e}throw Error(y(130,e==null?e:typeof e,""))}return t=Pe(o,n,t,l),t.elementType=e,t.type=r,t.lanes=u,t}function Tt(e,t,n,r){return e=Pe(7,e,r,t),e.lanes=n,e}function hl(e,t,n,r){return e=Pe(22,e,r,t),e.elementType=ds,e.lanes=n,e.stateNode={isHidden:!1},e}function Yl(e,t,n){return e=Pe(6,e,null,t),e.lanes=n,e}function Xl(e,t,n){return t=Pe(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Od(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zl(0),this.expirationTimes=zl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function Io(e,t,n,r,l,u,o,i,s){return e=new Od(e,t,n,i,s),t===1?(t=1,u===!0&&(t|=8)):t=0,u=Pe(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},vo(u),e}function Id(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(oc)}catch(e){console.error(e)}}oc(),os.exports=Ee;var Ud=os.exports,ic,Gi=Ud;ic=Gi.createRoot,Gi.hydrateRoot;const $d="modulepreload",Ad=function(e,t){return new URL(e,t).href},Yi={},Ue=function(t,n,r){let l=Promise.resolve();if(n&&n.length>0){const o=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),s=i?.nonce||i?.getAttribute("nonce");l=Promise.allSettled(n.map(c=>{if(c=Ad(c,r),c in Yi)return;Yi[c]=!0;const h=c.endsWith(".css"),m=h?'[rel="stylesheet"]':"";if(!!r)for(let w=o.length-1;w>=0;w--){const S=o[w];if(S.href===c&&(!h||S.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${m}`))return;const g=document.createElement("link");if(g.rel=h?"stylesheet":$d,h||(g.as="script"),g.crossOrigin="",g.href=c,s&&g.setAttribute("nonce",s),document.head.appendChild(g),h)return new Promise((w,S)=>{g.addEventListener("load",w),g.addEventListener("error",()=>S(new Error(`Unable to preload CSS for ${c}`)))})}))}function u(o){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o}return l.then(o=>{for(const i of o||[])i.status==="rejected"&&u(i.reason);return t().catch(u)})};class Vd extends ke.Component{state={hasError:!1,error:null};static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("[dashboard] render error:",t,n.componentStack)}handleReload=()=>{window.location.reload()};render(){return this.state.hasError?O.jsxs("div",{className:"error-fallback",children:[O.jsx("h2",{children:"Something went wrong"}),O.jsx("p",{children:this.state.error?.message??"Unknown render error"}),O.jsx("button",{type:"button",onClick:this.handleReload,children:"Reload dashboard"})]}):this.props.children}}function Bd({tabs:e,active:t,onTabChange:n}){return O.jsx("nav",{className:"tab-bar",role:"tablist",children:e.map(r=>O.jsx("button",{type:"button",role:"tab","aria-selected":t===r.id,className:t===r.id?"active":"",onClick:()=>n(r.id),children:r.label},r.id))})}function Hd(){return O.jsx("div",{className:"loading-spinner",children:"Loading…"})}function Wd(e,t={}){const{pollInterval:n=0}=t,[r,l]=fe.useState(null),[u,o]=fe.useState(null),[i,s]=fe.useState(!0),[c,h]=fe.useState(null),m=fe.useRef(!0),p=fe.useCallback(async()=>{s(!0),o(null);try{const g=await e();m.current&&(l(g),h(Date.now()))}catch(g){m.current&&o(g instanceof Error?g:new Error(String(g)))}finally{m.current&&s(!1)}},[e]);return fe.useEffect(()=>(m.current=!0,p(),()=>{m.current=!1}),[p]),fe.useEffect(()=>{if(n<=0)return;const g=setInterval(p,n);return()=>clearInterval(g)},[p,n]),{data:r,error:u,loading:i,refetch:p,lastFetchedAt:c}}const q={snapshot:{path:"/api/snapshot"},index:{path:"/api/index"},servers:{path:"/api/servers"},getGameState:{path:"/api/game-state"},putGameState:{path:"/api/game-state"},gameScores:{path:"/api/game-scores"},perf:{path:"/api/perf"},providerCache:{path:"/api/provider-cache"},achievements:{path:"/api/achievements"},sessions:{path:"/api/sessions"},sessionTimeseries:{path:"/api/sessions/timeseries"},topics:{path:"/api/topics"},turns:{path:"/api/turns"},conversationTurns:{path:"/api/turns/conversation/:convId"},turnIntents:{path:"/api/turns/intents"},postTurnIntent:{path:"/api/turns/intent"},fork:{path:"/api/fork"},topicMemories:{path:"/api/topics/:topicId/memories"}};class Fo extends Error{status;constructor(t,n){super(`dashboard API ${t}: ${n}`),this.name="ApiError",this.status=t}}async function ce(e){const t=await fetch(e);if(!t.ok)throw new Fo(t.status,await t.text().catch(()=>t.statusText));return t.json()}async function Qd(e,t){const n=await fetch(e,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Fo(n.status,await n.text().catch(()=>n.statusText));return n.json()}async function sc(e,t){const n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Fo(n.status,await n.text().catch(()=>n.statusText));return n.json()}function Sl(e){const t=new URLSearchParams;for(const[r,l]of Object.entries(e))l!=null&&t.set(r,String(l));const n=t.toString();return n?`?${n}`:""}function Kd(){return ce(q.snapshot.path)}function ip(){return ce(q.index.path)}function sp(){return ce(q.servers.path)}function ap(){return ce(q.getGameState.path)}function cp(e){return Qd(q.putGameState.path,e)}function fp(e={}){return ce(`${q.gameScores.path}${Sl({metric:e.metric,limit:e.limit})}`)}function dp(e={}){return ce(`${q.perf.path}${Sl({minutes:e.minutes})}`)}function pp(e={}){return ce(`${q.providerCache.path}${Sl({minutes:e.minutes})}`)}function mp(){return ce(q.achievements.path)}function hp(){return ce(q.sessions.path)}function vp(e){return ce(`${q.sessionTimeseries.path}${Sl({minutes:e})}`)}function yp(){return ce(q.topics.path)}function gp(){return ce(q.turns.path)}function wp(e){return ce(`${q.conversationTurns.path.replace(":convId",encodeURIComponent(e))}`)}function Sp(){return ce(q.turnIntents.path)}function kp(e,t){return sc(q.postTurnIntent.path,{conversationId:e,targetTurnIndex:t})}function Ep(e,t){return sc(q.fork.path,{conversationId:e,turnIndex:t})}function _p(e){return ce(q.topicMemories.path.replace(":topicId",encodeURIComponent(e)))}const Gd=ke.lazy(()=>Ue(()=>import("./OverviewTab-sJnPapkl.js"),__vite__mapDeps([0,1,2]),import.meta.url)),Yd=ke.lazy(()=>Ue(()=>import("./ReposTab-Bk0XStsz.js"),[],import.meta.url)),Xd=ke.lazy(()=>Ue(()=>import("./EventsTab-Daoh3-KJ.js"),__vite__mapDeps([3,1]),import.meta.url)),Zd=ke.lazy(()=>Ue(()=>import("./ConfigTab-B7M7jGmX.js"),[],import.meta.url)),Jd=ke.lazy(()=>Ue(()=>import("./MetricsTab-CGNXrMzs.js"),[],import.meta.url)),qd=ke.lazy(()=>Ue(()=>import("./CacheTab-BuFmuAIw.js"),__vite__mapDeps([4,2]),import.meta.url)),bd=ke.lazy(()=>Ue(()=>import("./GameTab-Cyy2Z1Ro.js"),__vite__mapDeps([5,6]),import.meta.url)),ep=ke.lazy(()=>Ue(()=>import("./AchievementsTab-Bg82nb4F.js"),__vite__mapDeps([7,6]),import.meta.url)),tp=ke.lazy(()=>Ue(()=>import("./SessionsTab-DfxFUEFC.js"),__vite__mapDeps([8,1]),import.meta.url)),np=ke.lazy(()=>Ue(()=>import("./TopicsTab-BznmkVJs.js"),[],import.meta.url)),rp=ke.lazy(()=>Ue(()=>import("./TurnsTab-D2wpt2Nu.js"),[],import.meta.url)),lp=[{id:"overview",label:"Overview"},{id:"repos",label:"Repos"},{id:"events",label:"Events"},{id:"config",label:"Config"},{id:"metrics",label:"Metrics"},{id:"cache",label:"Cache"},{id:"game",label:"Game"},{id:"achievements",label:"Achievements"},{id:"sessions",label:"Sessions"},{id:"topics",label:"Topics"},{id:"turns",label:"Turns"}];function up(){const[e,t]=fe.useState("overview"),{data:n,loading:r,error:l}=Wd(fe.useCallback(()=>Kd(),[]),{pollInterval:5e3}),u=n?.tier??"unknown",o=n?.model?.name??"";return O.jsx(Vd,{children:O.jsxs("div",{className:"dashboard-app",children:[O.jsx("header",{className:"dashboard-header",children:O.jsxs("h1",{children:["mega-compact dashboard",O.jsx("span",{className:"tier",children:u}),o&&O.jsx("span",{className:"version-pill",children:o})]})}),O.jsx(Bd,{tabs:lp,active:e,onTabChange:t}),O.jsx("main",{className:"dashboard-content",children:O.jsxs(ke.Suspense,{fallback:O.jsx(Hd,{}),children:[e==="overview"&&O.jsx(Gd,{snapshot:n,loading:r,error:l}),e==="repos"&&O.jsx(Yd,{}),e==="events"&&O.jsx(Xd,{}),e==="config"&&O.jsx(Zd,{}),e==="metrics"&&O.jsx(Jd,{}),e==="cache"&&O.jsx(qd,{}),e==="game"&&O.jsx(bd,{}),e==="achievements"&&O.jsx(ep,{}),e==="sessions"&&O.jsx(tp,{}),e==="topics"&&O.jsx(np,{}),e==="turns"&&O.jsx(rp,{})]})})]})})}const ac=document.getElementById("root");if(!ac)throw new Error("dashboard-client: #root element not found in index.html");ic(ac).render(O.jsx(fe.StrictMode,{children:O.jsx(up,{})}));export{ke as R,sp as a,ip as b,Kd as c,ap as d,dp as e,hp as f,pp as g,fp as h,mp as i,O as j,op as k,fc as l,vp as m,yp as n,_p as o,cp as p,gp as q,fe as r,Sp as s,wp as t,Wd as u,Ep as v,kp as w}; +//# sourceMappingURL=index-CqpO7WrQ.js.map diff --git a/extensions/dashboard-client/dist/assets/index-CqLN7STl.js.map b/extensions/dashboard-client/dist/assets/index-CqpO7WrQ.js.map similarity index 51% rename from extensions/dashboard-client/dist/assets/index-CqLN7STl.js.map rename to extensions/dashboard-client/dist/assets/index-CqpO7WrQ.js.map index 37fcff8..ccf745d 100644 --- a/extensions/dashboard-client/dist/assets/index-CqLN7STl.js.map +++ b/extensions/dashboard-client/dist/assets/index-CqpO7WrQ.js.map @@ -1 +1 @@ -{"version":3,"mappings":";;;;;;;;;GASa,IAAIA,GAAE,OAAO,IAAI,eAAe,EAAEC,GAAE,OAAO,IAAI,cAAc,EAAEC,GAAE,OAAO,IAAI,gBAAgB,EAAEC,GAAE,OAAO,IAAI,mBAAmB,EAAEC,GAAE,OAAO,IAAI,gBAAgB,EAAEC,GAAE,OAAO,IAAI,gBAAgB,EAAEC,GAAE,OAAO,IAAI,eAAe,EAAEC,GAAE,OAAO,IAAI,mBAAmB,EAAEC,GAAE,OAAO,IAAI,gBAAgB,EAAEC,GAAE,OAAO,IAAI,YAAY,EAAEC,GAAE,OAAO,IAAI,YAAY,EAAEC,GAAE,OAAO,SAAS,SAASC,GAAEC,EAAE,CAAC,OAAUA,IAAP,MAAqB,OAAOA,GAAlB,SAA2B,MAAKA,EAAEF,IAAGE,EAAEF,EAAC,GAAGE,EAAE,YAAY,EAAqB,OAAOA,GAApB,WAAsBA,EAAE,KAAI,CAC1e,IAAIC,GAAE,CAAC,UAAU,UAAU,CAAC,MAAM,EAAE,EAAE,mBAAmB,UAAU,GAAG,oBAAoB,UAAU,GAAG,gBAAgB,UAAU,EAAE,EAAEC,GAAE,OAAO,OAAOC,GAAE,GAAG,SAASC,GAAEJ,EAAEK,EAAEC,EAAE,CAAC,KAAK,MAAMN,EAAE,KAAK,QAAQK,EAAE,KAAK,KAAKF,GAAE,KAAK,QAAQG,GAAGL,EAAC,CAACG,GAAE,UAAU,iBAAiB,GACnQA,GAAE,UAAU,SAAS,SAASJ,EAAEK,EAAE,CAAC,GAAc,OAAOL,GAAlB,UAAkC,OAAOA,GAApB,YAA6BA,GAAN,KAAQ,MAAM,MAAM,uHAAuH,EAAE,KAAK,QAAQ,gBAAgB,KAAKA,EAAEK,EAAE,UAAU,CAAC,EAAED,GAAE,UAAU,YAAY,SAASJ,EAAE,CAAC,KAAK,QAAQ,mBAAmB,KAAKA,EAAE,aAAa,CAAC,EAAE,SAASO,IAAG,EAAEA,GAAE,UAAUH,GAAE,UAAU,SAASI,GAAER,EAAEK,EAAEC,EAAE,CAAC,KAAK,MAAMN,EAAE,KAAK,QAAQK,EAAE,KAAK,KAAKF,GAAE,KAAK,QAAQG,GAAGL,EAAC,CAAC,IAAIQ,GAAED,GAAE,UAAU,IAAID,GACrfE,GAAE,YAAYD,GAAEN,GAAEO,GAAEL,GAAE,SAAS,EAAEK,GAAE,qBAAqB,GAAG,IAAIC,GAAE,MAAM,QAAQC,GAAE,OAAO,UAAU,eAAeC,GAAE,CAAC,QAAQ,IAAI,EAAEC,GAAE,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,EAAE,EACxK,SAASC,GAAEd,EAAEK,EAAEC,EAAE,CAAC,IAAIS,EAAEC,EAAE,GAAGC,EAAE,KAAKC,EAAE,KAAK,GAASb,GAAN,KAAQ,IAAIU,KAAcV,EAAE,MAAX,SAAiBa,EAAEb,EAAE,KAAcA,EAAE,MAAX,SAAiBY,EAAE,GAAGZ,EAAE,KAAKA,EAAEM,GAAE,KAAKN,EAAEU,CAAC,GAAG,CAACF,GAAE,eAAeE,CAAC,IAAIC,EAAED,CAAC,EAAEV,EAAEU,CAAC,GAAG,IAAII,EAAE,UAAU,OAAO,EAAE,GAAOA,IAAJ,EAAMH,EAAE,SAASV,UAAU,EAAEa,EAAE,CAAC,QAAQC,EAAE,MAAMD,CAAC,EAAEE,EAAE,EAAEA,EAAEF,EAAEE,IAAID,EAAEC,CAAC,EAAE,UAAUA,EAAE,CAAC,EAAEL,EAAE,SAASI,CAAC,CAAC,GAAGpB,GAAGA,EAAE,aAAa,IAAIe,KAAKI,EAAEnB,EAAE,aAAamB,EAAWH,EAAED,CAAC,IAAZ,SAAgBC,EAAED,CAAC,EAAEI,EAAEJ,CAAC,GAAG,MAAM,CAAC,SAAS5B,GAAE,KAAKa,EAAE,IAAIiB,EAAE,IAAIC,EAAE,MAAMF,EAAE,OAAOJ,GAAE,OAAO,CAAC,CAC7a,SAASU,GAAEtB,EAAEK,EAAE,CAAC,MAAM,CAAC,SAASlB,GAAE,KAAKa,EAAE,KAAK,IAAIK,EAAE,IAAIL,EAAE,IAAI,MAAMA,EAAE,MAAM,OAAOA,EAAE,MAAM,CAAC,CAAC,SAASuB,GAAEvB,EAAE,CAAC,OAAiB,OAAOA,GAAlB,UAA4BA,IAAP,MAAUA,EAAE,WAAWb,EAAC,CAAC,SAASqC,GAAOxB,EAAE,CAAC,IAAIK,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,MAAM,IAAIL,EAAE,QAAQ,QAAQ,SAASA,EAAE,CAAC,OAAOK,EAAEL,CAAC,CAAC,CAAC,CAAC,CAAC,IAAIyB,GAAE,OAAO,SAASC,GAAE1B,EAAEK,EAAE,CAAC,OAAiB,OAAOL,GAAlB,UAA4BA,IAAP,MAAgBA,EAAE,KAAR,KAAYwB,GAAO,GAAGxB,EAAE,GAAG,EAAEK,EAAE,SAAS,EAAE,CAAC,CAC/W,SAASsB,GAAE3B,EAAEK,EAAEC,EAAES,EAAEC,EAAE,CAAC,IAAIC,EAAE,OAAOjB,GAAmBiB,IAAd,aAA6BA,IAAZ,aAAcjB,EAAE,MAAK,IAAIkB,EAAE,GAAG,GAAUlB,IAAP,KAASkB,EAAE,OAAQ,QAAOD,EAAC,CAAE,IAAK,SAAS,IAAK,SAASC,EAAE,GAAG,MAAM,IAAK,SAAS,OAAOlB,EAAE,SAAQ,CAAE,KAAKb,GAAE,KAAKC,GAAE8B,EAAE,EAAE,CAAC,CAAC,GAAGA,EAAE,OAAOA,EAAElB,EAAEgB,EAAEA,EAAEE,CAAC,EAAElB,EAAOe,IAAL,GAAO,IAAIW,GAAER,EAAE,CAAC,EAAEH,EAAEL,GAAEM,CAAC,GAAGV,EAAE,GAASN,GAAN,OAAUM,EAAEN,EAAE,QAAQyB,GAAE,KAAK,EAAE,KAAKE,GAAEX,EAAEX,EAAEC,EAAE,GAAG,SAASN,EAAE,CAAC,OAAOA,CAAC,CAAC,GAASgB,GAAN,OAAUO,GAAEP,CAAC,IAAIA,EAAEM,GAAEN,EAAEV,GAAG,CAACU,EAAE,KAAKE,GAAGA,EAAE,MAAMF,EAAE,IAAI,IAAI,GAAGA,EAAE,KAAK,QAAQS,GAAE,KAAK,EAAE,KAAKzB,CAAC,GAAGK,EAAE,KAAKW,CAAC,GAAG,EAAyB,GAAvBE,EAAE,EAAEH,EAAOA,IAAL,GAAO,IAAIA,EAAE,IAAOL,GAAEV,CAAC,EAAE,QAAQmB,EAAE,EAAEA,EAAEnB,EAAE,OAAOmB,IAAI,CAACF,EACrfjB,EAAEmB,CAAC,EAAE,IAAIC,EAAEL,EAAEW,GAAET,EAAEE,CAAC,EAAED,GAAGS,GAAEV,EAAEZ,EAAEC,EAAEc,EAAEJ,CAAC,CAAC,SAASI,EAAErB,GAAEC,CAAC,EAAe,OAAOoB,GAApB,WAAsB,IAAIpB,EAAEoB,EAAE,KAAKpB,CAAC,EAAEmB,EAAE,EAAE,EAAEF,EAAEjB,EAAE,QAAQ,MAAMiB,EAAEA,EAAE,MAAMG,EAAEL,EAAEW,GAAET,EAAEE,GAAG,EAAED,GAAGS,GAAEV,EAAEZ,EAAEC,EAAEc,EAAEJ,CAAC,UAAqBC,IAAX,SAAa,MAAMZ,EAAE,OAAOL,CAAC,EAAE,MAAM,mDAAuEK,IAApB,kBAAsB,qBAAqB,OAAO,KAAKL,CAAC,EAAE,KAAK,IAAI,EAAE,IAAIK,GAAG,2EAA2E,EAAE,OAAOa,CAAC,CACzZ,SAASU,GAAE5B,EAAEK,EAAEC,EAAE,CAAC,GAASN,GAAN,KAAQ,OAAOA,EAAE,IAAIe,EAAE,GAAGC,EAAE,EAAEW,UAAE3B,EAAEe,EAAE,GAAG,GAAG,SAASf,EAAE,CAAC,OAAOK,EAAE,KAAKC,EAAEN,EAAEgB,GAAG,CAAC,CAAC,EAASD,CAAC,CAAC,SAASc,GAAE7B,EAAE,CAAC,GAAQA,EAAE,UAAP,GAAe,CAAC,IAAIK,EAAEL,EAAE,QAAQK,EAAEA,EAAC,EAAGA,EAAE,KAAK,SAASA,EAAE,EAAQL,EAAE,UAAN,GAAoBA,EAAE,UAAP,MAAeA,EAAE,QAAQ,EAAEA,EAAE,QAAQK,EAAC,EAAE,SAASA,EAAE,EAAQL,EAAE,UAAN,GAAoBA,EAAE,UAAP,MAAeA,EAAE,QAAQ,EAAEA,EAAE,QAAQK,EAAC,CAAC,EAAOL,EAAE,UAAP,KAAiBA,EAAE,QAAQ,EAAEA,EAAE,QAAQK,EAAE,CAAC,GAAOL,EAAE,UAAN,EAAc,OAAOA,EAAE,QAAQ,QAAQ,MAAMA,EAAE,OAAQ,CAC5Z,IAAI8B,GAAE,CAAC,QAAQ,IAAI,EAAEC,GAAE,CAAC,WAAW,IAAI,EAAEC,GAAE,CAAC,uBAAuBF,GAAE,wBAAwBC,GAAE,kBAAkBnB,EAAC,EAAE,SAASqB,IAAG,CAAC,MAAM,MAAM,0DAA0D,CAAE,CACzMC,EAAA,SAAiB,CAAC,IAAIN,GAAE,QAAQ,SAAS5B,EAAEK,EAAEC,EAAE,CAACsB,GAAE5B,EAAE,UAAU,CAACK,EAAE,MAAM,KAAK,SAAS,CAAC,EAAEC,CAAC,CAAC,EAAE,MAAM,SAASN,EAAE,CAAC,IAAIK,EAAE,EAAEuB,UAAE5B,EAAE,UAAU,CAACK,GAAG,CAAC,EAASA,CAAC,EAAE,QAAQ,SAASL,EAAE,CAAC,OAAO4B,GAAE5B,EAAE,SAASA,EAAE,CAAC,OAAOA,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,SAASA,EAAE,CAAC,GAAG,CAACuB,GAAEvB,CAAC,EAAE,MAAM,MAAM,uEAAuE,EAAE,OAAOA,CAAC,CAAC,EAAEkC,EAAA,UAAkB9B,GAAE8B,EAAA,SAAiB7C,GAAE6C,EAAA,SAAiB3C,GAAE2C,EAAA,cAAsB1B,GAAE0B,EAAA,WAAmB5C,GAAE4C,EAAA,SAAiBvC,GAClcuC,EAAA,mDAA2DF,GAAEE,EAAA,IAAYD,GACzEC,EAAA,aAAqB,SAASlC,EAAEK,EAAEC,EAAE,CAAC,GAAUN,GAAP,KAAqB,MAAM,MAAM,iFAAiFA,EAAE,GAAG,EAAE,IAAIe,EAAEb,GAAE,GAAGF,EAAE,KAAK,EAAEgB,EAAEhB,EAAE,IAAIiB,EAAEjB,EAAE,IAAIkB,EAAElB,EAAE,OAAO,GAASK,GAAN,KAAQ,CAAoE,GAA1DA,EAAE,MAAX,SAAiBY,EAAEZ,EAAE,IAAIa,EAAEN,GAAE,SAAkBP,EAAE,MAAX,SAAiBW,EAAE,GAAGX,EAAE,KAAQL,EAAE,MAAMA,EAAE,KAAK,aAAa,IAAImB,EAAEnB,EAAE,KAAK,aAAa,IAAIoB,KAAKf,EAAEM,GAAE,KAAKN,EAAEe,CAAC,GAAG,CAACP,GAAE,eAAeO,CAAC,IAAIL,EAAEK,CAAC,EAAWf,EAAEe,CAAC,IAAZ,QAAwBD,IAAT,OAAWA,EAAEC,CAAC,EAAEf,EAAEe,CAAC,EAAE,CAAC,IAAIA,EAAE,UAAU,OAAO,EAAE,GAAOA,IAAJ,EAAML,EAAE,SAAST,UAAU,EAAEc,EAAE,CAACD,EAAE,MAAMC,CAAC,EACtf,QAAQC,EAAE,EAAEA,EAAED,EAAEC,IAAIF,EAAEE,CAAC,EAAE,UAAUA,EAAE,CAAC,EAAEN,EAAE,SAASI,CAAC,CAAC,MAAM,CAAC,SAAShC,GAAE,KAAKa,EAAE,KAAK,IAAIgB,EAAE,IAAIC,EAAE,MAAMF,EAAE,OAAOG,CAAC,CAAC,EAAEgB,EAAA,cAAsB,SAASlC,EAAE,CAAC,OAAAA,EAAE,CAAC,SAASP,GAAE,cAAcO,EAAE,eAAeA,EAAE,aAAa,EAAE,SAAS,KAAK,SAAS,KAAK,cAAc,KAAK,YAAY,IAAI,EAAEA,EAAE,SAAS,CAAC,SAASR,GAAE,SAASQ,CAAC,EAASA,EAAE,SAASA,CAAC,EAAEkC,EAAA,cAAsBpB,mBAAwB,SAASd,EAAE,CAAC,IAAIK,EAAES,GAAE,KAAK,KAAKd,CAAC,EAAE,OAAAK,EAAE,KAAKL,EAASK,CAAC,EAAE6B,EAAA,UAAkB,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,EAC9dA,EAAA,WAAmB,SAASlC,EAAE,CAAC,MAAM,CAAC,SAASN,GAAE,OAAOM,CAAC,CAAC,EAAEkC,EAAA,eAAuBX,GAAEW,EAAA,KAAa,SAASlC,EAAE,CAAC,MAAM,CAAC,SAASH,GAAE,SAAS,CAAC,QAAQ,GAAG,QAAQG,CAAC,EAAE,MAAM6B,EAAC,CAAC,EAAEK,EAAA,KAAa,SAASlC,EAAEK,EAAE,CAAC,MAAM,CAAC,SAAST,GAAE,KAAKI,EAAE,QAAiBK,IAAT,OAAW,KAAKA,CAAC,CAAC,EAAE6B,EAAA,gBAAwB,SAASlC,EAAE,CAAC,IAAIK,EAAE0B,GAAE,WAAWA,GAAE,WAAW,GAAG,GAAG,CAAC/B,GAAG,QAAC,CAAQ+B,GAAE,WAAW1B,CAAC,CAAC,EAAE6B,EAAA,aAAqBD,iBAAsB,SAASjC,EAAEK,EAAE,CAAC,OAAOyB,GAAE,QAAQ,YAAY9B,EAAEK,CAAC,CAAC,EAAE6B,EAAA,WAAmB,SAASlC,EAAE,CAAC,OAAO8B,GAAE,QAAQ,WAAW9B,CAAC,CAAC,EAC3fkC,EAAA,cAAsB,UAAU,GAAGA,EAAA,iBAAyB,SAASlC,EAAE,CAAC,OAAO8B,GAAE,QAAQ,iBAAiB9B,CAAC,CAAC,EAAEkC,EAAA,UAAkB,SAASlC,EAAEK,EAAE,CAAC,OAAOyB,GAAE,QAAQ,UAAU9B,EAAEK,CAAC,CAAC,EAAE6B,EAAA,MAAc,UAAU,CAAC,OAAOJ,GAAE,QAAQ,MAAK,CAAE,EAAEI,EAAA,oBAA4B,SAASlC,EAAEK,EAAEC,EAAE,CAAC,OAAOwB,GAAE,QAAQ,oBAAoB9B,EAAEK,EAAEC,CAAC,CAAC,EAAE4B,EAAA,mBAA2B,SAASlC,EAAEK,EAAE,CAAC,OAAOyB,GAAE,QAAQ,mBAAmB9B,EAAEK,CAAC,CAAC,EAAE6B,EAAA,gBAAwB,SAASlC,EAAEK,EAAE,CAAC,OAAOyB,GAAE,QAAQ,gBAAgB9B,EAAEK,CAAC,CAAC,EACzd6B,EAAA,QAAgB,SAASlC,EAAEK,EAAE,CAAC,OAAOyB,GAAE,QAAQ,QAAQ9B,EAAEK,CAAC,CAAC,EAAE6B,EAAA,WAAmB,SAASlC,EAAEK,EAAEC,EAAE,CAAC,OAAOwB,GAAE,QAAQ,WAAW9B,EAAEK,EAAEC,CAAC,CAAC,EAAE4B,EAAA,OAAe,SAASlC,EAAE,CAAC,OAAO8B,GAAE,QAAQ,OAAO9B,CAAC,CAAC,EAAEkC,EAAA,SAAiB,SAASlC,EAAE,CAAC,OAAO8B,GAAE,QAAQ,SAAS9B,CAAC,CAAC,EAAEkC,EAAA,qBAA6B,SAASlC,EAAEK,EAAEC,EAAE,CAAC,OAAOwB,GAAE,QAAQ,qBAAqB9B,EAAEK,EAAEC,CAAC,CAAC,EAAE4B,EAAA,cAAsB,UAAU,CAAC,OAAOJ,GAAE,QAAQ,cAAa,CAAE,EAAEI,EAAA,QAAgB,SCtBlaC,GAAA,QAAiBC;;;;;;;;GCMN,IAAIhB,GAAEgB,GAAiBnB,GAAE,OAAO,IAAI,eAAe,EAAE9B,GAAE,OAAO,IAAI,gBAAgB,EAAEkC,GAAE,OAAO,UAAU,eAAejC,GAAEgC,GAAE,mDAAmD,kBAAkB/B,GAAE,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,EAAE,EAClP,SAASC,GAAE0B,EAAEhB,EAAEmB,EAAE,CAAC,IAAId,EAAEU,EAAE,GAAGT,EAAE,KAAKY,EAAE,KAAcC,IAAT,SAAab,EAAE,GAAGa,GAAYnB,EAAE,MAAX,SAAiBM,EAAE,GAAGN,EAAE,KAAcA,EAAE,MAAX,SAAiBkB,EAAElB,EAAE,KAAK,IAAIK,KAAKL,EAAEqB,GAAE,KAAKrB,EAAEK,CAAC,GAAG,CAAChB,GAAE,eAAegB,CAAC,IAAIU,EAAEV,CAAC,EAAEL,EAAEK,CAAC,GAAG,GAAGW,GAAGA,EAAE,aAAa,IAAIX,KAAKL,EAAEgB,EAAE,aAAahB,EAAWe,EAAEV,CAAC,aAAIU,EAAEV,CAAC,EAAEL,EAAEK,CAAC,GAAG,MAAM,CAAC,SAASY,GAAE,KAAKD,EAAE,IAAIV,EAAE,IAAIY,EAAE,MAAMH,EAAE,OAAO3B,GAAE,OAAO,CAAC,aAAkBD,GAAEkD,GAAA,IAAY/C,GAAE+C,GAAA,KAAa/C,GCPxWgD,GAAA,QAAiBF;;;;;;;;gBCMN,SAAShB,EAAEpB,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,OAAOA,EAAE,KAAKK,CAAC,EAAEL,EAAE,KAAK,EAAEgB,GAAG,CAAC,IAAID,EAAEC,EAAE,IAAI,EAAEV,EAAEN,EAAEe,CAAC,EAAE,GAAG,EAAEI,EAAEb,EAAED,CAAC,EAAEL,EAAEe,CAAC,EAAEV,EAAEL,EAAEgB,CAAC,EAAEV,EAAEU,EAAED,MAAO,OAAMf,CAAC,CAAC,CAAC,SAASkB,EAAElB,EAAE,CAAC,OAAWA,EAAE,SAAN,EAAa,KAAKA,EAAE,CAAC,CAAC,CAAC,SAASiB,EAAEjB,EAAE,CAAC,GAAOA,EAAE,SAAN,EAAa,OAAO,KAAK,IAAIK,EAAEL,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,MAAM,GAAGgB,IAAIX,EAAE,CAACL,EAAE,CAAC,EAAEgB,EAAEhB,EAAE,QAAQe,EAAE,EAAET,EAAEN,EAAE,OAAOL,GAAEW,IAAI,EAAES,EAAEpB,IAAG,CAAC,IAAI0B,GAAE,GAAGN,EAAE,GAAG,EAAEb,GAAEF,EAAEqB,EAAC,EAAEjC,GAAEiC,GAAE,EAAEzB,GAAEI,EAAEZ,EAAC,EAAE,GAAG,EAAE+B,EAAEjB,GAAEc,CAAC,EAAE5B,GAAEkB,GAAG,EAAEa,EAAEvB,GAAEM,EAAC,GAAGF,EAAEe,CAAC,EAAEnB,GAAEI,EAAEZ,EAAC,EAAE4B,EAAED,EAAE3B,KAAIY,EAAEe,CAAC,EAAEb,GAAEF,EAAEqB,EAAC,EAAEL,EAAED,EAAEM,YAAWjC,GAAEkB,GAAG,EAAEa,EAAEvB,GAAEoB,CAAC,EAAEhB,EAAEe,CAAC,EAAEnB,GAAEI,EAAEZ,EAAC,EAAE4B,EAAED,EAAE3B,OAAO,OAAMY,CAAC,CAAC,CAAC,OAAOK,CAAC,CAC3c,SAASc,EAAEnB,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,UAAUK,EAAE,UAAU,OAAWW,IAAJ,EAAMA,EAAEhB,EAAE,GAAGK,EAAE,EAAE,CAAC,GAAc,OAAO,aAAlB,UAA4C,OAAO,YAAY,KAAhC,WAAoC,CAAC,IAAIlB,EAAE,YAAYoD,EAAA,aAAqB,UAAU,CAAC,OAAOpD,EAAE,IAAG,CAAE,CAAC,KAAK,CAAC,IAAIE,EAAE,KAAKC,EAAED,EAAE,IAAG,EAAGkD,EAAA,aAAqB,UAAU,CAAC,OAAOlD,EAAE,IAAG,EAAGC,CAAC,CAAC,CAAC,IAAIC,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAEC,EAAE,KAAKG,EAAE,EAAEC,EAAE,GAAGC,EAAE,GAAGE,EAAE,GAAGE,EAAe,OAAO,YAApB,WAA+B,WAAW,KAAKC,EAAe,OAAO,cAApB,WAAiC,aAAa,KAAKG,EAAgB,OAAO,aAArB,IAAkC,aAAa,KACjd,OAAO,UAArB,KAAyC,UAAU,aAAnB,QAAwC,UAAU,WAAW,iBAA9B,QAA8C,UAAU,WAAW,eAAe,KAAK,UAAU,UAAU,EAAE,SAASC,EAAER,EAAE,CAAC,QAAQK,EAAEa,EAAE1B,CAAC,EAASa,IAAP,MAAU,CAAC,GAAUA,EAAE,WAAT,KAAkBY,EAAEzB,CAAC,UAAUa,EAAE,WAAWL,EAAEiB,EAAEzB,CAAC,EAAEa,EAAE,UAAUA,EAAE,eAAee,EAAE7B,EAAEc,CAAC,MAAO,OAAMA,EAAEa,EAAE1B,CAAC,CAAC,CAAC,CAAC,SAASiB,EAAET,EAAE,CAAW,GAAVC,EAAE,GAAGO,EAAER,CAAC,EAAK,CAACD,EAAE,GAAUmB,EAAE3B,CAAC,IAAV,KAAYQ,EAAE,GAAGW,GAAEC,CAAC,MAAM,CAAC,IAAIN,EAAEa,EAAE1B,CAAC,EAASa,IAAP,MAAUO,GAAEH,EAAEJ,EAAE,UAAUL,CAAC,CAAC,CAAC,CACra,SAASW,EAAEX,EAAEK,EAAE,CAACN,EAAE,GAAGE,IAAIA,EAAE,GAAGG,EAAES,CAAC,EAAEA,EAAE,IAAIf,EAAE,GAAG,IAAIkB,EAAEnB,EAAE,GAAG,CAAM,IAALW,EAAEH,CAAC,EAAMX,EAAEwB,EAAE3B,CAAC,EAASG,IAAP,OAAW,EAAEA,EAAE,eAAeW,IAAIL,GAAG,CAACc,GAAC,IAAK,CAAC,IAAIC,EAAErB,EAAE,SAAS,GAAgB,OAAOqB,GAApB,WAAsB,CAACrB,EAAE,SAAS,KAAKG,EAAEH,EAAE,cAAc,IAAIY,EAAES,EAAErB,EAAE,gBAAgBW,CAAC,EAAEA,EAAEkC,EAAQ,aAAY,EAAgB,OAAOjC,GAApB,WAAsBZ,EAAE,SAASY,EAAEZ,IAAIwB,EAAE3B,CAAC,GAAG0B,EAAE1B,CAAC,EAAEiB,EAAEH,CAAC,CAAC,MAAMY,EAAE1B,CAAC,EAAEG,EAAEwB,EAAE3B,CAAC,CAAC,CAAC,GAAUG,IAAP,KAAS,IAAIC,GAAE,OAAO,CAAC,IAAI0B,GAAEH,EAAE1B,CAAC,EAAS6B,KAAP,MAAUT,GAAEH,EAAEY,GAAE,UAAUhB,CAAC,EAAEV,GAAE,EAAE,CAAC,OAAOA,EAAC,QAAC,CAAQD,EAAE,KAAKG,EAAEmB,EAAElB,EAAE,EAAE,CAAC,CAAC,IAAIwB,EAAE,GAAGC,EAAE,KAAKV,EAAE,GAAGY,EAAE,EAAEC,EAAE,GACtc,SAASZ,IAAG,CAAC,MAAO,EAAAyB,EAAQ,aAAY,EAAGb,EAAED,EAAO,CAAC,SAASE,IAAG,CAAC,GAAUJ,IAAP,KAAS,CAAC,IAAIvB,EAAEuC,EAAQ,eAAeb,EAAE1B,EAAE,IAAIK,EAAE,GAAG,GAAG,CAACA,EAAEkB,EAAE,GAAGvB,CAAC,CAAC,QAAC,CAAQK,EAAEuB,MAAKN,EAAE,GAAGC,EAAE,KAAK,CAAC,MAAMD,EAAE,EAAE,CAAC,IAAIM,GAAE,GAAgB,OAAOrB,GAApB,WAAsBqB,GAAE,UAAU,CAACrB,EAAEoB,EAAC,CAAC,UAAwB,OAAO,eAArB,IAAoC,CAAC,IAAIE,GAAE,IAAI,eAAeC,GAAED,GAAE,MAAMA,GAAE,MAAM,UAAUF,GAAEC,GAAE,UAAU,CAACE,GAAE,YAAY,IAAI,CAAC,CAAC,MAAMF,GAAE,UAAU,CAACzB,EAAEwB,GAAE,CAAC,CAAC,EAAE,SAASjB,GAAEV,EAAE,CAACuB,EAAEvB,EAAEsB,IAAIA,EAAE,GAAGM,GAAC,EAAG,CAAC,SAAShB,GAAEZ,EAAEK,EAAE,CAACQ,EAAEV,EAAE,UAAU,CAACH,EAAEuC,EAAQ,cAAc,CAAC,EAAElC,CAAC,CAAC,CAC5dkC,EAAA,sBAA8B,EAAEA,EAAA,2BAAmC,EAAEA,EAAA,qBAA6B,EAAEA,EAAA,wBAAgC,EAAEA,EAAA,mBAA2B,KAAKA,EAAA,8BAAsC,EAAEA,EAAA,wBAAgC,SAASvC,EAAE,CAACA,EAAE,SAAS,IAAI,EAAEuC,6BAAmC,UAAU,CAACxC,GAAGD,IAAIC,EAAE,GAAGW,GAAEC,CAAC,EAAE,EAC1U4B,EAAA,wBAAgC,SAASvC,EAAE,CAAC,EAAEA,GAAG,IAAIA,EAAE,QAAQ,MAAM,iHAAiH,EAAEyB,EAAE,EAAEzB,EAAE,KAAK,MAAM,IAAIA,CAAC,EAAE,CAAC,EAAEuC,EAAA,iCAAyC,UAAU,CAAC,OAAO1C,CAAC,EAAE0C,EAAA,8BAAsC,UAAU,CAAC,OAAOrB,EAAE3B,CAAC,CAAC,EAAEgD,gBAAsB,SAASvC,EAAE,CAAC,OAAOH,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAIQ,EAAE,EAAE,MAAM,QAAQA,EAAER,CAAC,CAAC,IAAImB,EAAEnB,EAAEA,EAAEQ,EAAE,GAAG,CAAC,OAAOL,EAAC,CAAE,QAAC,CAAQH,EAAEmB,CAAC,CAAC,EAAEuB,EAAA,wBAAgC,UAAU,GAC7fA,EAAA,sBAA8B,UAAU,GAAGA,EAAA,yBAAiC,SAASvC,EAAEK,EAAE,CAAC,OAAOL,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,MAAM,QAAQA,EAAE,CAAC,CAAC,IAAIgB,EAAEnB,EAAEA,EAAEG,EAAE,GAAG,CAAC,OAAOK,EAAC,CAAE,QAAC,CAAQR,EAAEmB,CAAC,CAAC,EAChMuB,EAAA,0BAAkC,SAASvC,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEwB,EAAQ,eAA8F,OAApE,OAAOvB,GAAlB,UAA4BA,IAAP,MAAUA,EAAEA,EAAE,MAAMA,EAAa,OAAOA,GAAlB,UAAqB,EAAEA,EAAED,EAAEC,EAAED,GAAGC,EAAED,EAASf,EAAC,CAAE,IAAK,GAAE,IAAIM,EAAE,GAAG,MAAM,IAAK,GAAEA,EAAE,IAAI,MAAM,IAAK,GAAEA,EAAE,WAAW,MAAM,IAAK,GAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,GAAG,CAAC,OAAAA,EAAEU,EAAEV,EAAEN,EAAE,CAAC,GAAGP,IAAI,SAASY,EAAE,cAAcL,EAAE,UAAUgB,EAAE,eAAeV,EAAE,UAAU,EAAE,EAAEU,EAAED,GAAGf,EAAE,UAAUgB,EAAEI,EAAE5B,EAAEQ,CAAC,EAASkB,EAAE3B,CAAC,IAAV,MAAaS,IAAIkB,EAAE1B,CAAC,IAAIS,GAAGG,EAAES,CAAC,EAAEA,EAAE,IAAIZ,EAAE,GAAGW,GAAEH,EAAEO,EAAED,CAAC,KAAKf,EAAE,UAAUM,EAAEc,EAAE7B,EAAES,CAAC,EAAED,GAAGD,IAAIC,EAAE,GAAGW,GAAEC,CAAC,IAAWX,CAAC,EACneuC,EAAA,qBAA6BzB,GAAEyB,EAAA,sBAA8B,SAASvC,EAAE,CAAC,IAAIK,EAAER,EAAE,OAAO,UAAU,CAAC,IAAImB,EAAEnB,EAAEA,EAAEQ,EAAE,GAAG,CAAC,OAAOL,EAAE,MAAM,KAAK,SAAS,CAAC,QAAC,CAAQH,EAAEmB,CAAC,CAAC,CAAC,QCf7JwB,GAAA,QAAiBJ;;;;;;;;GCSN,IAAIK,GAAGL,GAAiBM,GAAGC,GAAqB,SAAStD,EAAEW,EAAE,CAAC,QAAQK,EAAE,yDAAyDL,EAAEgB,EAAE,EAAEA,EAAE,UAAU,OAAOA,IAAIX,GAAG,WAAW,mBAAmB,UAAUW,CAAC,CAAC,EAAE,MAAM,yBAAyBhB,EAAE,WAAWK,EAAE,gHAAgH,CAAC,IAAIuC,GAAG,IAAI,IAAIC,GAAG,GAAG,SAASC,GAAG9C,EAAEK,EAAE,CAAC0C,GAAG/C,EAAEK,CAAC,EAAE0C,GAAG/C,EAAE,UAAUK,CAAC,CAAC,CACxb,SAAS0C,GAAG/C,EAAEK,EAAE,CAAS,IAARwC,GAAG7C,CAAC,EAAEK,EAAML,EAAE,EAAEA,EAAEK,EAAE,OAAOL,IAAI4C,GAAG,IAAIvC,EAAEL,CAAC,CAAC,CAAC,CAC5D,IAAIgD,GAAG,EAAgB,OAAO,OAArB,KAA2C,OAAO,OAAO,SAA5B,KAAoD,OAAO,OAAO,SAAS,cAArC,KAAoDC,GAAG,OAAO,UAAU,eAAeC,GAAG,8VAA8VC,GACpgB,GAAGC,GAAG,GAAG,SAASC,GAAGrD,EAAE,CAAC,OAAGiD,GAAG,KAAKG,GAAGpD,CAAC,EAAQ,GAAMiD,GAAG,KAAKE,GAAGnD,CAAC,EAAQ,GAAMkD,GAAG,KAAKlD,CAAC,EAASoD,GAAGpD,CAAC,EAAE,IAAGmD,GAAGnD,CAAC,EAAE,MAAW,CAAC,SAASsD,GAAGtD,EAAEK,EAAEW,EAAED,EAAE,CAAC,GAAUC,IAAP,MAAcA,EAAE,OAAN,EAAW,MAAM,GAAG,OAAO,OAAOX,EAAC,CAAE,IAAK,WAAW,IAAK,SAAS,MAAM,GAAG,IAAK,UAAU,OAAGU,KAAqBC,IAAP,KAAe,CAACA,EAAE,iBAAgBhB,EAAEA,EAAE,YAAW,EAAG,MAAM,EAAE,CAAC,EAAkBA,IAAV,SAAuBA,IAAV,SAAY,QAAQ,QAAQ,CAAC,CACzX,SAASuD,GAAGvD,EAAEK,EAAEW,EAAED,EAAE,CAAC,GAAUV,IAAP,MAAwB,OAAOA,EAArB,KAAwBiD,GAAGtD,EAAEK,EAAEW,EAAED,CAAC,EAAE,MAAM,GAAG,GAAGA,EAAE,MAAM,GAAG,GAAUC,IAAP,KAAS,OAAOA,EAAE,KAAI,CAAE,IAAK,GAAE,MAAM,CAACX,EAAE,IAAK,GAAE,OAAWA,IAAL,GAAO,IAAK,GAAE,OAAO,MAAMA,CAAC,EAAE,IAAK,GAAE,OAAO,MAAMA,CAAC,GAAG,EAAEA,CAAC,CAAC,MAAM,EAAE,CAAC,SAASX,GAAEM,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAE,CAAC,KAAK,gBAAoBd,IAAJ,GAAWA,IAAJ,GAAWA,IAAJ,EAAM,KAAK,cAAcU,EAAE,KAAK,mBAAmBT,EAAE,KAAK,gBAAgBU,EAAE,KAAK,aAAahB,EAAE,KAAK,KAAKK,EAAE,KAAK,YAAYe,EAAE,KAAK,kBAAkBD,CAAC,CAAC,IAAIrB,GAAE,GACnb,uIAAuI,MAAM,GAAG,EAAE,QAAQ,SAASE,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,gBAAgB,EAAE,CAAC,YAAY,OAAO,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,YAAY,YAAY,CAAC,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIK,EAAEL,EAAE,CAAC,EAAEF,GAAEO,CAAC,EAAE,IAAIX,GAAEW,EAAE,EAAE,GAAGL,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,kBAAkB,YAAY,aAAa,OAAO,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,YAAW,EAAG,KAAK,GAAG,EAAE,CAAC,CAAC,EAC3e,CAAC,cAAc,4BAA4B,YAAY,eAAe,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,8OAA8O,MAAM,GAAG,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,YAAW,EAAG,KAAK,GAAG,EAAE,CAAC,CAAC,EACzb,CAAC,UAAU,WAAW,QAAQ,UAAU,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,UAAU,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,OAAO,OAAO,MAAM,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,OAAO,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,YAAW,EAAG,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,IAAIwD,GAAG,gBAAgB,SAASC,GAAGzD,EAAE,CAAC,OAAOA,EAAE,CAAC,EAAE,YAAW,CAAE,CACxZ,0jCAA0jC,MAAM,GAAG,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIK,EAAEL,EAAE,QAAQwD,GACzmCC,EAAE,EAAE3D,GAAEO,CAAC,EAAE,IAAIX,GAAEW,EAAE,EAAE,GAAGL,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,2EAA2E,MAAM,GAAG,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIK,EAAEL,EAAE,QAAQwD,GAAGC,EAAE,EAAE3D,GAAEO,CAAC,EAAE,IAAIX,GAAEW,EAAE,EAAE,GAAGL,EAAE,+BAA+B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,WAAW,WAAW,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIK,EAAEL,EAAE,QAAQwD,GAAGC,EAAE,EAAE3D,GAAEO,CAAC,EAAE,IAAIX,GAAEW,EAAE,EAAE,GAAGL,EAAE,uCAAuC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,aAAa,EAAE,QAAQ,SAASA,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,YAAW,EAAG,KAAK,GAAG,EAAE,CAAC,CAAC,EACndF,GAAE,UAAU,IAAIJ,GAAE,YAAY,EAAE,GAAG,aAAa,+BAA+B,GAAG,EAAE,EAAE,CAAC,MAAM,OAAO,SAAS,YAAY,EAAE,QAAQ,SAASM,EAAE,CAACF,GAAEE,CAAC,EAAE,IAAIN,GAAEM,EAAE,EAAE,GAAGA,EAAE,YAAW,EAAG,KAAK,GAAG,EAAE,CAAC,CAAC,EAC7L,SAAS0D,GAAG1D,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAER,GAAE,eAAeO,CAAC,EAAEP,GAAEO,CAAC,EAAE,MAAeC,IAAP,KAAaA,EAAE,OAAN,EAAWS,GAAG,EAAE,EAAEV,EAAE,SAAeA,EAAE,CAAC,IAAT,KAAkBA,EAAE,CAAC,IAAT,KAAkBA,EAAE,CAAC,IAAT,KAAkBA,EAAE,CAAC,IAAT,OAAWkD,GAAGlD,EAAEW,EAAEV,EAAES,CAAC,IAAIC,EAAE,MAAMD,GAAUT,IAAP,KAAS+C,GAAGhD,CAAC,IAAWW,IAAP,KAAShB,EAAE,gBAAgBK,CAAC,EAAEL,EAAE,aAAaK,EAAE,GAAGW,CAAC,GAAGV,EAAE,gBAAgBN,EAAEM,EAAE,YAAY,EAASU,IAAP,KAAaV,EAAE,OAAN,EAAW,GAAG,GAAGU,GAAGX,EAAEC,EAAE,cAAcS,EAAET,EAAE,mBAA0BU,IAAP,KAAShB,EAAE,gBAAgBK,CAAC,GAAGC,EAAEA,EAAE,KAAKU,EAAMV,IAAJ,GAAWA,IAAJ,GAAYU,IAAL,GAAO,GAAG,GAAGA,EAAED,EAAEf,EAAE,eAAee,EAAEV,EAAEW,CAAC,EAAEhB,EAAE,aAAaK,EAAEW,CAAC,IAAG,CACjd,IAAI2C,GAAGlB,GAAG,mDAAmDmB,GAAG,OAAO,IAAI,eAAe,EAAEC,GAAG,OAAO,IAAI,cAAc,EAAEC,GAAG,OAAO,IAAI,gBAAgB,EAAEC,GAAG,OAAO,IAAI,mBAAmB,EAAEC,GAAG,OAAO,IAAI,gBAAgB,EAAEC,GAAG,OAAO,IAAI,gBAAgB,EAAEC,GAAG,OAAO,IAAI,eAAe,EAAEC,GAAG,OAAO,IAAI,mBAAmB,EAAEC,GAAG,OAAO,IAAI,gBAAgB,EAAEC,GAAG,OAAO,IAAI,qBAAqB,EAAEC,GAAG,OAAO,IAAI,YAAY,EAAEC,GAAG,OAAO,IAAI,YAAY,EACtbC,GAAG,OAAO,IAAI,iBAAiB,EAAqGC,GAAG,OAAO,SAAS,SAASC,GAAG1E,EAAE,CAAC,OAAUA,IAAP,MAAqB,OAAOA,GAAlB,SAA2B,MAAKA,EAAEyE,IAAIzE,EAAEyE,EAAE,GAAGzE,EAAE,YAAY,EAAqB,OAAOA,GAApB,WAAsBA,EAAE,KAAI,CAAC,IAAID,EAAE,OAAO,OAAO4E,GAAG,SAASC,GAAG5E,EAAE,CAAC,GAAY2E,KAAT,OAAY,GAAG,CAAC,MAAM,MAAK,CAAG,OAAO3D,EAAE,CAAC,IAAIX,EAAEW,EAAE,MAAM,KAAI,EAAG,MAAM,cAAc,EAAE2D,GAAGtE,GAAGA,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM;AAAA,EAAKsE,GAAG3E,CAAC,CAAC,IAAI6E,GAAG,GACzb,SAASC,GAAG9E,EAAEK,EAAE,CAAC,GAAG,CAACL,GAAG6E,GAAG,MAAM,GAAGA,GAAG,GAAG,IAAI7D,EAAE,MAAM,kBAAkB,MAAM,kBAAkB,OAAO,GAAG,CAAC,GAAGX,EAAE,GAAGA,EAAE,UAAU,CAAC,MAAM,MAAK,CAAG,EAAE,OAAO,eAAeA,EAAE,UAAU,QAAQ,CAAC,IAAI,UAAU,CAAC,MAAM,MAAK,CAAG,CAAC,CAAC,EAAa,OAAO,SAAlB,UAA2B,QAAQ,UAAU,CAAC,GAAG,CAAC,QAAQ,UAAUA,EAAE,EAAE,CAAC,OAAOlB,EAAE,CAAC,IAAI4B,EAAE5B,CAAC,CAAC,QAAQ,UAAUa,EAAE,GAAGK,CAAC,CAAC,KAAK,CAAC,GAAG,CAACA,EAAE,KAAI,CAAE,OAAOlB,EAAE,CAAC4B,EAAE5B,CAAC,CAACa,EAAE,KAAKK,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,OAAQ,OAAOlB,EAAE,CAAC4B,EAAE5B,CAAC,CAACa,GAAG,CAAC,OAAOb,EAAE,CAAC,GAAGA,GAAG4B,GAAc,OAAO5B,EAAE,OAApB,SAA0B,CAAC,QAAQmB,EAAEnB,EAAE,MAAM,MAAM;AAAA,CAAI,EACvfiC,EAAEL,EAAE,MAAM,MAAM;AAAA,CAAI,EAAEI,EAAEb,EAAE,OAAO,EAAEY,EAAEE,EAAE,OAAO,EAAE,GAAGD,GAAG,GAAGD,GAAGZ,EAAEa,CAAC,IAAIC,EAAEF,CAAC,GAAGA,IAAI,KAAK,GAAGC,GAAG,GAAGD,EAAEC,IAAID,IAAI,GAAGZ,EAAEa,CAAC,IAAIC,EAAEF,CAAC,EAAE,CAAC,GAAOC,IAAJ,GAAWD,IAAJ,EAAO,EAAG,IAAGC,IAAID,IAAI,EAAEA,GAAGZ,EAAEa,CAAC,IAAIC,EAAEF,CAAC,EAAE,CAAC,IAAID,EAAE;AAAA,EAAKX,EAAEa,CAAC,EAAE,QAAQ,WAAW,MAAM,EAAE,OAAAnB,EAAE,aAAaiB,EAAE,SAAS,aAAa,IAAIA,EAAEA,EAAE,QAAQ,cAAcjB,EAAE,WAAW,GAAUiB,CAAC,OAAO,GAAGE,GAAG,GAAGD,GAAG,KAAK,CAAC,CAAC,QAAC,CAAQ2D,GAAG,GAAG,MAAM,kBAAkB7D,CAAC,CAAC,OAAOhB,EAAEA,EAAEA,EAAE,aAAaA,EAAE,KAAK,IAAI4E,GAAG5E,CAAC,EAAE,EAAE,CAC9Z,SAAS+E,GAAG/E,EAAE,CAAC,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE,OAAO4E,GAAG5E,EAAE,IAAI,EAAE,IAAK,IAAG,OAAO4E,GAAG,MAAM,EAAE,IAAK,IAAG,OAAOA,GAAG,UAAU,EAAE,IAAK,IAAG,OAAOA,GAAG,cAAc,EAAE,IAAK,GAAE,IAAK,GAAE,IAAK,IAAG,OAAO5E,EAAE8E,GAAG9E,EAAE,KAAK,EAAE,EAAEA,EAAE,IAAK,IAAG,OAAOA,EAAE8E,GAAG9E,EAAE,KAAK,OAAO,EAAE,EAAEA,EAAE,IAAK,GAAE,OAAOA,EAAE8E,GAAG9E,EAAE,KAAK,EAAE,EAAEA,EAAE,QAAQ,MAAM,EAAE,CAAC,CACxR,SAASgF,GAAGhF,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAO,KAAK,GAAgB,OAAOA,GAApB,WAAsB,OAAOA,EAAE,aAAaA,EAAE,MAAM,KAAK,GAAc,OAAOA,GAAlB,SAAoB,OAAOA,EAAE,OAAOA,EAAC,CAAE,KAAK8D,GAAG,MAAM,WAAW,KAAKD,GAAG,MAAM,SAAS,KAAKG,GAAG,MAAM,WAAW,KAAKD,GAAG,MAAM,aAAa,KAAKK,GAAG,MAAM,WAAW,KAAKC,GAAG,MAAM,cAAc,CAAC,GAAc,OAAOrE,GAAlB,SAAoB,OAAOA,EAAE,SAAQ,CAAE,KAAKkE,GAAG,OAAOlE,EAAE,aAAa,WAAW,YAAY,KAAKiE,GAAG,OAAOjE,EAAE,SAAS,aAAa,WAAW,YAAY,KAAKmE,GAAG,IAAI9D,EAAEL,EAAE,OAAO,OAAAA,EAAEA,EAAE,YAAYA,IAAIA,EAAEK,EAAE,aAClfA,EAAE,MAAM,GAAGL,EAAOA,IAAL,GAAO,cAAcA,EAAE,IAAI,cAAqBA,EAAE,KAAKsE,GAAG,OAAOjE,EAAEL,EAAE,aAAa,KAAYK,IAAP,KAASA,EAAE2E,GAAGhF,EAAE,IAAI,GAAG,OAAO,KAAKuE,GAAGlE,EAAEL,EAAE,SAASA,EAAEA,EAAE,MAAM,GAAG,CAAC,OAAOgF,GAAGhF,EAAEK,CAAC,CAAC,CAAC,MAAS,EAAE,CAAC,OAAO,IAAI,CAC3M,SAAS4E,GAAGjF,EAAE,CAAC,IAAIK,EAAEL,EAAE,KAAK,OAAOA,EAAE,IAAG,CAAE,IAAK,IAAG,MAAM,QAAQ,IAAK,GAAE,OAAOK,EAAE,aAAa,WAAW,YAAY,IAAK,IAAG,OAAOA,EAAE,SAAS,aAAa,WAAW,YAAY,IAAK,IAAG,MAAM,qBAAqB,IAAK,IAAG,OAAOL,EAAEK,EAAE,OAAOL,EAAEA,EAAE,aAAaA,EAAE,MAAM,GAAGK,EAAE,cAAmBL,IAAL,GAAO,cAAcA,EAAE,IAAI,cAAc,IAAK,GAAE,MAAM,WAAW,IAAK,GAAE,OAAOK,EAAE,IAAK,GAAE,MAAM,SAAS,IAAK,GAAE,MAAM,OAAO,IAAK,GAAE,MAAM,OAAO,IAAK,IAAG,OAAO2E,GAAG3E,CAAC,EAAE,IAAK,GAAE,OAAOA,IAAI0D,GAAG,aAAa,OAAO,IAAK,IAAG,MAAM,YACtf,IAAK,IAAG,MAAM,WAAW,IAAK,IAAG,MAAM,QAAQ,IAAK,IAAG,MAAM,WAAW,IAAK,IAAG,MAAM,eAAe,IAAK,IAAG,MAAM,gBAAgB,IAAK,GAAE,IAAK,GAAE,IAAK,IAAG,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,GAAgB,OAAO1D,GAApB,WAAsB,OAAOA,EAAE,aAAaA,EAAE,MAAM,KAAK,GAAc,OAAOA,GAAlB,SAAoB,OAAOA,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS6E,GAAGlF,EAAE,CAAC,OAAO,OAAOA,EAAC,CAAE,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,IAAK,SAAS,OAAOA,EAAE,QAAQ,MAAM,EAAE,CAAC,CACra,SAASmF,GAAGnF,EAAE,CAAC,IAAIK,EAAEL,EAAE,KAAK,OAAOA,EAAEA,EAAE,WAAqBA,EAAE,YAAW,IAAvB,UAAyCK,IAAb,YAA0BA,IAAV,QAAY,CAC1G,SAAS+E,GAAGpF,EAAE,CAAC,IAAIK,EAAE8E,GAAGnF,CAAC,EAAE,UAAU,QAAQgB,EAAE,OAAO,yBAAyBhB,EAAE,YAAY,UAAUK,CAAC,EAAEU,EAAE,GAAGf,EAAEK,CAAC,EAAE,GAAG,CAACL,EAAE,eAAeK,CAAC,GAAiB,OAAOW,EAArB,KAAqC,OAAOA,EAAE,KAAtB,YAAwC,OAAOA,EAAE,KAAtB,WAA0B,CAAC,IAAIV,EAAEU,EAAE,IAAII,EAAEJ,EAAE,IAAI,cAAO,eAAehB,EAAEK,EAAE,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,SAASN,EAAE,CAACe,EAAE,GAAGf,EAAEoB,EAAE,KAAK,KAAKpB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,eAAeA,EAAEK,EAAE,CAAC,WAAWW,EAAE,UAAU,CAAC,EAAQ,CAAC,SAAS,UAAU,CAAC,OAAOD,CAAC,EAAE,SAAS,SAASf,EAAE,CAACe,EAAE,GAAGf,CAAC,EAAE,aAAa,UAAU,CAACA,EAAE,cACxf,KAAK,OAAOA,EAAEK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAASgF,GAAGrF,EAAE,CAACA,EAAE,gBAAgBA,EAAE,cAAcoF,GAAGpF,CAAC,EAAE,CAAC,SAASsF,GAAGtF,EAAE,CAAC,GAAG,CAACA,EAAE,SAAS,IAAIK,EAAEL,EAAE,cAAc,GAAG,CAACK,EAAE,MAAM,GAAG,IAAIW,EAAEX,EAAE,SAAQ,EAAOU,EAAE,GAAG,OAAAf,IAAIe,EAAEoE,GAAGnF,CAAC,EAAEA,EAAE,QAAQ,OAAO,QAAQA,EAAE,OAAOA,EAAEe,EAASf,IAAIgB,GAAGX,EAAE,SAASL,CAAC,EAAE,IAAI,EAAE,CAAC,SAASuF,GAAGvF,EAAE,CAAsD,GAArDA,EAAEA,IAAkB,OAAO,SAArB,IAA8B,SAAS,QAAyB,OAAOA,EAArB,IAAuB,OAAO,KAAK,GAAG,CAAC,OAAOA,EAAE,eAAeA,EAAE,IAAI,MAAS,CAAC,OAAOA,EAAE,IAAI,CAAC,CACpa,SAASwF,GAAGxF,EAAEK,EAAE,CAAC,IAAIW,EAAEX,EAAE,QAAQ,OAAON,EAAE,GAAGM,EAAE,CAAC,eAAe,OAAO,aAAa,OAAO,MAAM,OAAO,QAAcW,GAAIhB,EAAE,cAAc,cAAc,CAAC,CAAC,CAAC,SAASyF,GAAGzF,EAAEK,EAAE,CAAC,IAAIW,EAAQX,EAAE,cAAR,KAAqB,GAAGA,EAAE,aAAaU,EAAQV,EAAE,SAAR,KAAgBA,EAAE,QAAQA,EAAE,eAAeW,EAAEkE,GAAS7E,EAAE,OAAR,KAAcA,EAAE,MAAMW,CAAC,EAAEhB,EAAE,cAAc,CAAC,eAAee,EAAE,aAAaC,EAAE,WAAwBX,EAAE,OAAf,YAA+BA,EAAE,OAAZ,QAAuBA,EAAE,SAAR,KAAsBA,EAAE,OAAR,IAAa,CAAC,CAAC,SAASqF,GAAG1F,EAAEK,EAAE,CAACA,EAAEA,EAAE,QAAcA,GAAN,MAASqD,GAAG1D,EAAE,UAAUK,EAAE,EAAE,CAAC,CAC9d,SAASsF,GAAG3F,EAAEK,EAAE,CAACqF,GAAG1F,EAAEK,CAAC,EAAE,IAAIW,EAAEkE,GAAG7E,EAAE,KAAK,EAAEU,EAAEV,EAAE,KAAK,GAASW,GAAN,KAAsBD,IAAX,UAAqBC,IAAJ,GAAYhB,EAAE,QAAP,IAAcA,EAAE,OAAOgB,KAAEhB,EAAE,MAAM,GAAGgB,GAAOhB,EAAE,QAAQ,GAAGgB,IAAIhB,EAAE,MAAM,GAAGgB,WAAsBD,IAAX,UAAwBA,IAAV,QAAY,CAACf,EAAE,gBAAgB,OAAO,EAAE,MAAM,CAACK,EAAE,eAAe,OAAO,EAAEuF,GAAG5F,EAAEK,EAAE,KAAKW,CAAC,EAAEX,EAAE,eAAe,cAAc,GAAGuF,GAAG5F,EAAEK,EAAE,KAAK6E,GAAG7E,EAAE,YAAY,CAAC,EAAQA,EAAE,SAAR,MAAuBA,EAAE,gBAAR,OAAyBL,EAAE,eAAe,CAAC,CAACK,EAAE,eAAe,CACla,SAASwF,GAAG7F,EAAEK,EAAEW,EAAE,CAAC,GAAGX,EAAE,eAAe,OAAO,GAAGA,EAAE,eAAe,cAAc,EAAE,CAAC,IAAIU,EAAEV,EAAE,KAAK,GAAG,EAAaU,IAAX,UAAwBA,IAAV,SAAsBV,EAAE,QAAX,QAAyBA,EAAE,QAAT,MAAgB,OAAOA,EAAE,GAAGL,EAAE,cAAc,aAAagB,GAAGX,IAAIL,EAAE,QAAQA,EAAE,MAAMK,GAAGL,EAAE,aAAaK,CAAC,CAACW,EAAEhB,EAAE,KAAUgB,IAAL,KAAShB,EAAE,KAAK,IAAIA,EAAE,eAAe,CAAC,CAACA,EAAE,cAAc,eAAoBgB,IAAL,KAAShB,EAAE,KAAKgB,EAAE,CACzV,SAAS4E,GAAG5F,EAAEK,EAAEW,EAAE,EAAeX,IAAX,UAAckF,GAAGvF,EAAE,aAAa,IAAIA,KAAQgB,GAAN,KAAQhB,EAAE,aAAa,GAAGA,EAAE,cAAc,aAAaA,EAAE,eAAe,GAAGgB,IAAIhB,EAAE,aAAa,GAAGgB,GAAE,CAAC,IAAI8E,GAAG,MAAM,QAC7K,SAASC,GAAG/F,EAAEK,EAAEW,EAAED,EAAE,CAAa,GAAZf,EAAEA,EAAE,QAAWK,EAAE,CAACA,EAAE,GAAG,QAAQC,EAAE,EAAEA,EAAEU,EAAE,OAAOV,IAAID,EAAE,IAAIW,EAAEV,CAAC,CAAC,EAAE,GAAG,IAAIU,EAAE,EAAEA,EAAEhB,EAAE,OAAOgB,IAAIV,EAAED,EAAE,eAAe,IAAIL,EAAEgB,CAAC,EAAE,KAAK,EAAEhB,EAAEgB,CAAC,EAAE,WAAWV,IAAIN,EAAEgB,CAAC,EAAE,SAASV,GAAGA,GAAGS,IAAIf,EAAEgB,CAAC,EAAE,gBAAgB,GAAG,KAAK,CAAmB,IAAlBA,EAAE,GAAGkE,GAAGlE,CAAC,EAAEX,EAAE,KAASC,EAAE,EAAEA,EAAEN,EAAE,OAAOM,IAAI,CAAC,GAAGN,EAAEM,CAAC,EAAE,QAAQU,EAAE,CAAChB,EAAEM,CAAC,EAAE,SAAS,GAAGS,IAAIf,EAAEM,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAQD,IAAP,MAAUL,EAAEM,CAAC,EAAE,WAAWD,EAAEL,EAAEM,CAAC,EAAE,CAAQD,IAAP,OAAWA,EAAE,SAAS,GAAG,CAAC,CACxY,SAAS2F,GAAGhG,EAAEK,EAAE,CAAC,GAASA,EAAE,yBAAR,KAAgC,MAAM,MAAMhB,EAAE,EAAE,CAAC,EAAE,OAAOU,EAAE,GAAGM,EAAE,CAAC,MAAM,OAAO,aAAa,OAAO,SAAS,GAAGL,EAAE,cAAc,YAAY,CAAC,CAAC,CAAC,SAASiG,GAAGjG,EAAEK,EAAE,CAAC,IAAIW,EAAEX,EAAE,MAAM,GAASW,GAAN,KAAQ,CAA+B,GAA9BA,EAAEX,EAAE,SAASA,EAAEA,EAAE,aAAsBW,GAAN,KAAQ,CAAC,GAASX,GAAN,KAAQ,MAAM,MAAMhB,EAAE,EAAE,CAAC,EAAE,GAAGyG,GAAG9E,CAAC,EAAE,CAAC,GAAG,EAAEA,EAAE,OAAO,MAAM,MAAM3B,EAAE,EAAE,CAAC,EAAE2B,EAAEA,EAAE,CAAC,CAAC,CAACX,EAAEW,CAAC,CAAOX,GAAN,OAAUA,EAAE,IAAIW,EAAEX,CAAC,CAACL,EAAE,cAAc,CAAC,aAAakF,GAAGlE,CAAC,CAAC,CAAC,CACnY,SAASkF,GAAGlG,EAAEK,EAAE,CAAC,IAAIW,EAAEkE,GAAG7E,EAAE,KAAK,EAAEU,EAAEmE,GAAG7E,EAAE,YAAY,EAAQW,GAAN,OAAUA,EAAE,GAAGA,EAAEA,IAAIhB,EAAE,QAAQA,EAAE,MAAMgB,GAASX,EAAE,cAAR,MAAsBL,EAAE,eAAegB,IAAIhB,EAAE,aAAagB,IAAUD,GAAN,OAAUf,EAAE,aAAa,GAAGe,EAAE,CAAC,SAASoF,GAAGnG,EAAE,CAAC,IAAIK,EAAEL,EAAE,YAAYK,IAAIL,EAAE,cAAc,cAAmBK,IAAL,IAAeA,IAAP,OAAWL,EAAE,MAAMK,EAAE,CAAC,SAAS+F,GAAGpG,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,8BAA8B,CAAC,CAC7c,SAASqG,GAAGrG,EAAEK,EAAE,CAAC,OAAaL,GAAN,MAA0CA,IAAjC,+BAAmCoG,GAAG/F,CAAC,EAAiCL,IAA/B,8BAAoDK,IAAlB,gBAAoB,+BAA+BL,CAAC,CAChK,IAAIsG,GAAGC,GAAG,SAASvG,EAAE,CAAC,OAAoB,OAAO,MAArB,KAA4B,MAAM,wBAAwB,SAASK,EAAEW,EAAED,EAAET,EAAE,CAAC,MAAM,wBAAwB,UAAU,CAAC,OAAON,EAAEK,EAAEW,EAAED,EAAET,CAAC,CAAC,CAAC,CAAC,EAAEN,CAAC,EAAE,SAASA,EAAEK,EAAE,CAAC,GAAkCL,EAAE,eAAjC,8BAA+C,cAAcA,EAAEA,EAAE,UAAUK,MAAM,CAA2F,IAA1FiG,GAAGA,IAAI,SAAS,cAAc,KAAK,EAAEA,GAAG,UAAU,QAAQjG,EAAE,QAAO,EAAG,SAAQ,EAAG,SAAaA,EAAEiG,GAAG,WAAWtG,EAAE,YAAYA,EAAE,YAAYA,EAAE,UAAU,EAAE,KAAKK,EAAE,YAAYL,EAAE,YAAYK,EAAE,UAAU,CAAC,CAAC,CAAC,EACpd,SAASmG,GAAGxG,EAAEK,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAIW,EAAEhB,EAAE,WAAW,GAAGgB,GAAGA,IAAIhB,EAAE,WAAegB,EAAE,WAAN,EAAe,CAACA,EAAE,UAAUX,EAAE,MAAM,CAAC,CAACL,EAAE,YAAYK,CAAC,CACtH,IAAIoG,GAAG,CAAC,wBAAwB,GAAG,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,aAAa,GAAG,gBAAgB,GAAG,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,eAAe,GAAG,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAClf,KAAK,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,cAAc,GAAG,YAAY,EAAE,EAAEC,GAAG,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,OAAO,KAAKD,EAAE,EAAE,QAAQ,SAASzG,EAAE,CAAC0G,GAAG,QAAQ,SAASrG,EAAE,CAACA,EAAEA,EAAEL,EAAE,OAAO,CAAC,EAAE,YAAW,EAAGA,EAAE,UAAU,CAAC,EAAEyG,GAAGpG,CAAC,EAAEoG,GAAGzG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS2G,GAAG3G,EAAEK,EAAEW,EAAE,CAAC,OAAaX,GAAN,MAAqB,OAAOA,GAAnB,WAA2BA,IAAL,GAAO,GAAGW,GAAc,OAAOX,GAAlB,UAAyBA,IAAJ,GAAOoG,GAAG,eAAezG,CAAC,GAAGyG,GAAGzG,CAAC,GAAG,GAAGK,GAAG,OAAOA,EAAE,IAAI,CACzb,SAASuG,GAAG5G,EAAEK,EAAE,CAACL,EAAEA,EAAE,MAAM,QAAQgB,KAAKX,EAAE,GAAGA,EAAE,eAAeW,CAAC,EAAE,CAAC,IAAID,EAAMC,EAAE,QAAQ,IAAI,IAAlB,EAAoBV,EAAEqG,GAAG3F,EAAEX,EAAEW,CAAC,EAAED,CAAC,EAAYC,IAAV,UAAcA,EAAE,YAAYD,EAAEf,EAAE,YAAYgB,EAAEV,CAAC,EAAEN,EAAEgB,CAAC,EAAEV,CAAC,CAAC,CAAC,IAAIuG,GAAG9G,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,EACrT,SAAS+G,GAAG9G,EAAEK,EAAE,CAAC,GAAGA,EAAE,CAAC,GAAGwG,GAAG7G,CAAC,IAAUK,EAAE,UAAR,MAAwBA,EAAE,yBAAR,MAAiC,MAAM,MAAMhB,EAAE,IAAIW,CAAC,CAAC,EAAE,GAASK,EAAE,yBAAR,KAAgC,CAAC,GAASA,EAAE,UAAR,KAAiB,MAAM,MAAMhB,EAAE,EAAE,CAAC,EAAE,GAAc,OAAOgB,EAAE,yBAApB,UAA6C,EAAE,WAAWA,EAAE,yBAAyB,MAAM,MAAMhB,EAAE,EAAE,CAAC,CAAE,CAAC,GAASgB,EAAE,OAAR,MAA0B,OAAOA,EAAE,OAApB,SAA0B,MAAM,MAAMhB,EAAE,EAAE,CAAC,CAAE,CAAC,CAClW,SAAS0H,GAAG/G,EAAEK,EAAE,CAAC,GAAQL,EAAE,QAAQ,GAAG,IAAlB,GAAoB,OAAiB,OAAOK,EAAE,IAApB,SAAuB,OAAOL,EAAC,CAAE,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,MAAM,GAAG,QAAQ,MAAM,EAAE,CAAC,CAAC,IAAIgH,GAAG,KAAK,SAASC,GAAGjH,EAAE,CAAC,OAAAA,EAAEA,EAAE,QAAQA,EAAE,YAAY,OAAOA,EAAE,0BAA0BA,EAAEA,EAAE,yBAAoCA,EAAE,WAAN,EAAeA,EAAE,WAAWA,CAAC,CAAC,IAAIkH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACpc,SAASC,GAAGrH,EAAE,CAAC,GAAGA,EAAEsH,GAAGtH,CAAC,EAAE,CAAC,GAAgB,OAAOkH,IAApB,WAAuB,MAAM,MAAM7H,EAAE,GAAG,CAAC,EAAE,IAAIgB,EAAEL,EAAE,UAAUK,IAAIA,EAAEkH,GAAGlH,CAAC,EAAE6G,GAAGlH,EAAE,UAAUA,EAAE,KAAKK,CAAC,EAAE,CAAC,CAAC,SAASmH,GAAGxH,EAAE,CAACmH,GAAGC,GAAGA,GAAG,KAAKpH,CAAC,EAAEoH,GAAG,CAACpH,CAAC,EAAEmH,GAAGnH,CAAC,CAAC,SAASyH,IAAI,CAAC,GAAGN,GAAG,CAAC,IAAInH,EAAEmH,GAAG9G,EAAE+G,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGrH,CAAC,EAAKK,EAAE,IAAIL,EAAE,EAAEA,EAAEK,EAAE,OAAOL,IAAIqH,GAAGhH,EAAEL,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS0H,GAAG1H,EAAEK,EAAE,CAAC,OAAOL,EAAEK,CAAC,CAAC,CAAC,SAASsH,IAAI,EAAE,IAAIC,GAAG,GAAG,SAASC,GAAG7H,EAAEK,EAAEW,EAAE,CAAC,GAAG4G,GAAG,OAAO5H,EAAEK,EAAEW,CAAC,EAAE4G,GAAG,GAAG,GAAG,CAAC,OAAOF,GAAG1H,EAAEK,EAAEW,CAAC,CAAC,QAAC,CAAW4G,GAAG,IAAUT,KAAP,MAAkBC,KAAP,QAAUO,GAAE,EAAGF,GAAE,EAAE,CAAC,CAChb,SAASK,GAAG9H,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,UAAU,GAAUgB,IAAP,KAAS,OAAO,KAAK,IAAID,EAAEwG,GAAGvG,CAAC,EAAE,GAAUD,IAAP,KAAS,OAAO,KAAKC,EAAED,EAAEV,CAAC,EAAEL,EAAE,OAAOK,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBU,EAAE,CAACA,EAAE,YAAYf,EAAEA,EAAE,KAAKe,EAAE,EAAaf,IAAX,UAAwBA,IAAV,SAAwBA,IAAX,UAA2BA,IAAb,aAAiBA,EAAE,CAACe,EAAE,MAAMf,EAAE,QAAQA,EAAE,EAAE,CAAC,GAAGA,EAAE,OAAO,KAAK,GAAGgB,GACte,OAAOA,GADke,WAChe,MAAM,MAAM3B,EAAE,IAAIgB,EAAE,OAAOW,CAAC,CAAC,EAAE,OAAOA,CAAC,CAAC,IAAI+G,GAAG,GAAG,GAAG/E,GAAG,GAAG,CAAC,IAAIgF,GAAG,GAAG,OAAO,eAAeA,GAAG,UAAU,CAAC,IAAI,UAAU,CAACD,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,iBAAiB,OAAOC,GAAGA,EAAE,EAAE,OAAO,oBAAoB,OAAOA,GAAGA,EAAE,CAAC,MAAS,CAACD,GAAG,EAAE,CAAC,SAASE,GAAGjI,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAED,EAAED,EAAE,CAAC,IAAI9B,EAAE,MAAM,UAAU,MAAM,KAAK,UAAU,CAAC,EAAE,GAAG,CAACkB,EAAE,MAAMW,EAAE7B,CAAC,CAAC,OAAOkC,EAAE,CAAC,KAAK,QAAQA,CAAC,CAAC,CAAC,CAAC,IAAI6G,GAAG,GAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,KAAKC,GAAG,CAAC,QAAQ,SAAStI,EAAE,CAACkI,GAAG,GAAGC,GAAGnI,CAAC,CAAC,EAAE,SAASuI,GAAGvI,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAED,EAAED,EAAE,CAACiH,GAAG,GAAGC,GAAG,KAAKF,GAAG,MAAMK,GAAG,SAAS,CAAC,CACze,SAASE,GAAGxI,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAED,EAAED,EAAE,CAA0B,GAAzBsH,GAAG,MAAM,KAAK,SAAS,EAAKL,GAAG,CAAC,GAAGA,GAAG,CAAC,IAAI/I,EAAEgJ,GAAGD,GAAG,GAAGC,GAAG,IAAI,KAAM,OAAM,MAAM9I,EAAE,GAAG,CAAC,EAAE+I,KAAKA,GAAG,GAAGC,GAAGlJ,EAAE,CAAC,CAAC,SAASsJ,GAAGzI,EAAE,CAAC,IAAIK,EAAEL,EAAEgB,EAAEhB,EAAE,GAAGA,EAAE,UAAU,KAAKK,EAAE,QAAQA,EAAEA,EAAE,WAAW,CAACL,EAAEK,EAAE,GAAGA,EAAEL,EAAOK,EAAE,MAAM,OAAQW,EAAEX,EAAE,QAAQL,EAAEK,EAAE,aAAaL,EAAE,CAAC,OAAWK,EAAE,MAAN,EAAUW,EAAE,IAAI,CAAC,SAAS0H,GAAG1I,EAAE,CAAC,GAAQA,EAAE,MAAP,GAAW,CAAC,IAAIK,EAAEL,EAAE,cAAsE,GAAjDK,IAAP,OAAWL,EAAEA,EAAE,UAAiBA,IAAP,OAAWK,EAAEL,EAAE,gBAA0BK,IAAP,KAAS,OAAOA,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,SAASsI,GAAG3I,EAAE,CAAC,GAAGyI,GAAGzI,CAAC,IAAIA,EAAE,MAAM,MAAMX,EAAE,GAAG,CAAC,CAAE,CACjf,SAASuJ,GAAG5I,EAAE,CAAC,IAAIK,EAAEL,EAAE,UAAU,GAAG,CAACK,EAAE,CAAS,GAARA,EAAEoI,GAAGzI,CAAC,EAAYK,IAAP,KAAS,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAE,OAAOgB,IAAIL,EAAE,KAAKA,CAAC,CAAC,QAAQgB,EAAEhB,EAAEe,EAAEV,IAAI,CAAC,IAAIC,EAAEU,EAAE,OAAO,GAAUV,IAAP,KAAS,MAAM,IAAIc,EAAEd,EAAE,UAAU,GAAUc,IAAP,KAAS,CAAY,GAAXL,EAAET,EAAE,OAAiBS,IAAP,KAAS,CAACC,EAAED,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGT,EAAE,QAAQc,EAAE,MAAM,CAAC,IAAIA,EAAEd,EAAE,MAAMc,GAAG,CAAC,GAAGA,IAAIJ,EAAE,OAAO2H,GAAGrI,CAAC,EAAEN,EAAE,GAAGoB,IAAIL,EAAE,OAAO4H,GAAGrI,CAAC,EAAED,EAAEe,EAAEA,EAAE,OAAO,CAAC,MAAM,MAAM/B,EAAE,GAAG,CAAC,CAAE,CAAC,GAAG2B,EAAE,SAASD,EAAE,OAAOC,EAAEV,EAAES,EAAEK,MAAM,CAAC,QAAQD,EAAE,GAAGD,EAAEZ,EAAE,MAAMY,GAAG,CAAC,GAAGA,IAAIF,EAAE,CAACG,EAAE,GAAGH,EAAEV,EAAES,EAAEK,EAAE,KAAK,CAAC,GAAGF,IAAIH,EAAE,CAACI,EAAE,GAAGJ,EAAET,EAAEU,EAAEI,EAAE,KAAK,CAACF,EAAEA,EAAE,OAAO,CAAC,GAAG,CAACC,EAAE,CAAC,IAAID,EAAEE,EAAE,MAAMF,GAAG,CAAC,GAAGA,IAC5fF,EAAE,CAACG,EAAE,GAAGH,EAAEI,EAAEL,EAAET,EAAE,KAAK,CAAC,GAAGY,IAAIH,EAAE,CAACI,EAAE,GAAGJ,EAAEK,EAAEJ,EAAEV,EAAE,KAAK,CAACY,EAAEA,EAAE,OAAO,CAAC,GAAG,CAACC,EAAE,MAAM,MAAM9B,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC,GAAG2B,EAAE,YAAYD,EAAE,MAAM,MAAM1B,EAAE,GAAG,CAAC,CAAE,CAAC,GAAO2B,EAAE,MAAN,EAAU,MAAM,MAAM3B,EAAE,GAAG,CAAC,EAAE,OAAO2B,EAAE,UAAU,UAAUA,EAAEhB,EAAEK,CAAC,CAAC,SAASwI,GAAG7I,EAAE,CAAC,OAAAA,EAAE4I,GAAG5I,CAAC,EAAgBA,IAAP,KAAS8I,GAAG9I,CAAC,EAAE,IAAI,CAAC,SAAS8I,GAAG9I,EAAE,CAAC,GAAOA,EAAE,MAAN,GAAeA,EAAE,MAAN,EAAU,OAAOA,EAAE,IAAIA,EAAEA,EAAE,MAAaA,IAAP,MAAU,CAAC,IAAIK,EAAEyI,GAAG9I,CAAC,EAAE,GAAUK,IAAP,KAAS,OAAOA,EAAEL,EAAEA,EAAE,OAAO,CAAC,OAAO,IAAI,CAC1X,IAAI+I,GAAGrG,GAAG,0BAA0BsG,GAAGtG,GAAG,wBAAwBuG,GAAGvG,GAAG,qBAAqBwG,GAAGxG,GAAG,sBAAsBzC,EAAEyC,GAAG,aAAayG,GAAGzG,GAAG,iCAAiC0G,GAAG1G,GAAG,2BAA2B2G,GAAG3G,GAAG,8BAA8B4G,GAAG5G,GAAG,wBAAwB6G,GAAG7G,GAAG,qBAAqB8G,GAAG9G,GAAG,sBAAsB+G,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG3J,EAAE,CAAC,GAAG0J,IAAiB,OAAOA,GAAG,mBAAvB,WAAyC,GAAG,CAACA,GAAG,kBAAkBD,GAAGzJ,EAAE,QAAcA,EAAE,QAAQ,MAAM,OAAvB,GAA2B,CAAC,MAAS,EAAE,CACve,IAAI4J,GAAG,KAAK,MAAM,KAAK,MAAMC,GAAGC,GAAG,KAAK,IAAIC,GAAG,KAAK,IAAI,SAASF,GAAG7J,EAAE,CAAC,OAAAA,KAAK,EAAaA,IAAJ,EAAM,GAAG,IAAI8J,GAAG9J,CAAC,EAAE+J,GAAG,GAAG,CAAC,CAAC,IAAIC,GAAG,GAAGC,GAAG,QAC7H,SAASC,GAAGlK,EAAE,CAAC,OAAOA,EAAE,CAACA,EAAC,CAAE,IAAK,GAAE,MAAO,GAAE,IAAK,GAAE,MAAO,GAAE,IAAK,GAAE,MAAO,GAAE,IAAK,GAAE,MAAO,GAAE,IAAK,IAAG,MAAO,IAAG,IAAK,IAAG,MAAO,IAAG,IAAK,IAAG,IAAK,KAAI,IAAK,KAAI,IAAK,KAAI,IAAK,MAAK,IAAK,MAAK,IAAK,MAAK,IAAK,MAAK,IAAK,OAAM,IAAK,OAAM,IAAK,OAAM,IAAK,QAAO,IAAK,QAAO,IAAK,QAAO,IAAK,SAAQ,IAAK,SAAQ,OAAOA,EAAE,QAAQ,IAAK,SAAQ,IAAK,SAAQ,IAAK,UAAS,IAAK,UAAS,IAAK,UAAS,OAAOA,EAAE,UAAU,IAAK,WAAU,MAAO,WAAU,IAAK,WAAU,MAAO,WAAU,IAAK,WAAU,MAAO,WAAU,IAAK,YAAW,MAAO,YACzgB,QAAQ,OAAOA,CAAC,CAAC,CAAC,SAASmK,GAAGnK,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,aAAa,GAAOgB,IAAJ,EAAM,MAAO,GAAE,IAAID,EAAE,EAAET,EAAEN,EAAE,eAAeoB,EAAEpB,EAAE,YAAYmB,EAAEH,EAAE,UAAU,GAAOG,IAAJ,EAAM,CAAC,IAAID,EAAEC,EAAE,CAACb,EAAMY,IAAJ,EAAMH,EAAEmJ,GAAGhJ,CAAC,GAAGE,GAAGD,EAAMC,IAAJ,IAAQL,EAAEmJ,GAAG9I,CAAC,GAAG,MAAMD,EAAEH,EAAE,CAACV,EAAMa,IAAJ,EAAMJ,EAAEmJ,GAAG/I,CAAC,EAAMC,IAAJ,IAAQL,EAAEmJ,GAAG9I,CAAC,GAAG,GAAOL,IAAJ,EAAM,MAAO,GAAE,GAAOV,IAAJ,GAAOA,IAAIU,GAAQ,EAAAV,EAAEC,KAAKA,EAAES,EAAE,CAACA,EAAEK,EAAEf,EAAE,CAACA,EAAEC,GAAGc,GAAQd,IAAL,KAAac,EAAE,WAAP,GAAiB,OAAOf,EAA0C,GAAnCU,EAAE,IAAKA,GAAGC,EAAE,IAAIX,EAAEL,EAAE,eAAsBK,IAAJ,EAAM,IAAIL,EAAEA,EAAE,cAAcK,GAAGU,EAAE,EAAEV,GAAGW,EAAE,GAAG4I,GAAGvJ,CAAC,EAAEC,EAAE,GAAGU,EAAED,GAAGf,EAAEgB,CAAC,EAAEX,GAAG,CAACC,EAAE,OAAOS,CAAC,CACvc,SAASqJ,GAAGpK,EAAEK,EAAE,CAAC,OAAOL,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,OAAOK,EAAE,IAAI,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,KAAI,IAAK,KAAI,IAAK,KAAI,IAAK,MAAK,IAAK,MAAK,IAAK,MAAK,IAAK,MAAK,IAAK,OAAM,IAAK,OAAM,IAAK,OAAM,IAAK,QAAO,IAAK,QAAO,IAAK,QAAO,IAAK,SAAQ,IAAK,SAAQ,OAAOA,EAAE,IAAI,IAAK,SAAQ,IAAK,SAAQ,IAAK,UAAS,IAAK,UAAS,IAAK,UAAS,MAAM,GAAG,IAAK,WAAU,IAAK,WAAU,IAAK,WAAU,IAAK,YAAW,MAAM,GAAG,QAAQ,MAAM,EAAE,CAAC,CAC/a,SAASgK,GAAGrK,EAAEK,EAAE,CAAC,QAAQW,EAAEhB,EAAE,eAAee,EAAEf,EAAE,YAAYM,EAAEN,EAAE,gBAAgBoB,EAAEpB,EAAE,aAAa,EAAEoB,GAAG,CAAC,IAAID,EAAE,GAAGyI,GAAGxI,CAAC,EAAEF,EAAE,GAAGC,EAAEF,EAAEX,EAAEa,CAAC,EAAUF,IAAL,IAAgB,EAAAC,EAAEF,IAASE,EAAEH,KAAGT,EAAEa,CAAC,EAAEiJ,GAAGlJ,EAAEb,CAAC,GAAOY,GAAGZ,IAAIL,EAAE,cAAckB,GAAGE,GAAG,CAACF,CAAC,CAAC,CAAC,SAASoJ,GAAGtK,EAAE,CAAC,OAAAA,EAAEA,EAAE,aAAa,YAAuBA,IAAJ,EAAMA,EAAEA,EAAE,WAAW,WAAW,CAAC,CAAC,SAASuK,IAAI,CAAC,IAAIvK,EAAEgK,GAAG,OAAAA,KAAK,EAAO,EAAAA,GAAG,WAAWA,GAAG,IAAWhK,CAAC,CAAC,SAASwK,GAAGxK,EAAE,CAAC,QAAQK,EAAE,GAAGW,EAAE,EAAE,GAAGA,EAAEA,IAAIX,EAAE,KAAKL,CAAC,EAAE,OAAOK,CAAC,CAC3a,SAASoK,GAAGzK,EAAEK,EAAEW,EAAE,CAAChB,EAAE,cAAcK,EAAcA,IAAZ,YAAgBL,EAAE,eAAe,EAAEA,EAAE,YAAY,GAAGA,EAAEA,EAAE,WAAWK,EAAE,GAAGuJ,GAAGvJ,CAAC,EAAEL,EAAEK,CAAC,EAAEW,CAAC,CAAC,SAAS0J,GAAG1K,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,aAAa,CAACK,EAAEL,EAAE,aAAaK,EAAEL,EAAE,eAAe,EAAEA,EAAE,YAAY,EAAEA,EAAE,cAAcK,EAAEL,EAAE,kBAAkBK,EAAEL,EAAE,gBAAgBK,EAAEA,EAAEL,EAAE,cAAc,IAAIe,EAAEf,EAAE,WAAW,IAAIA,EAAEA,EAAE,gBAAgB,EAAEgB,GAAG,CAAC,IAAIV,EAAE,GAAGsJ,GAAG5I,CAAC,EAAEI,EAAE,GAAGd,EAAED,EAAEC,CAAC,EAAE,EAAES,EAAET,CAAC,EAAE,GAAGN,EAAEM,CAAC,EAAE,GAAGU,GAAG,CAACI,CAAC,CAAC,CACzY,SAASuJ,GAAG3K,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,gBAAgBK,EAAE,IAAIL,EAAEA,EAAE,cAAcgB,GAAG,CAAC,IAAID,EAAE,GAAG6I,GAAG5I,CAAC,EAAEV,EAAE,GAAGS,EAAET,EAAED,EAAEL,EAAEe,CAAC,EAAEV,IAAIL,EAAEe,CAAC,GAAGV,GAAGW,GAAG,CAACV,CAAC,CAAC,CAAC,IAAIJ,EAAE,EAAE,SAAS0K,GAAG5K,EAAE,CAAC,OAAAA,GAAG,CAACA,EAAS,EAAEA,EAAE,EAAEA,EAAOA,EAAE,UAAW,GAAG,UAAU,EAAE,CAAC,CAAC,IAAI6K,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAI,IAAIC,GAAG,IAAI,IAAIC,GAAG,GAAGC,GAAG,6PAA6P,MAAM,GAAG,EACniB,SAASC,GAAG3L,EAAEK,EAAE,CAAC,OAAOL,GAAG,IAAK,UAAU,IAAK,WAAWoL,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAG,OAAOlL,EAAE,SAAS,EAAE,MAAM,IAAK,oBAAoB,IAAK,qBAAqBmL,GAAG,OAAOnL,EAAE,SAAS,CAAC,CAAC,CACnT,SAASuL,GAAG5L,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAE,CAAC,OAAUpB,IAAP,MAAUA,EAAE,cAAcoB,GAASpB,EAAE,CAAC,UAAUK,EAAE,aAAaW,EAAE,iBAAiBD,EAAE,YAAYK,EAAE,iBAAiB,CAACd,CAAC,CAAC,EAASD,IAAP,OAAWA,EAAEiH,GAAGjH,CAAC,EAASA,IAAP,MAAUyK,GAAGzK,CAAC,GAAGL,IAAEA,EAAE,kBAAkBe,EAAEV,EAAEL,EAAE,iBAAwBM,IAAP,MAAeD,EAAE,QAAQC,CAAC,IAAhB,IAAmBD,EAAE,KAAKC,CAAC,EAASN,EAAC,CACpR,SAAS6L,GAAG7L,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,OAAOD,EAAC,CAAE,IAAK,UAAU,OAAO+K,GAAGQ,GAAGR,GAAGpL,EAAEK,EAAEW,EAAED,EAAET,CAAC,EAAE,GAAG,IAAK,YAAY,OAAO+K,GAAGO,GAAGP,GAAGrL,EAAEK,EAAEW,EAAED,EAAET,CAAC,EAAE,GAAG,IAAK,YAAY,OAAOgL,GAAGM,GAAGN,GAAGtL,EAAEK,EAAEW,EAAED,EAAET,CAAC,EAAE,GAAG,IAAK,cAAc,IAAIc,EAAEd,EAAE,UAAU,OAAAiL,GAAG,IAAInK,EAAEwK,GAAGL,GAAG,IAAInK,CAAC,GAAG,KAAKpB,EAAEK,EAAEW,EAAED,EAAET,CAAC,CAAC,EAAQ,GAAG,IAAK,oBAAoB,OAAOc,EAAEd,EAAE,UAAUkL,GAAG,IAAIpK,EAAEwK,GAAGJ,GAAG,IAAIpK,CAAC,GAAG,KAAKpB,EAAEK,EAAEW,EAAED,EAAET,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CACnW,SAASwL,GAAG9L,EAAE,CAAC,IAAIK,EAAE0L,GAAG/L,EAAE,MAAM,EAAE,GAAUK,IAAP,KAAS,CAAC,IAAIW,EAAEyH,GAAGpI,CAAC,EAAE,GAAUW,IAAP,MAAS,GAAGX,EAAEW,EAAE,IAASX,IAAL,IAAQ,GAAGA,EAAEqI,GAAG1H,CAAC,EAASX,IAAP,KAAS,CAACL,EAAE,UAAUK,EAAE4K,GAAGjL,EAAE,SAAS,UAAU,CAAC+K,GAAG/J,CAAC,CAAC,CAAC,EAAE,MAAM,UAAcX,IAAJ,GAAOW,EAAE,UAAU,QAAQ,cAAc,aAAa,CAAChB,EAAE,UAAcgB,EAAE,MAAN,EAAUA,EAAE,UAAU,cAAc,KAAK,MAAM,EAAC,CAAChB,EAAE,UAAU,IAAI,CAClT,SAASgM,GAAGhM,EAAE,CAAC,GAAUA,EAAE,YAAT,KAAmB,MAAM,GAAG,QAAQK,EAAEL,EAAE,iBAAiB,EAAEK,EAAE,QAAQ,CAAC,IAAIW,EAAEiL,GAAGjM,EAAE,aAAaA,EAAE,iBAAiBK,EAAE,CAAC,EAAEL,EAAE,WAAW,EAAE,GAAUgB,IAAP,KAAS,CAACA,EAAEhB,EAAE,YAAY,IAAIe,EAAE,IAAIC,EAAE,YAAYA,EAAE,KAAKA,CAAC,EAAEgG,GAAGjG,EAAEC,EAAE,OAAO,cAAcD,CAAC,EAAEiG,GAAG,IAAI,KAAM,QAAO3G,EAAEiH,GAAGtG,CAAC,EAASX,IAAP,MAAUyK,GAAGzK,CAAC,EAAEL,EAAE,UAAUgB,EAAE,GAAGX,EAAE,MAAK,CAAE,CAAC,MAAM,EAAE,CAAC,SAAS6L,GAAGlM,EAAEK,EAAEW,EAAE,CAACgL,GAAGhM,CAAC,GAAGgB,EAAE,OAAOX,CAAC,CAAC,CAAC,SAAS8L,IAAI,CAACjB,GAAG,GAAUE,KAAP,MAAWY,GAAGZ,EAAE,IAAIA,GAAG,MAAaC,KAAP,MAAWW,GAAGX,EAAE,IAAIA,GAAG,MAAaC,KAAP,MAAWU,GAAGV,EAAE,IAAIA,GAAG,MAAMC,GAAG,QAAQW,EAAE,EAAEV,GAAG,QAAQU,EAAE,CAAC,CACnf,SAASE,GAAGpM,EAAEK,EAAE,CAACL,EAAE,YAAYK,IAAIL,EAAE,UAAU,KAAKkL,KAAKA,GAAG,GAAGxI,GAAG,0BAA0BA,GAAG,wBAAwByJ,EAAE,GAAG,CAC5H,SAASE,GAAGrM,EAAE,CAAC,SAASK,EAAEA,EAAE,CAAC,OAAO+L,GAAG/L,EAAEL,CAAC,CAAC,CAAC,GAAG,EAAEmL,GAAG,OAAO,CAACiB,GAAGjB,GAAG,CAAC,EAAEnL,CAAC,EAAE,QAAQgB,EAAE,EAAEA,EAAEmK,GAAG,OAAOnK,IAAI,CAAC,IAAID,EAAEoK,GAAGnK,CAAC,EAAED,EAAE,YAAYf,IAAIe,EAAE,UAAU,KAAK,CAAC,CAAyF,IAAjFqK,KAAP,MAAWgB,GAAGhB,GAAGpL,CAAC,EAASqL,KAAP,MAAWe,GAAGf,GAAGrL,CAAC,EAASsL,KAAP,MAAWc,GAAGd,GAAGtL,CAAC,EAAEuL,GAAG,QAAQlL,CAAC,EAAEmL,GAAG,QAAQnL,CAAC,EAAMW,EAAE,EAAEA,EAAEyK,GAAG,OAAOzK,IAAID,EAAE0K,GAAGzK,CAAC,EAAED,EAAE,YAAYf,IAAIe,EAAE,UAAU,MAAM,KAAK,EAAE0K,GAAG,SAASzK,EAAEyK,GAAG,CAAC,EAASzK,EAAE,YAAT,OAAqB8K,GAAG9K,CAAC,EAASA,EAAE,YAAT,MAAoByK,GAAG,OAAO,CAAC,IAAIa,GAAG3I,GAAG,wBAAwB4I,GAAG,GAC5a,SAASC,GAAGxM,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAEJ,EAAEkB,EAAEkL,GAAG,WAAWA,GAAG,WAAW,KAAK,GAAG,CAACpM,EAAE,EAAEuM,GAAGzM,EAAEK,EAAEW,EAAED,CAAC,CAAC,QAAC,CAAQb,EAAEI,EAAEgM,GAAG,WAAWlL,CAAC,CAAC,CAAC,SAASsL,GAAG1M,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAEJ,EAAEkB,EAAEkL,GAAG,WAAWA,GAAG,WAAW,KAAK,GAAG,CAACpM,EAAE,EAAEuM,GAAGzM,EAAEK,EAAEW,EAAED,CAAC,CAAC,QAAC,CAAQb,EAAEI,EAAEgM,GAAG,WAAWlL,CAAC,CAAC,CACjO,SAASqL,GAAGzM,EAAEK,EAAEW,EAAED,EAAE,CAAC,GAAGwL,GAAG,CAAC,IAAIjM,EAAE2L,GAAGjM,EAAEK,EAAEW,EAAED,CAAC,EAAE,GAAUT,IAAP,KAASqM,GAAG3M,EAAEK,EAAEU,EAAE6L,GAAG5L,CAAC,EAAE2K,GAAG3L,EAAEe,CAAC,UAAU8K,GAAGvL,EAAEN,EAAEK,EAAEW,EAAED,CAAC,EAAEA,EAAE,0BAA0B4K,GAAG3L,EAAEe,CAAC,EAAEV,EAAE,GAAG,GAAGqL,GAAG,QAAQ1L,CAAC,EAAE,CAAC,KAAYM,IAAP,MAAU,CAAC,IAAIc,EAAEkG,GAAGhH,CAAC,EAAyD,GAAhDc,IAAP,MAAUyJ,GAAGzJ,CAAC,EAAEA,EAAE6K,GAAGjM,EAAEK,EAAEW,EAAED,CAAC,EAASK,IAAP,MAAUuL,GAAG3M,EAAEK,EAAEU,EAAE6L,GAAG5L,CAAC,EAAKI,IAAId,EAAE,MAAMA,EAAEc,CAAC,CAAQd,IAAP,MAAUS,EAAE,gBAAe,CAAE,MAAM4L,GAAG3M,EAAEK,EAAEU,EAAE,KAAKC,CAAC,CAAC,CAAC,CAAC,IAAI4L,GAAG,KACpU,SAASX,GAAGjM,EAAEK,EAAEW,EAAED,EAAE,CAAyB,GAAxB6L,GAAG,KAAK5M,EAAEiH,GAAGlG,CAAC,EAAEf,EAAE+L,GAAG/L,CAAC,EAAYA,IAAP,KAAS,GAAGK,EAAEoI,GAAGzI,CAAC,EAASK,IAAP,KAASL,EAAE,aAAagB,EAAEX,EAAE,IAASW,IAAL,GAAO,CAAS,GAARhB,EAAE0I,GAAGrI,CAAC,EAAYL,IAAP,KAAS,OAAOA,EAAEA,EAAE,IAAI,SAAagB,IAAJ,EAAM,CAAC,GAAGX,EAAE,UAAU,QAAQ,cAAc,aAAa,OAAWA,EAAE,MAAN,EAAUA,EAAE,UAAU,cAAc,KAAKL,EAAE,IAAI,MAAMK,IAAIL,IAAIA,EAAE,MAAM,OAAA4M,GAAG5M,EAAS,IAAI,CAC7S,SAAS6M,GAAG7M,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAK,SAAS,IAAK,QAAQ,IAAK,QAAQ,IAAK,cAAc,IAAK,OAAO,IAAK,MAAM,IAAK,WAAW,IAAK,WAAW,IAAK,UAAU,IAAK,YAAY,IAAK,OAAO,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,UAAU,IAAK,UAAU,IAAK,WAAW,IAAK,QAAQ,IAAK,YAAY,IAAK,UAAU,IAAK,QAAQ,IAAK,QAAQ,IAAK,OAAO,IAAK,gBAAgB,IAAK,cAAc,IAAK,YAAY,IAAK,aAAa,IAAK,QAAQ,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,cAAc,IAAK,WAAW,IAAK,aAAa,IAAK,eAAe,IAAK,SAAS,IAAK,kBAAkB,IAAK,YAAY,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,oBAAoB,IAAK,aAAa,IAAK,YAAY,IAAK,cAAc,IAAK,OAAO,IAAK,mBAAmB,IAAK,QAAQ,IAAK,aAAa,IAAK,WAAW,IAAK,SAAS,IAAK,cAAc,MAAO,GAAE,IAAK,OAAO,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,IAAK,QAAQ,IAAK,aAAa,IAAK,aAAa,IAAK,eAAe,IAAK,eAAe,MAAO,GACpqC,IAAK,UAAU,OAAOmJ,GAAE,EAAE,CAAE,KAAKC,GAAG,MAAO,GAAE,KAAKC,GAAG,MAAO,GAAE,KAAKC,GAAG,KAAKC,GAAG,MAAO,IAAG,KAAKC,GAAG,MAAO,WAAU,QAAQ,MAAO,GAAE,CAAC,QAAQ,MAAO,GAAE,CAAC,CAAC,IAAIsD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,IAAI,CAAC,GAAGD,GAAG,OAAOA,GAAG,IAAIhN,EAAEK,EAAE0M,GAAG/L,EAAEX,EAAE,OAAOU,EAAET,EAAE,UAAUwM,GAAGA,GAAG,MAAMA,GAAG,YAAY1L,EAAEd,EAAE,OAAO,IAAIN,EAAE,EAAEA,EAAEgB,GAAGX,EAAEL,CAAC,IAAIM,EAAEN,CAAC,EAAEA,IAAI,CAAC,IAAImB,EAAEH,EAAEhB,EAAE,IAAIe,EAAE,EAAEA,GAAGI,GAAGd,EAAEW,EAAED,CAAC,IAAIT,EAAEc,EAAEL,CAAC,EAAEA,IAAI,CAAC,OAAOiM,GAAG1M,EAAE,MAAMN,EAAE,EAAEe,EAAE,EAAEA,EAAE,MAAM,CAAC,CACxY,SAASmM,GAAGlN,EAAE,CAAC,IAAIK,EAAEL,EAAE,QAAQ,mBAAaA,GAAGA,EAAEA,EAAE,SAAaA,IAAJ,GAAYK,IAAL,KAASL,EAAE,KAAKA,EAAEK,EAAOL,IAAL,KAASA,EAAE,IAAW,IAAIA,GAAQA,IAAL,GAAOA,EAAE,CAAC,CAAC,SAASmN,IAAI,CAAC,MAAM,EAAE,CAAC,SAASC,IAAI,CAAC,MAAM,EAAE,CAC5K,SAASC,GAAGrN,EAAE,CAAC,SAASK,EAAEA,EAAEU,EAAET,EAAEc,EAAED,EAAE,CAAC,KAAK,WAAWd,EAAE,KAAK,YAAYC,EAAE,KAAK,KAAKS,EAAE,KAAK,YAAYK,EAAE,KAAK,OAAOD,EAAE,KAAK,cAAc,KAAK,QAAQH,KAAKhB,EAAEA,EAAE,eAAegB,CAAC,IAAIX,EAAEL,EAAEgB,CAAC,EAAE,KAAKA,CAAC,EAAEX,EAAEA,EAAEe,CAAC,EAAEA,EAAEJ,CAAC,GAAG,YAAK,oBAA0BI,EAAE,kBAAR,KAAyBA,EAAE,iBAAsBA,EAAE,cAAP,IAAoB+L,GAAGC,GAAG,KAAK,qBAAqBA,GAAU,IAAI,CAAC,OAAArN,EAAEM,EAAE,UAAU,CAAC,eAAe,UAAU,CAAC,KAAK,iBAAiB,GAAG,IAAIL,EAAE,KAAK,YAAYA,IAAIA,EAAE,eAAeA,EAAE,iBAA6B,OAAOA,EAAE,aAArB,YACxdA,EAAE,YAAY,IAAI,KAAK,mBAAmBmN,GAAG,EAAE,gBAAgB,UAAU,CAAC,IAAInN,EAAE,KAAK,YAAYA,IAAIA,EAAE,gBAAgBA,EAAE,gBAAe,EAAe,OAAOA,EAAE,cAArB,YAAoCA,EAAE,aAAa,IAAI,KAAK,qBAAqBmN,GAAG,EAAE,QAAQ,UAAU,GAAG,aAAaA,EAAE,CAAC,EAAS9M,CAAC,CACjR,IAAIiN,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,SAAStN,EAAE,CAAC,OAAOA,EAAE,WAAW,KAAK,KAAK,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAEuN,GAAGF,GAAGC,EAAE,EAAEE,GAAGzN,EAAE,GAAGuN,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAEG,GAAGJ,GAAGG,EAAE,EAAEE,GAAGC,GAAGC,GAAGC,GAAG9N,EAAE,GAAGyN,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiBM,GAAG,OAAO,EAAE,QAAQ,EAAE,cAAc,SAAS9N,EAAE,CAAC,OAAgBA,EAAE,gBAAX,OAAyBA,EAAE,cAAcA,EAAE,WAAWA,EAAE,UAAUA,EAAE,YAAYA,EAAE,aAAa,EAAE,UAAU,SAASA,EAAE,CAAC,MAAG,cAC3eA,EAASA,EAAE,WAAUA,IAAI4N,KAAKA,IAAkB5N,EAAE,OAAhB,aAAsB0N,GAAG1N,EAAE,QAAQ4N,GAAG,QAAQD,GAAG3N,EAAE,QAAQ4N,GAAG,SAASD,GAAGD,GAAG,EAAEE,GAAG5N,GAAU0N,GAAE,EAAE,UAAU,SAAS1N,EAAE,CAAC,MAAM,cAAcA,EAAEA,EAAE,UAAU2N,EAAE,CAAC,CAAC,EAAEI,GAAGV,GAAGQ,EAAE,EAAEG,GAAGjO,EAAE,GAAG8N,GAAG,CAAC,aAAa,CAAC,CAAC,EAAEI,GAAGZ,GAAGW,EAAE,EAAEE,GAAGnO,EAAE,GAAGyN,GAAG,CAAC,cAAc,CAAC,CAAC,EAAEW,GAAGd,GAAGa,EAAE,EAAEE,GAAGrO,EAAE,GAAGuN,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,EAAEe,GAAGhB,GAAGe,EAAE,EAAEE,GAAGvO,EAAE,GAAGuN,GAAG,CAAC,cAAc,SAAStN,EAAE,CAAC,MAAM,kBAAkBA,EAAEA,EAAE,cAAc,OAAO,aAAa,CAAC,CAAC,EAAEuO,GAAGlB,GAAGiB,EAAE,EAAEE,GAAGzO,EAAE,GAAGuN,GAAG,CAAC,KAAK,CAAC,CAAC,EAAEmB,GAAGpB,GAAGmB,EAAE,EAAEE,GAAG,CAAC,IAAI,SACxf,SAAS,IAAI,KAAK,YAAY,GAAG,UAAU,MAAM,aAAa,KAAK,YAAY,IAAI,SAAS,IAAI,KAAK,KAAK,cAAc,KAAK,cAAc,OAAO,aAAa,gBAAgB,cAAc,EAAEC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,MAAM,EAAEC,GAAG,CAAC,IAAI,SAAS,QAAQ,UAAU,KAAK,UAAU,MAAM,UAAU,EAAE,SAASC,GAAG7O,EAAE,CAAC,IAAIK,EAAE,KAAK,YAAY,OAAOA,EAAE,iBAAiBA,EAAE,iBAAiBL,CAAC,GAAGA,EAAE4O,GAAG5O,CAAC,GAAG,CAAC,CAACK,EAAEL,CAAC,EAAE,EAAE,CAAC,SAAS8N,IAAI,CAAC,OAAOe,EAAE,CAChS,IAAIC,GAAG/O,EAAE,GAAGyN,GAAG,CAAC,IAAI,SAASxN,EAAE,CAAC,GAAGA,EAAE,IAAI,CAAC,IAAIK,EAAEqO,GAAG1O,EAAE,GAAG,GAAGA,EAAE,IAAI,GAAoBK,IAAjB,eAAmB,OAAOA,CAAC,CAAC,OAAmBL,EAAE,OAAf,YAAqBA,EAAEkN,GAAGlN,CAAC,EAAOA,IAAL,GAAO,QAAQ,OAAO,aAAaA,CAAC,GAAeA,EAAE,OAAd,WAA8BA,EAAE,OAAZ,QAAiB2O,GAAG3O,EAAE,OAAO,GAAG,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB8N,GAAG,SAAS,SAAS9N,EAAE,CAAC,OAAmBA,EAAE,OAAf,WAAoBkN,GAAGlN,CAAC,EAAE,CAAC,EAAE,QAAQ,SAASA,EAAE,CAAC,OAAkBA,EAAE,OAAd,WAA8BA,EAAE,OAAZ,QAAiBA,EAAE,QAAQ,CAAC,EAAE,MAAM,SAASA,EAAE,CAAC,OACveA,EAAE,OAD2e,WACtekN,GAAGlN,CAAC,EAAcA,EAAE,OAAd,WAA8BA,EAAE,OAAZ,QAAiBA,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE+O,GAAG1B,GAAGyB,EAAE,EAAEE,GAAGjP,EAAE,GAAG8N,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,EAAEoB,GAAG5B,GAAG2B,EAAE,EAAEE,GAAGnP,EAAE,GAAGyN,GAAG,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiBM,EAAE,CAAC,EAAEqB,GAAG9B,GAAG6B,EAAE,EAAEE,GAAGrP,EAAE,GAAGuN,GAAG,CAAC,aAAa,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,EAAE+B,GAAGhC,GAAG+B,EAAE,EAAEE,GAAGvP,EAAE,GAAG8N,GAAG,CAAC,OAAO,SAAS7N,EAAE,CAAC,MAAM,WAAWA,EAAEA,EAAE,OAAO,gBAAgBA,EAAE,CAACA,EAAE,YAAY,CAAC,EACnf,OAAO,SAASA,EAAE,CAAC,MAAM,WAAWA,EAAEA,EAAE,OAAO,gBAAgBA,EAAE,CAACA,EAAE,YAAY,eAAeA,EAAE,CAACA,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAEuP,GAAGlC,GAAGiC,EAAE,EAAEE,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAEC,GAAGzM,IAAI,qBAAqB,OAAO0M,GAAG,KAAK1M,IAAI,iBAAiB,WAAW0M,GAAG,SAAS,cAAc,IAAIC,GAAG3M,IAAI,cAAc,QAAQ,CAAC0M,GAAGE,GAAG5M,KAAK,CAACyM,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAIG,GAAG,IAAwBC,GAAG,GAC1W,SAASC,GAAG/P,EAAEK,EAAE,CAAC,OAAOL,GAAG,IAAK,QAAQ,OAAWwP,GAAG,QAAQnP,EAAE,OAAO,OAAE,IAAK,UAAU,OAAaA,EAAE,UAAR,IAAgB,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,MAAM,GAAG,QAAQ,MAAM,EAAE,CAAC,CAAC,SAAS2P,GAAGhQ,EAAE,CAAC,OAAAA,EAAEA,EAAE,OAAwB,OAAOA,GAAlB,UAAqB,SAASA,EAAEA,EAAE,KAAK,IAAI,CAAC,IAAIiQ,GAAG,GAAG,SAASC,GAAGlQ,EAAEK,EAAE,CAAC,OAAOL,EAAC,CAAE,IAAK,iBAAiB,OAAOgQ,GAAG3P,CAAC,EAAE,IAAK,WAAW,OAAQA,EAAE,QAAP,GAAoB,MAAKyP,GAAG,GAAUD,IAAG,IAAK,YAAY,OAAO7P,EAAEK,EAAE,KAAKL,IAAI6P,IAAIC,GAAG,KAAK9P,EAAE,QAAQ,OAAO,IAAI,CAAC,CACld,SAASmQ,GAAGnQ,EAAEK,EAAE,CAAC,GAAG4P,GAAG,OAAyBjQ,IAAnB,kBAAsB,CAACyP,IAAIM,GAAG/P,EAAEK,CAAC,GAAGL,EAAEiN,GAAE,EAAGD,GAAGD,GAAGD,GAAG,KAAKmD,GAAG,GAAGjQ,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAQ,OAAO,KAAK,IAAK,WAAW,GAAG,EAAEK,EAAE,SAASA,EAAE,QAAQA,EAAE,UAAUA,EAAE,SAASA,EAAE,OAAO,CAAC,GAAGA,EAAE,MAAM,EAAEA,EAAE,KAAK,OAAO,OAAOA,EAAE,KAAK,GAAGA,EAAE,MAAM,OAAO,OAAO,aAAaA,EAAE,KAAK,CAAC,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAOuP,IAAWvP,EAAE,SAAT,KAAgB,KAAKA,EAAE,KAAK,QAAQ,OAAO,IAAI,CAAC,CACvY,IAAI+P,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,SAASC,GAAGrQ,EAAE,CAAC,IAAIK,EAAEL,GAAGA,EAAE,UAAUA,EAAE,SAAS,YAAW,EAAG,OAAgBK,IAAV,QAAY,CAAC,CAAC+P,GAAGpQ,EAAE,IAAI,EAAeK,IAAb,UAAoB,CAAC,SAASiQ,GAAGtQ,EAAEK,EAAEW,EAAED,EAAE,CAACyG,GAAGzG,CAAC,EAAEV,EAAEkQ,GAAGlQ,EAAE,UAAU,EAAE,EAAEA,EAAE,SAASW,EAAE,IAAIuM,GAAG,WAAW,SAAS,KAAKvM,EAAED,CAAC,EAAEf,EAAE,KAAK,CAAC,MAAMgB,EAAE,UAAUX,CAAC,CAAC,EAAE,CAAC,IAAImQ,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG1Q,EAAE,CAAC2Q,GAAG3Q,EAAE,CAAC,CAAC,CAAC,SAAS4Q,GAAG5Q,EAAE,CAAC,IAAIK,EAAEwQ,GAAG7Q,CAAC,EAAE,GAAGsF,GAAGjF,CAAC,EAAE,OAAOL,CAAC,CACpe,SAAS8Q,GAAG9Q,EAAEK,EAAE,CAAC,GAAcL,IAAX,SAAa,OAAOK,CAAC,CAAC,IAAI0Q,GAAG,GAAG,GAAG/N,GAAG,CAAC,IAAIgO,GAAG,GAAGhO,GAAG,CAAC,IAAIiO,GAAG,YAAY,SAAS,GAAG,CAACA,GAAG,CAAC,IAAIC,GAAG,SAAS,cAAc,KAAK,EAAEA,GAAG,aAAa,UAAU,SAAS,EAAED,GAAgB,OAAOC,GAAG,SAAvB,UAA8B,CAACF,GAAGC,EAAE,MAAMD,GAAG,GAAGD,GAAGC,KAAK,CAAC,SAAS,cAAc,EAAE,SAAS,aAAa,CAAC,SAASG,IAAI,CAACX,KAAKA,GAAG,YAAY,mBAAmBY,EAAE,EAAEX,GAAGD,GAAG,KAAK,CAAC,SAASY,GAAGpR,EAAE,CAAC,GAAaA,EAAE,eAAZ,SAA0B4Q,GAAGH,EAAE,EAAE,CAAC,IAAIpQ,EAAE,GAAGiQ,GAAGjQ,EAAEoQ,GAAGzQ,EAAEiH,GAAGjH,CAAC,CAAC,EAAE6H,GAAG6I,GAAGrQ,CAAC,CAAC,CAAC,CAC/b,SAASgR,GAAGrR,EAAEK,EAAEW,EAAE,CAAahB,IAAZ,WAAemR,KAAKX,GAAGnQ,EAAEoQ,GAAGzP,EAAEwP,GAAG,YAAY,mBAAmBY,EAAE,GAAgBpR,IAAb,YAAgBmR,GAAE,CAAE,CAAC,SAASG,GAAGtR,EAAE,CAAC,GAAuBA,IAApB,mBAAiCA,IAAV,SAAyBA,IAAZ,UAAc,OAAO4Q,GAAGH,EAAE,CAAC,CAAC,SAASc,GAAGvR,EAAEK,EAAE,CAAC,GAAaL,IAAV,QAAY,OAAO4Q,GAAGvQ,CAAC,CAAC,CAAC,SAASmR,GAAGxR,EAAEK,EAAE,CAAC,GAAaL,IAAV,SAAwBA,IAAX,SAAa,OAAO4Q,GAAGvQ,CAAC,CAAC,CAAC,SAASoR,GAAGzR,EAAEK,EAAE,CAAC,OAAOL,IAAIK,IAAQL,IAAJ,GAAO,EAAEA,IAAI,EAAEK,IAAIL,IAAIA,GAAGK,IAAIA,CAAC,CAAC,IAAIqR,GAAgB,OAAO,OAAO,IAA3B,WAA8B,OAAO,GAAGD,GACtZ,SAASE,GAAG3R,EAAEK,EAAE,CAAC,GAAGqR,GAAG1R,EAAEK,CAAC,EAAE,MAAM,GAAG,GAAc,OAAOL,GAAlB,UAA4BA,IAAP,MAAqB,OAAOK,GAAlB,UAA4BA,IAAP,KAAS,MAAM,GAAG,IAAIW,EAAE,OAAO,KAAKhB,CAAC,EAAEe,EAAE,OAAO,KAAKV,CAAC,EAAE,GAAGW,EAAE,SAASD,EAAE,OAAO,SAAS,IAAIA,EAAE,EAAEA,EAAEC,EAAE,OAAOD,IAAI,CAAC,IAAIT,EAAEU,EAAED,CAAC,EAAE,GAAG,CAACkC,GAAG,KAAK5C,EAAEC,CAAC,GAAG,CAACoR,GAAG1R,EAAEM,CAAC,EAAED,EAAEC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,SAASsR,GAAG5R,EAAE,CAAC,KAAKA,GAAGA,EAAE,YAAYA,EAAEA,EAAE,WAAW,OAAOA,CAAC,CACtU,SAAS6R,GAAG7R,EAAEK,EAAE,CAAC,IAAIW,EAAE4Q,GAAG5R,CAAC,EAAEA,EAAE,EAAE,QAAQe,EAAEC,GAAG,CAAC,GAAOA,EAAE,WAAN,EAAe,CAA0B,GAAzBD,EAAEf,EAAEgB,EAAE,YAAY,OAAUhB,GAAGK,GAAGU,GAAGV,EAAE,MAAM,CAAC,KAAKW,EAAE,OAAOX,EAAEL,CAAC,EAAEA,EAAEe,CAAC,CAACf,EAAE,CAAC,KAAKgB,GAAG,CAAC,GAAGA,EAAE,YAAY,CAACA,EAAEA,EAAE,YAAY,MAAMhB,CAAC,CAACgB,EAAEA,EAAE,UAAU,CAACA,EAAE,MAAM,CAACA,EAAE4Q,GAAG5Q,CAAC,CAAC,CAAC,CAAC,SAAS8Q,GAAG9R,EAAEK,EAAE,CAAC,OAAOL,GAAGK,EAAEL,IAAIK,EAAE,GAAGL,GAAOA,EAAE,WAAN,EAAe,GAAGK,GAAOA,EAAE,WAAN,EAAeyR,GAAG9R,EAAEK,EAAE,UAAU,EAAE,aAAaL,EAAEA,EAAE,SAASK,CAAC,EAAEL,EAAE,wBAAwB,CAAC,EAAEA,EAAE,wBAAwBK,CAAC,EAAE,IAAI,GAAG,EAAE,CAC9Z,SAAS0R,IAAI,CAAC,QAAQ/R,EAAE,OAAOK,EAAEkF,KAAKlF,aAAaL,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAIgB,EAAa,OAAOX,EAAE,cAAc,SAAS,MAA3C,QAA+C,MAAS,CAACW,EAAE,EAAE,CAAC,GAAGA,EAAEhB,EAAEK,EAAE,kBAAmB,OAAMA,EAAEkF,GAAGvF,EAAE,QAAQ,CAAC,CAAC,OAAOK,CAAC,CAAC,SAAS2R,GAAGhS,EAAE,CAAC,IAAIK,EAAEL,GAAGA,EAAE,UAAUA,EAAE,SAAS,YAAW,EAAG,OAAOK,IAAcA,IAAV,UAAuBL,EAAE,OAAX,QAA4BA,EAAE,OAAb,UAA2BA,EAAE,OAAV,OAAwBA,EAAE,OAAV,OAA6BA,EAAE,OAAf,aAAmCK,IAAb,YAAyBL,EAAE,kBAAX,OAA2B,CACxa,SAASiS,GAAGjS,EAAE,CAAC,IAAIK,EAAE0R,GAAE,EAAG/Q,EAAEhB,EAAE,YAAYe,EAAEf,EAAE,eAAe,GAAGK,IAAIW,GAAGA,GAAGA,EAAE,eAAe8Q,GAAG9Q,EAAE,cAAc,gBAAgBA,CAAC,EAAE,CAAC,GAAUD,IAAP,MAAUiR,GAAGhR,CAAC,GAAE,GAAGX,EAAEU,EAAE,MAAMf,EAAEe,EAAE,IAAaf,IAAT,SAAaA,EAAEK,GAAG,mBAAmBW,EAAEA,EAAE,eAAeX,EAAEW,EAAE,aAAa,KAAK,IAAIhB,EAAEgB,EAAE,MAAM,MAAM,UAAUhB,GAAGK,EAAEW,EAAE,eAAe,WAAWX,EAAE,aAAa,OAAOL,EAAE,aAAa,CAACA,EAAEA,EAAE,eAAe,IAAIM,EAAEU,EAAE,YAAY,OAAOI,EAAE,KAAK,IAAIL,EAAE,MAAMT,CAAC,EAAES,EAAWA,EAAE,MAAX,OAAeK,EAAE,KAAK,IAAIL,EAAE,IAAIT,CAAC,EAAE,CAACN,EAAE,QAAQoB,EAAEL,IAAIT,EAAES,EAAEA,EAAEK,EAAEA,EAAEd,GAAGA,EAAEuR,GAAG7Q,EAAEI,CAAC,EAAE,IAAID,EAAE0Q,GAAG7Q,EACvfD,CAAC,EAAET,GAAGa,IAAQnB,EAAE,aAAN,GAAkBA,EAAE,aAAaM,EAAE,MAAMN,EAAE,eAAeM,EAAE,QAAQN,EAAE,YAAYmB,EAAE,MAAMnB,EAAE,cAAcmB,EAAE,UAAUd,EAAEA,EAAE,YAAW,EAAGA,EAAE,SAASC,EAAE,KAAKA,EAAE,MAAM,EAAEN,EAAE,gBAAe,EAAGoB,EAAEL,GAAGf,EAAE,SAASK,CAAC,EAAEL,EAAE,OAAOmB,EAAE,KAAKA,EAAE,MAAM,IAAId,EAAE,OAAOc,EAAE,KAAKA,EAAE,MAAM,EAAEnB,EAAE,SAASK,CAAC,GAAG,EAAM,IAALA,EAAE,GAAOL,EAAEgB,EAAEhB,EAAEA,EAAE,YAAgBA,EAAE,WAAN,GAAgBK,EAAE,KAAK,CAAC,QAAQL,EAAE,KAAKA,EAAE,WAAW,IAAIA,EAAE,SAAS,CAAC,EAAyC,IAA1B,OAAOgB,EAAE,OAAtB,YAA6BA,EAAE,MAAK,EAAOA,EAAE,EAAEA,EAAEX,EAAE,OAAOW,IAAIhB,EAAEK,EAAEW,CAAC,EAAEhB,EAAE,QAAQ,WAAWA,EAAE,KAAKA,EAAE,QAAQ,UAAUA,EAAE,GAAG,CAAC,CACzf,IAAIkS,GAAGlP,IAAI,iBAAiB,UAAU,IAAI,SAAS,aAAamP,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,GAC3F,SAASC,GAAGvS,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEC,EAAE,SAASA,EAAEA,EAAE,SAAaA,EAAE,WAAN,EAAeA,EAAEA,EAAE,cAAcsR,IAAUH,IAAN,MAAUA,KAAK5M,GAAGxE,CAAC,IAAIA,EAAEoR,GAAG,mBAAmBpR,GAAGiR,GAAGjR,CAAC,EAAEA,EAAE,CAAC,MAAMA,EAAE,eAAe,IAAIA,EAAE,YAAY,GAAGA,GAAGA,EAAE,eAAeA,EAAE,cAAc,aAAa,QAAQ,aAAY,EAAGA,EAAE,CAAC,WAAWA,EAAE,WAAW,aAAaA,EAAE,aAAa,UAAUA,EAAE,UAAU,YAAYA,EAAE,WAAW,GAAGsR,IAAIV,GAAGU,GAAGtR,CAAC,IAAIsR,GAAGtR,EAAEA,EAAEwP,GAAG6B,GAAG,UAAU,EAAE,EAAErR,EAAE,SAASV,EAAE,IAAIkN,GAAG,WAAW,SAAS,KAAKlN,EAAEW,CAAC,EAAEhB,EAAE,KAAK,CAAC,MAAMK,EAAE,UAAUU,CAAC,CAAC,EAAEV,EAAE,OAAO8R,KAAK,CACtf,SAASK,GAAGxS,EAAEK,EAAE,CAAC,IAAIW,EAAE,GAAG,OAAAA,EAAEhB,EAAE,YAAW,CAAE,EAAEK,EAAE,cAAcW,EAAE,SAAShB,CAAC,EAAE,SAASK,EAAEW,EAAE,MAAMhB,CAAC,EAAE,MAAMK,EAASW,CAAC,CAAC,IAAIyR,GAAG,CAAC,aAAaD,GAAG,YAAY,cAAc,EAAE,mBAAmBA,GAAG,YAAY,oBAAoB,EAAE,eAAeA,GAAG,YAAY,gBAAgB,EAAE,cAAcA,GAAG,aAAa,eAAe,CAAC,EAAEE,GAAG,GAAGC,GAAG,GACvU3P,KAAK2P,GAAG,SAAS,cAAc,KAAK,EAAE,MAAM,mBAAmB,SAAS,OAAOF,GAAG,aAAa,UAAU,OAAOA,GAAG,mBAAmB,UAAU,OAAOA,GAAG,eAAe,WAAW,oBAAoB,QAAQ,OAAOA,GAAG,cAAc,YAAY,SAASG,GAAG5S,EAAE,CAAC,GAAG0S,GAAG1S,CAAC,EAAE,OAAO0S,GAAG1S,CAAC,EAAE,GAAG,CAACyS,GAAGzS,CAAC,EAAE,OAAOA,EAAE,IAAIK,EAAEoS,GAAGzS,CAAC,EAAEgB,EAAE,IAAIA,KAAKX,EAAE,GAAGA,EAAE,eAAeW,CAAC,GAAGA,KAAK2R,GAAG,OAAOD,GAAG1S,CAAC,EAAEK,EAAEW,CAAC,EAAE,OAAOhB,CAAC,CAAC,IAAI6S,GAAGD,GAAG,cAAc,EAAEE,GAAGF,GAAG,oBAAoB,EAAEG,GAAGH,GAAG,gBAAgB,EAAEI,GAAGJ,GAAG,eAAe,EAAEK,GAAG,IAAI,IAAIC,GAAG,smBAAsmB,MAAM,GAAG,EAClmC,SAASC,GAAGnT,EAAEK,EAAE,CAAC4S,GAAG,IAAIjT,EAAEK,CAAC,EAAEyC,GAAGzC,EAAE,CAACL,CAAC,CAAC,CAAC,CAAC,QAAQoT,GAAG,EAAEA,GAAGF,GAAG,OAAOE,KAAK,CAAC,IAAIC,GAAGH,GAAGE,EAAE,EAAEE,GAAGD,GAAG,cAAcE,GAAGF,GAAG,CAAC,EAAE,YAAW,EAAGA,GAAG,MAAM,CAAC,EAAEF,GAAGG,GAAG,KAAKC,EAAE,CAAC,CAACJ,GAAGN,GAAG,gBAAgB,EAAEM,GAAGL,GAAG,sBAAsB,EAAEK,GAAGJ,GAAG,kBAAkB,EAAEI,GAAG,WAAW,eAAe,EAAEA,GAAG,UAAU,SAAS,EAAEA,GAAG,WAAW,QAAQ,EAAEA,GAAGH,GAAG,iBAAiB,EAAEjQ,GAAG,eAAe,CAAC,WAAW,WAAW,CAAC,EAAEA,GAAG,eAAe,CAAC,WAAW,WAAW,CAAC,EAAEA,GAAG,iBAAiB,CAAC,aAAa,aAAa,CAAC,EAC3dA,GAAG,iBAAiB,CAAC,aAAa,aAAa,CAAC,EAAED,GAAG,WAAW,oEAAoE,MAAM,GAAG,CAAC,EAAEA,GAAG,WAAW,uFAAuF,MAAM,GAAG,CAAC,EAAEA,GAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,OAAO,CAAC,EAAEA,GAAG,mBAAmB,2DAA2D,MAAM,GAAG,CAAC,EAAEA,GAAG,qBAAqB,6DAA6D,MAAM,GAAG,CAAC,EACngBA,GAAG,sBAAsB,8DAA8D,MAAM,GAAG,CAAC,EAAE,IAAI0Q,GAAG,6NAA6N,MAAM,GAAG,EAAEC,GAAG,IAAI,IAAI,0CAA0C,MAAM,GAAG,EAAE,OAAOD,EAAE,CAAC,EAC5Z,SAASE,GAAG1T,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,MAAM,gBAAgBA,EAAE,cAAcgB,EAAEwH,GAAGzH,EAAEV,EAAE,OAAOL,CAAC,EAAEA,EAAE,cAAc,IAAI,CACxG,SAAS2Q,GAAG3Q,EAAEK,EAAE,CAACA,GAAOA,EAAE,KAAP,EAAU,QAAQW,EAAE,EAAEA,EAAEhB,EAAE,OAAOgB,IAAI,CAAC,IAAID,EAAEf,EAAEgB,CAAC,EAAEV,EAAES,EAAE,MAAMA,EAAEA,EAAE,UAAUf,EAAE,CAAC,IAAIoB,EAAE,OAAO,GAAGf,EAAE,QAAQc,EAAEJ,EAAE,OAAO,EAAE,GAAGI,EAAEA,IAAI,CAAC,IAAID,EAAEH,EAAEI,CAAC,EAAEF,EAAEC,EAAE,SAAS/B,EAAE+B,EAAE,cAA2B,GAAbA,EAAEA,EAAE,SAAYD,IAAIG,GAAGd,EAAE,qBAAoB,EAAG,MAAMN,EAAE0T,GAAGpT,EAAEY,EAAE/B,CAAC,EAAEiC,EAAEH,CAAC,KAAM,KAAIE,EAAE,EAAEA,EAAEJ,EAAE,OAAOI,IAAI,CAAoD,GAAnDD,EAAEH,EAAEI,CAAC,EAAEF,EAAEC,EAAE,SAAS/B,EAAE+B,EAAE,cAAcA,EAAEA,EAAE,SAAYD,IAAIG,GAAGd,EAAE,qBAAoB,EAAG,MAAMN,EAAE0T,GAAGpT,EAAEY,EAAE/B,CAAC,EAAEiC,EAAEH,CAAC,CAAC,CAAC,CAAC,GAAGmH,GAAG,MAAMpI,EAAEqI,GAAGD,GAAG,GAAGC,GAAG,KAAKrI,CAAE,CAC5a,SAAS,EAAEA,EAAEK,EAAE,CAAC,IAAIW,EAAEX,EAAEsT,EAAE,EAAW3S,IAAT,SAAaA,EAAEX,EAAEsT,EAAE,EAAE,IAAI,KAAK,IAAI5S,EAAEf,EAAE,WAAWgB,EAAE,IAAID,CAAC,IAAI6S,GAAGvT,EAAEL,EAAE,EAAE,EAAE,EAAEgB,EAAE,IAAID,CAAC,EAAE,CAAC,SAAS8S,GAAG7T,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAE,EAAEV,IAAIU,GAAG,GAAG6S,GAAG5S,EAAEhB,EAAEe,EAAEV,CAAC,CAAC,CAAC,IAAIyT,GAAG,kBAAkB,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,SAASC,GAAG/T,EAAE,CAAC,GAAG,CAACA,EAAE8T,EAAE,EAAE,CAAC9T,EAAE8T,EAAE,EAAE,GAAGlR,GAAG,QAAQ,SAASvC,EAAE,CAAqBA,IAApB,oBAAwBoT,GAAG,IAAIpT,CAAC,GAAGwT,GAAGxT,EAAE,GAAGL,CAAC,EAAE6T,GAAGxT,EAAE,GAAGL,CAAC,EAAE,CAAC,EAAE,IAAIK,EAAML,EAAE,WAAN,EAAeA,EAAEA,EAAE,cAAqBK,IAAP,MAAUA,EAAEyT,EAAE,IAAIzT,EAAEyT,EAAE,EAAE,GAAGD,GAAG,kBAAkB,GAAGxT,CAAC,EAAE,CAAC,CACjb,SAASuT,GAAG5T,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAO8L,GAAGxM,CAAC,EAAC,CAAE,IAAK,GAAE,IAAIC,EAAEkM,GAAG,MAAM,IAAK,GAAElM,EAAEoM,GAAG,MAAM,QAAQpM,EAAEmM,EAAE,CAACzL,EAAEV,EAAE,KAAK,KAAKD,EAAEW,EAAEhB,CAAC,EAAEM,EAAE,OAAO,CAACyH,IAAmB1H,IAAf,cAAgCA,IAAd,aAA2BA,IAAV,UAAcC,EAAE,IAAIS,EAAWT,IAAT,OAAWN,EAAE,iBAAiBK,EAAEW,EAAE,CAAC,QAAQ,GAAG,QAAQV,CAAC,CAAC,EAAEN,EAAE,iBAAiBK,EAAEW,EAAE,EAAE,EAAWV,IAAT,OAAWN,EAAE,iBAAiBK,EAAEW,EAAE,CAAC,QAAQV,CAAC,CAAC,EAAEN,EAAE,iBAAiBK,EAAEW,EAAE,EAAE,CAAC,CAClV,SAAS2L,GAAG3M,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,IAAIc,EAAEL,EAAE,GAAQ,EAAAV,EAAE,IAAS,EAAAA,EAAE,IAAWU,IAAP,KAASf,EAAE,OAAO,CAAC,GAAUe,IAAP,KAAS,OAAO,IAAII,EAAEJ,EAAE,IAAI,GAAOI,IAAJ,GAAWA,IAAJ,EAAM,CAAC,IAAID,EAAEH,EAAE,UAAU,cAAc,GAAGG,IAAIZ,GAAOY,EAAE,WAAN,GAAgBA,EAAE,aAAaZ,EAAE,MAAM,GAAOa,IAAJ,EAAM,IAAIA,EAAEJ,EAAE,OAAcI,IAAP,MAAU,CAAC,IAAIF,EAAEE,EAAE,IAAI,IAAOF,IAAJ,GAAWA,IAAJ,KAASA,EAAEE,EAAE,UAAU,cAAcF,IAAIX,GAAOW,EAAE,WAAN,GAAgBA,EAAE,aAAaX,GAAE,OAAOa,EAAEA,EAAE,MAAM,CAAC,KAAYD,IAAP,MAAU,CAAS,GAARC,EAAE4K,GAAG7K,CAAC,EAAYC,IAAP,KAAS,OAAe,GAARF,EAAEE,EAAE,IAAWF,IAAJ,GAAWA,IAAJ,EAAM,CAACF,EAAEK,EAAED,EAAE,SAASnB,CAAC,CAACkB,EAAEA,EAAE,UAAU,CAAC,CAACH,EAAEA,EAAE,MAAM,CAAC8G,GAAG,UAAU,CAAC,IAAI9G,EAAEK,EAAEd,EAAE2G,GAAGjG,CAAC,EAAEG,EAAE,GACpfnB,EAAE,CAAC,IAAIkB,EAAE+R,GAAG,IAAIjT,CAAC,EAAE,GAAYkB,IAAT,OAAW,CAAC,IAAID,EAAEsM,GAAGnO,EAAEY,EAAE,OAAOA,EAAC,CAAE,IAAK,WAAW,GAAOkN,GAAGlM,CAAC,IAAR,EAAU,MAAMhB,EAAE,IAAK,UAAU,IAAK,QAAQiB,EAAE8N,GAAG,MAAM,IAAK,UAAU3P,EAAE,QAAQ6B,EAAEkN,GAAG,MAAM,IAAK,WAAW/O,EAAE,OAAO6B,EAAEkN,GAAG,MAAM,IAAK,aAAa,IAAK,YAAYlN,EAAEkN,GAAG,MAAM,IAAK,QAAQ,GAAOnN,EAAE,SAAN,EAAa,MAAMhB,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAciB,EAAE8M,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO9M,EAC1iBgN,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAahN,EAAEkO,GAAG,MAAM,KAAK0D,GAAG,KAAKC,GAAG,KAAKC,GAAG9R,EAAEoN,GAAG,MAAM,KAAK2E,GAAG/R,EAAEoO,GAAG,MAAM,IAAK,SAASpO,EAAEwM,GAAG,MAAM,IAAK,QAAQxM,EAAEsO,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQtO,EAAEsN,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYtN,EAAEgO,EAAE,CAAC,IAAIzP,GAAOa,EAAE,KAAP,EAAUM,EAAE,CAACnB,GAAcQ,IAAX,SAAaJ,EAAEJ,EAAS0B,IAAP,KAASA,EAAE,UAAU,KAAKA,EAAE1B,EAAE,GAAG,QAAQG,EAAEoB,EAAEtB,EAC7eE,IAD+e,MAC5e,CAACF,EAAEE,EAAE,IAAIY,EAAEd,EAAE,UAAsF,GAAxEA,EAAE,MAAN,GAAkBc,IAAP,OAAWd,EAAEc,EAASX,IAAP,OAAWW,EAAEuH,GAAGnI,EAAEC,CAAC,EAAQW,GAAN,MAASf,EAAE,KAAKwU,GAAGrU,EAAEY,EAAEd,CAAC,CAAC,IAAOkB,EAAE,MAAMhB,EAAEA,EAAE,MAAM,CAAC,EAAEH,EAAE,SAAS0B,EAAE,IAAID,EAAEC,EAAE9B,EAAE,KAAK4B,EAAEV,CAAC,EAAEa,EAAE,KAAK,CAAC,MAAMD,EAAE,UAAU1B,CAAC,CAAC,EAAE,CAAC,CAAC,GAAQ,EAAAa,EAAE,GAAG,CAACL,EAAE,CAAyE,GAAxEkB,EAAgBlB,IAAd,aAAiCA,IAAhB,cAAkBiB,EAAejB,IAAb,YAA+BA,IAAf,aAAoBkB,GAAGF,IAAIgG,KAAK5H,EAAE4B,EAAE,eAAeA,EAAE,eAAe+K,GAAG3M,CAAC,GAAGA,EAAE6U,EAAE,GAAG,MAAMjU,EAAE,IAAGiB,GAAGC,KAAGA,EAAEZ,EAAE,SAASA,EAAEA,GAAGY,EAAEZ,EAAE,eAAeY,EAAE,aAAaA,EAAE,aAAa,OAAUD,GAAM7B,EAAE4B,EAAE,eAAeA,EAAE,UAAUC,EAAEF,EAAE3B,EAAEA,EAAE2M,GAAG3M,CAAC,EAAE,KAC1eA,IAD+e,OAC3euB,EAAE8H,GAAGrJ,CAAC,EAAEA,IAAIuB,GAAOvB,EAAE,MAAN,GAAeA,EAAE,MAAN,KAAWA,EAAE,QAAU6B,EAAE,KAAK7B,EAAE2B,GAAKE,IAAI7B,GAAE,CAAgU,GAA/TI,EAAEuO,GAAGxN,EAAE,eAAeX,EAAE,eAAeD,EAAE,SAA0BK,IAAf,cAAkCA,IAAhB,iBAAkBR,EAAEyP,GAAG1O,EAAE,iBAAiBX,EAAE,iBAAiBD,EAAE,WAAUgB,EAAQM,GAAN,KAAQC,EAAE2P,GAAG5P,CAAC,EAAExB,EAAQL,GAAN,KAAQ8B,EAAE2P,GAAGzR,CAAC,EAAE8B,EAAE,IAAI1B,EAAEe,EAAEZ,EAAE,QAAQsB,EAAED,EAAEV,CAAC,EAAEY,EAAE,OAAOP,EAAEO,EAAE,cAAczB,EAAEc,EAAE,KAAKwL,GAAGzL,CAAC,IAAIS,IAAIvB,EAAE,IAAIA,EAAEI,EAAED,EAAE,QAAQP,EAAE4B,EAAEV,CAAC,EAAEd,EAAE,OAAOC,EAAED,EAAE,cAAcmB,EAAEJ,EAAEf,GAAGmB,EAAEJ,EAAKU,GAAG7B,EAAEiB,EAAE,CAAa,IAAZb,EAAEyB,EAAErB,EAAER,EAAEO,EAAE,EAAMF,EAAED,EAAEC,EAAEA,EAAEyU,GAAGzU,CAAC,EAAEE,IAAQ,IAAJF,EAAE,EAAMc,EAAEX,EAAEW,EAAEA,EAAE2T,GAAG3T,CAAC,EAAEd,IAAI,KAAK,EAAEE,EAAEF,GAAGD,EAAE0U,GAAG1U,CAAC,EAAEG,IAAI,KAAK,EAAEF,EAAEE,GAAGC,EACpfsU,GAAGtU,CAAC,EAAEH,IAAI,KAAKE,KAAK,CAAC,GAAGH,IAAII,GAAUA,IAAP,MAAUJ,IAAII,EAAE,UAAU,MAAMS,EAAEb,EAAE0U,GAAG1U,CAAC,EAAEI,EAAEsU,GAAGtU,CAAC,CAAC,CAACJ,EAAE,IAAI,MAAMA,EAAE,KAAYyB,IAAP,MAAUkT,GAAGhT,EAAED,EAAED,EAAEzB,EAAE,EAAE,EAASJ,IAAP,MAAiBuB,IAAP,MAAUwT,GAAGhT,EAAER,EAAEvB,EAAEI,EAAE,EAAE,CAAC,CAAE,CAACQ,EAAE,CAAyD,GAAxDkB,EAAEH,EAAE8P,GAAG9P,CAAC,EAAE,OAAOE,EAAEC,EAAE,UAAUA,EAAE,SAAS,YAAW,EAAiBD,IAAX,UAAwBA,IAAV,SAAsBC,EAAE,OAAX,OAAgB,IAAIkT,EAAGtD,WAAWT,GAAGnP,CAAC,EAAE,GAAG6P,GAAGqD,EAAG5C,OAAO,CAAC4C,EAAG9C,GAAG,IAAI+C,EAAGhD,EAAE,MAAMpQ,EAAEC,EAAE,WAAqBD,EAAE,YAAW,IAAvB,UAAyCC,EAAE,OAAf,YAA+BA,EAAE,OAAZ,WAAoBkT,EAAG7C,IAAI,GAAG6C,IAAKA,EAAGA,EAAGpU,EAAEe,CAAC,GAAG,CAACuP,GAAGnP,EAAEiT,EAAGpT,EAAEV,CAAC,EAAE,MAAMN,CAAC,CAACqU,GAAIA,EAAGrU,EAAEkB,EAAEH,CAAC,EAAef,IAAb,aAAiBqU,EAAGnT,EAAE,gBAClfmT,EAAG,YAAuBnT,EAAE,OAAb,UAAmB0E,GAAG1E,EAAE,SAASA,EAAE,KAAK,CAAC,CAAmB,OAAlBmT,EAAGtT,EAAE8P,GAAG9P,CAAC,EAAE,OAAcf,EAAC,CAAE,IAAK,WAAaqQ,GAAGgE,CAAE,GAAYA,EAAG,kBAAZ,UAA4BlC,GAAGkC,EAAGjC,GAAGrR,EAAEsR,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,GAAG,GAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,GAAG,GAAGC,GAAGpR,EAAEH,EAAEV,CAAC,EAAE,MAAM,IAAK,kBAAkB,GAAG4R,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGpR,EAAEH,EAAEV,CAAC,CAAC,CAAC,IAAIgU,EAAG,GAAG7E,GAAGpP,EAAE,CAAC,OAAOL,EAAC,CAAE,IAAK,mBAAmB,IAAIuU,EAAG,qBAAqB,MAAMlU,EAAE,IAAK,iBAAiBkU,EAAG,mBACpe,MAAMlU,EAAE,IAAK,oBAAoBkU,EAAG,sBAAsB,MAAMlU,CAAC,CAACkU,EAAG,MAAM,MAAMtE,GAAGF,GAAG/P,EAAEgB,CAAC,IAAIuT,EAAG,oBAAgCvU,IAAZ,WAAqBgB,EAAE,UAAR,MAAkBuT,EAAG,sBAAsBA,IAAK3E,IAAW5O,EAAE,SAAT,OAAkBiP,IAA2BsE,IAAvB,qBAA+CA,IAArB,oBAAyBtE,KAAKqE,EAAGrH,GAAE,IAAKH,GAAGxM,EAAEyM,GAAG,UAAUD,GAAGA,GAAG,MAAMA,GAAG,YAAYmD,GAAG,KAAKoE,EAAG9D,GAAGxP,EAAEwT,CAAE,EAAE,EAAEF,EAAG,SAASE,EAAG,IAAI9F,GAAG8F,EAAGvU,EAAE,KAAKgB,EAAEV,CAAC,EAAEa,EAAE,KAAK,CAAC,MAAMoT,EAAG,UAAUF,CAAE,CAAC,EAAEC,EAAGC,EAAG,KAAKD,GAAIA,EAAGtE,GAAGhP,CAAC,EAASsT,IAAP,OAAYC,EAAG,KAAKD,OAAUA,EAAG3E,GAAGO,GAAGlQ,EAAEgB,CAAC,EAAEmP,GAAGnQ,EAAEgB,CAAC,KAAED,EAAEwP,GAAGxP,EAAE,eAAe,EAC1f,EAAEA,EAAE,SAAST,EAAE,IAAImO,GAAG,gBAAgB,cAAc,KAAKzN,EAAEV,CAAC,EAAEa,EAAE,KAAK,CAAC,MAAMb,EAAE,UAAUS,CAAC,CAAC,EAAET,EAAE,KAAKgU,GAAG,CAAC3D,GAAGxP,EAAEd,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS2T,GAAGhU,EAAEK,EAAEW,EAAE,CAAC,MAAM,CAAC,SAAShB,EAAE,SAASK,EAAE,cAAcW,CAAC,CAAC,CAAC,SAASuP,GAAGvQ,EAAEK,EAAE,CAAC,QAAQW,EAAEX,EAAE,UAAUU,EAAE,GAAUf,IAAP,MAAU,CAAC,IAAIM,EAAEN,EAAEoB,EAAEd,EAAE,UAAcA,EAAE,MAAN,GAAkBc,IAAP,OAAWd,EAAEc,EAAEA,EAAE0G,GAAG9H,EAAEgB,CAAC,EAAQI,GAAN,MAASL,EAAE,QAAQiT,GAAGhU,EAAEoB,EAAEd,CAAC,CAAC,EAAEc,EAAE0G,GAAG9H,EAAEK,CAAC,EAAQe,GAAN,MAASL,EAAE,KAAKiT,GAAGhU,EAAEoB,EAAEd,CAAC,CAAC,GAAGN,EAAEA,EAAE,MAAM,CAAC,OAAOe,CAAC,CAAC,SAASmT,GAAGlU,EAAE,CAAC,GAAUA,IAAP,KAAS,OAAO,KAAK,GAAGA,EAAEA,EAAE,aAAaA,GAAOA,EAAE,MAAN,GAAW,OAAOA,GAAI,IAAI,CACnd,SAASmU,GAAGnU,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,QAAQc,EAAEf,EAAE,WAAWc,EAAE,GAAUH,IAAP,MAAUA,IAAID,GAAG,CAAC,IAAIG,EAAEF,EAAEC,EAAEC,EAAE,UAAU/B,EAAE+B,EAAE,UAAU,GAAUD,IAAP,MAAUA,IAAIF,EAAE,MAAUG,EAAE,MAAN,GAAkB/B,IAAP,OAAW+B,EAAE/B,EAAEmB,GAAGW,EAAE6G,GAAG9G,EAAEI,CAAC,EAAQH,GAAN,MAASE,EAAE,QAAQ6S,GAAGhT,EAAEC,EAAEC,CAAC,CAAC,GAAGZ,IAAIW,EAAE6G,GAAG9G,EAAEI,CAAC,EAAQH,GAAN,MAASE,EAAE,KAAK6S,GAAGhT,EAAEC,EAAEC,CAAC,CAAC,IAAIF,EAAEA,EAAE,MAAM,CAAKG,EAAE,SAAN,GAAcnB,EAAE,KAAK,CAAC,MAAMK,EAAE,UAAUc,CAAC,CAAC,CAAC,CAAC,IAAIqT,GAAG,SAASC,GAAG,iBAAiB,SAASC,GAAG1U,EAAE,CAAC,OAAkB,OAAOA,GAAlB,SAAoBA,EAAE,GAAGA,GAAG,QAAQwU,GAAG;AAAA,CAAI,EAAE,QAAQC,GAAG,EAAE,CAAC,CAAC,SAASE,GAAG3U,EAAEK,EAAEW,EAAE,CAAS,GAARX,EAAEqU,GAAGrU,CAAC,EAAKqU,GAAG1U,CAAC,IAAIK,GAAGW,EAAE,MAAM,MAAM3B,EAAE,GAAG,CAAC,CAAE,CAAC,SAASuV,IAAI,EAC7e,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG/U,EAAEK,EAAE,CAAC,OAAmBL,IAAb,YAA6BA,IAAb,YAA2B,OAAOK,EAAE,UAApB,UAAyC,OAAOA,EAAE,UAApB,UAAyC,OAAOA,EAAE,yBAApB,UAAoDA,EAAE,0BAAT,MAAwCA,EAAE,wBAAwB,QAAhC,IAAsC,CAC5P,IAAI2U,GAAgB,OAAO,YAApB,WAA+B,WAAW,OAAOC,GAAgB,OAAO,cAApB,WAAiC,aAAa,OAAOC,GAAgB,OAAO,SAApB,WAA4B,QAAQ,OAAOC,GAAgB,OAAO,gBAApB,WAAmC,eAA6B,OAAOD,GAArB,IAAwB,SAASlV,EAAE,CAAC,OAAOkV,GAAG,QAAQ,IAAI,EAAE,KAAKlV,CAAC,EAAE,MAAMoV,EAAE,CAAC,EAAEJ,GAAG,SAASI,GAAGpV,EAAE,CAAC,WAAW,UAAU,CAAC,MAAMA,CAAE,CAAC,CAAC,CACpV,SAASqV,GAAGrV,EAAEK,EAAE,CAAC,IAAIW,EAAEX,EAAEU,EAAE,EAAE,EAAE,CAAC,IAAIT,EAAEU,EAAE,YAA6B,GAAjBhB,EAAE,YAAYgB,CAAC,EAAKV,GAAOA,EAAE,WAAN,EAAe,GAAGU,EAAEV,EAAE,KAAYU,IAAP,KAAS,CAAC,GAAOD,IAAJ,EAAM,CAACf,EAAE,YAAYM,CAAC,EAAE+L,GAAGhM,CAAC,EAAE,MAAM,CAACU,GAAG,MAAWC,IAAN,KAAgBA,IAAP,MAAiBA,IAAP,MAAUD,IAAIC,EAAEV,CAAC,OAAOU,GAAGqL,GAAGhM,CAAC,CAAC,CAAC,SAASiV,GAAGtV,EAAE,CAAC,KAAWA,GAAN,KAAQA,EAAEA,EAAE,YAAY,CAAC,IAAIK,EAAEL,EAAE,SAAS,GAAOK,IAAJ,GAAWA,IAAJ,EAAM,MAAM,GAAOA,IAAJ,EAAM,CAAU,GAATA,EAAEL,EAAE,KAAcK,IAAN,KAAgBA,IAAP,MAAiBA,IAAP,KAAS,MAAM,GAAUA,IAAP,KAAS,OAAO,IAAI,CAAC,CAAC,OAAOL,CAAC,CACjY,SAASuV,GAAGvV,EAAE,CAACA,EAAEA,EAAE,gBAAgB,QAAQK,EAAE,EAAEL,GAAG,CAAC,GAAOA,EAAE,WAAN,EAAe,CAAC,IAAIgB,EAAEhB,EAAE,KAAK,GAASgB,IAAN,KAAgBA,IAAP,MAAiBA,IAAP,KAAS,CAAC,GAAOX,IAAJ,EAAM,OAAOL,EAAEK,GAAG,MAAYW,IAAP,MAAUX,GAAG,CAACL,EAAEA,EAAE,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIwV,GAAG,KAAK,OAAM,EAAG,SAAS,EAAE,EAAE,MAAM,CAAC,EAAEC,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGvB,GAAG,oBAAoBuB,GAAG7B,GAAG,iBAAiB6B,GAAGG,GAAG,oBAAoBH,GAAGI,GAAG,kBAAkBJ,GAClX,SAASzJ,GAAG/L,EAAE,CAAC,IAAIK,EAAEL,EAAEyV,EAAE,EAAE,GAAGpV,EAAE,OAAOA,EAAE,QAAQW,EAAEhB,EAAE,WAAWgB,GAAG,CAAC,GAAGX,EAAEW,EAAEiT,EAAE,GAAGjT,EAAEyU,EAAE,EAAE,CAAe,GAAdzU,EAAEX,EAAE,UAAoBA,EAAE,QAAT,MAAuBW,IAAP,MAAiBA,EAAE,QAAT,KAAe,IAAIhB,EAAEuV,GAAGvV,CAAC,EAASA,IAAP,MAAU,CAAC,GAAGgB,EAAEhB,EAAEyV,EAAE,EAAE,OAAOzU,EAAEhB,EAAEuV,GAAGvV,CAAC,CAAC,CAAC,OAAOK,CAAC,CAACL,EAAEgB,EAAEA,EAAEhB,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,SAASsH,GAAGtH,EAAE,CAAC,OAAAA,EAAEA,EAAEyV,EAAE,GAAGzV,EAAEiU,EAAE,EAAQ,CAACjU,GAAOA,EAAE,MAAN,GAAeA,EAAE,MAAN,GAAgBA,EAAE,MAAP,IAAgBA,EAAE,MAAN,EAAU,KAAKA,CAAC,CAAC,SAAS6Q,GAAG7Q,EAAE,CAAC,GAAOA,EAAE,MAAN,GAAeA,EAAE,MAAN,EAAU,OAAOA,EAAE,UAAU,MAAM,MAAMX,EAAE,EAAE,CAAC,CAAE,CAAC,SAASkI,GAAGvH,EAAE,CAAC,OAAOA,EAAE0V,EAAE,GAAG,IAAI,CAAC,IAAIG,GAAG,GAAGC,GAAG,GAAG,SAASC,GAAG/V,EAAE,CAAC,MAAM,CAAC,QAAQA,CAAC,CAAC,CACve,SAASI,EAAEJ,EAAE,CAAC,EAAE8V,KAAK9V,EAAE,QAAQ6V,GAAGC,EAAE,EAAED,GAAGC,EAAE,EAAE,KAAKA,KAAK,CAAC,SAAStV,EAAER,EAAEK,EAAE,CAACyV,KAAKD,GAAGC,EAAE,EAAE9V,EAAE,QAAQA,EAAE,QAAQK,CAAC,CAAC,IAAI2V,GAAG,GAAGvV,GAAEsV,GAAGC,EAAE,EAAEC,GAAGF,GAAG,EAAE,EAAEG,GAAGF,GAAG,SAASG,GAAGnW,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,KAAK,aAAa,GAAG,CAACgB,EAAE,OAAOgV,GAAG,IAAIjV,EAAEf,EAAE,UAAU,GAAGe,GAAGA,EAAE,8CAA8CV,EAAE,OAAOU,EAAE,0CAA0C,IAAIT,EAAE,GAAGc,EAAE,IAAIA,KAAKJ,EAAEV,EAAEc,CAAC,EAAEf,EAAEe,CAAC,EAAE,OAAAL,IAAIf,EAAEA,EAAE,UAAUA,EAAE,4CAA4CK,EAAEL,EAAE,0CAA0CM,GAAUA,CAAC,CAC9d,SAAS8V,GAAGpW,EAAE,CAAC,OAAAA,EAAEA,EAAE,kBAAgCA,GAAP,IAAoB,CAAC,SAASqW,IAAI,CAACjW,EAAE6V,EAAE,EAAE7V,EAAEK,EAAC,CAAC,CAAC,SAAS6V,GAAGtW,EAAEK,EAAEW,EAAE,CAAC,GAAGP,GAAE,UAAUuV,GAAG,MAAM,MAAM3W,EAAE,GAAG,CAAC,EAAEmB,EAAEC,GAAEJ,CAAC,EAAEG,EAAEyV,GAAGjV,CAAC,CAAC,CAAC,SAASuV,GAAGvW,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,UAAgC,GAAtBK,EAAEA,EAAE,kBAAkC,OAAOU,EAAE,iBAAtB,WAAsC,OAAOC,EAAED,EAAEA,EAAE,kBAAkB,QAAQT,KAAKS,EAAE,GAAG,EAAET,KAAKD,GAAG,MAAM,MAAMhB,EAAE,IAAI4F,GAAGjF,CAAC,GAAG,UAAUM,CAAC,CAAC,EAAE,OAAOP,EAAE,GAAGiB,EAAED,CAAC,CAAC,CACxX,SAASyV,GAAGxW,EAAE,CAAC,OAAAA,GAAGA,EAAEA,EAAE,YAAYA,EAAE,2CAA2CgW,GAAGE,GAAGzV,GAAE,QAAQD,EAAEC,GAAET,CAAC,EAAEQ,EAAEyV,GAAGA,GAAG,OAAO,EAAQ,EAAE,CAAC,SAASQ,GAAGzW,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,UAAU,GAAG,CAACe,EAAE,MAAM,MAAM1B,EAAE,GAAG,CAAC,EAAE2B,GAAGhB,EAAEuW,GAAGvW,EAAEK,EAAE6V,EAAE,EAAEnV,EAAE,0CAA0Cf,EAAEI,EAAE6V,EAAE,EAAE7V,EAAEK,EAAC,EAAED,EAAEC,GAAET,CAAC,GAAGI,EAAE6V,EAAE,EAAEzV,EAAEyV,GAAGjV,CAAC,CAAC,CAAC,IAAI0V,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAG,SAASC,GAAG7W,EAAE,CAAQ0W,KAAP,KAAUA,GAAG,CAAC1W,CAAC,EAAE0W,GAAG,KAAK1W,CAAC,CAAC,CAAC,SAAS8W,GAAG9W,EAAE,CAAC2W,GAAG,GAAGE,GAAG7W,CAAC,CAAC,CAC3X,SAAS+W,IAAI,CAAC,GAAG,CAACH,IAAWF,KAAP,KAAU,CAACE,GAAG,GAAG,IAAI5W,EAAE,EAAEK,EAAEH,EAAE,GAAG,CAAC,IAAIc,EAAE0V,GAAG,IAAIxW,EAAE,EAAEF,EAAEgB,EAAE,OAAOhB,IAAI,CAAC,IAAIe,EAAEC,EAAEhB,CAAC,EAAE,GAAGe,EAAEA,EAAE,EAAE,QAAeA,IAAP,KAAS,CAAC2V,GAAG,KAAKC,GAAG,EAAE,OAAOrW,EAAE,CAAC,MAAaoW,KAAP,OAAYA,GAAGA,GAAG,MAAM1W,EAAE,CAAC,GAAG+I,GAAGK,GAAG2N,EAAE,EAAEzW,CAAE,QAAC,CAAQJ,EAAEG,EAAEuW,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,IAAII,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAG,SAASC,GAAGzX,EAAEK,EAAE,CAAC2W,GAAGC,IAAI,EAAEE,GAAGH,GAAGC,IAAI,EAAEC,GAAGA,GAAGlX,EAAEmX,GAAG9W,CAAC,CACjV,SAASqX,GAAG1X,EAAEK,EAAEW,EAAE,CAACoW,GAAGC,IAAI,EAAEE,GAAGH,GAAGC,IAAI,EAAEG,GAAGJ,GAAGC,IAAI,EAAEC,GAAGA,GAAGtX,EAAE,IAAIe,EAAEwW,GAAGvX,EAAEwX,GAAG,IAAIlX,EAAE,GAAGsJ,GAAG7I,CAAC,EAAE,EAAEA,GAAG,EAAE,GAAGT,GAAGU,GAAG,EAAE,IAAII,EAAE,GAAGwI,GAAGvJ,CAAC,EAAEC,EAAE,GAAG,GAAGc,EAAE,CAAC,IAAID,EAAEb,EAAEA,EAAE,EAAEc,GAAGL,GAAG,GAAGI,GAAG,GAAG,SAAS,EAAE,EAAEJ,IAAII,EAAEb,GAAGa,EAAEoW,GAAG,GAAG,GAAG3N,GAAGvJ,CAAC,EAAEC,EAAEU,GAAGV,EAAES,EAAEyW,GAAGpW,EAAEpB,CAAC,MAAMuX,GAAG,GAAGnW,EAAEJ,GAAGV,EAAES,EAAEyW,GAAGxX,CAAC,CAAC,SAAS2X,GAAG3X,EAAE,CAAQA,EAAE,SAAT,OAAkByX,GAAGzX,EAAE,CAAC,EAAE0X,GAAG1X,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS4X,GAAG5X,EAAE,CAAC,KAAKA,IAAIkX,IAAIA,GAAGF,GAAG,EAAEC,EAAE,EAAED,GAAGC,EAAE,EAAE,KAAKE,GAAGH,GAAG,EAAEC,EAAE,EAAED,GAAGC,EAAE,EAAE,KAAK,KAAKjX,IAAIsX,IAAIA,GAAGF,GAAG,EAAEC,EAAE,EAAED,GAAGC,EAAE,EAAE,KAAKG,GAAGJ,GAAG,EAAEC,EAAE,EAAED,GAAGC,EAAE,EAAE,KAAKE,GAAGH,GAAG,EAAEC,EAAE,EAAED,GAAGC,EAAE,EAAE,IAAI,CAAC,IAAIQ,GAAG,KAAKC,GAAG,KAAKpX,EAAE,GAAGqX,GAAG,KACje,SAASC,GAAGhY,EAAEK,EAAE,CAAC,IAAIW,EAAEiX,GAAG,EAAE,KAAK,KAAK,CAAC,EAAEjX,EAAE,YAAY,UAAUA,EAAE,UAAUX,EAAEW,EAAE,OAAOhB,EAAEK,EAAEL,EAAE,UAAiBK,IAAP,MAAUL,EAAE,UAAU,CAACgB,CAAC,EAAEhB,EAAE,OAAO,IAAIK,EAAE,KAAKW,CAAC,CAAC,CACxJ,SAASkX,GAAGlY,EAAEK,EAAE,CAAC,OAAOL,EAAE,KAAK,IAAK,GAAE,IAAIgB,EAAEhB,EAAE,KAAK,OAAAK,EAAMA,EAAE,WAAN,GAAgBW,EAAE,YAAW,IAAKX,EAAE,SAAS,YAAW,EAAG,KAAKA,EAAgBA,IAAP,MAAUL,EAAE,UAAUK,EAAEwX,GAAG7X,EAAE8X,GAAGxC,GAAGjV,EAAE,UAAU,EAAE,IAAI,GAAG,IAAK,GAAE,OAAOA,EAAOL,EAAE,eAAP,IAAyBK,EAAE,WAAN,EAAe,KAAKA,EAASA,IAAP,MAAUL,EAAE,UAAUK,EAAEwX,GAAG7X,EAAE8X,GAAG,KAAK,IAAI,GAAG,IAAK,IAAG,OAAOzX,EAAMA,EAAE,WAAN,EAAe,KAAKA,EAASA,IAAP,MAAUW,EAASsW,KAAP,KAAU,CAAC,GAAGC,GAAG,SAASC,EAAE,EAAE,KAAKxX,EAAE,cAAc,CAAC,WAAWK,EAAE,YAAYW,EAAE,UAAU,UAAU,EAAEA,EAAEiX,GAAG,GAAG,KAAK,KAAK,CAAC,EAAEjX,EAAE,UAAUX,EAAEW,EAAE,OAAOhB,EAAEA,EAAE,MAAMgB,EAAE6W,GAAG7X,EAAE8X,GAClf,KAAK,IAAI,GAAG,QAAQ,MAAM,EAAE,CAAC,CAAC,SAASK,GAAGnY,EAAE,CAAC,OAAYA,EAAE,KAAK,KAAZ,IAAqBA,EAAE,MAAM,OAAb,CAAiB,CAAC,SAASoY,GAAGpY,EAAE,CAAC,GAAGU,EAAE,CAAC,IAAIL,EAAEyX,GAAG,GAAGzX,EAAE,CAAC,IAAIW,EAAEX,EAAE,GAAG,CAAC6X,GAAGlY,EAAEK,CAAC,EAAE,CAAC,GAAG8X,GAAGnY,CAAC,EAAE,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAEgB,EAAEiV,GAAGtU,EAAE,WAAW,EAAE,IAAID,EAAE8W,GAAGxX,GAAG6X,GAAGlY,EAAEK,CAAC,EAAE2X,GAAGjX,EAAEC,CAAC,GAAGhB,EAAE,MAAMA,EAAE,MAAM,MAAM,EAAEU,EAAE,GAAGmX,GAAG7X,EAAE,CAAC,KAAK,CAAC,GAAGmY,GAAGnY,CAAC,EAAE,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAEW,EAAE,MAAMA,EAAE,MAAM,MAAM,EAAEU,EAAE,GAAGmX,GAAG7X,CAAC,CAAC,CAAC,CAAC,SAASqY,GAAGrY,EAAE,CAAC,IAAIA,EAAEA,EAAE,OAAcA,IAAP,MAAcA,EAAE,MAAN,GAAeA,EAAE,MAAN,GAAgBA,EAAE,MAAP,IAAYA,EAAEA,EAAE,OAAO6X,GAAG7X,CAAC,CACha,SAASsY,GAAGtY,EAAE,CAAC,GAAGA,IAAI6X,GAAG,MAAM,GAAG,GAAG,CAACnX,EAAE,OAAO2X,GAAGrY,CAAC,EAAEU,EAAE,GAAG,GAAG,IAAIL,EAAkG,IAA/FA,EAAML,EAAE,MAAN,IAAY,EAAEK,EAAML,EAAE,MAAN,KAAaK,EAAEL,EAAE,KAAKK,EAAWA,IAAT,QAAqBA,IAAT,QAAY,CAAC0U,GAAG/U,EAAE,KAAKA,EAAE,aAAa,GAAMK,IAAIA,EAAEyX,IAAI,CAAC,GAAGK,GAAGnY,CAAC,EAAE,MAAMuY,GAAE,EAAG,MAAMlZ,EAAE,GAAG,CAAC,EAAE,KAAKgB,GAAG2X,GAAGhY,EAAEK,CAAC,EAAEA,EAAEiV,GAAGjV,EAAE,WAAW,CAAC,CAAO,GAANgY,GAAGrY,CAAC,EAAUA,EAAE,MAAP,GAAW,CAAgD,GAA/CA,EAAEA,EAAE,cAAcA,EAASA,IAAP,KAASA,EAAE,WAAW,KAAQ,CAACA,EAAE,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAEW,EAAE,CAAiB,IAAhBA,EAAEA,EAAE,YAAgBK,EAAE,EAAEL,GAAG,CAAC,GAAOA,EAAE,WAAN,EAAe,CAAC,IAAIgB,EAAEhB,EAAE,KAAK,GAAUgB,IAAP,KAAS,CAAC,GAAOX,IAAJ,EAAM,CAACyX,GAAGxC,GAAGtV,EAAE,WAAW,EAAE,MAAMA,CAAC,CAACK,GAAG,MAAWW,IAAN,KAAgBA,IAAP,MAAiBA,IAAP,MAAUX,GAAG,CAACL,EAAEA,EAAE,WAAW,CAAC8X,GACjgB,IAAI,CAAC,MAAMA,GAAGD,GAAGvC,GAAGtV,EAAE,UAAU,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC,SAASuY,IAAI,CAAC,QAAQvY,EAAE8X,GAAG9X,GAAGA,EAAEsV,GAAGtV,EAAE,WAAW,CAAC,CAAC,SAASwY,IAAI,CAACV,GAAGD,GAAG,KAAKnX,EAAE,EAAE,CAAC,SAAS+X,GAAGzY,EAAE,CAAQ+X,KAAP,KAAUA,GAAG,CAAC/X,CAAC,EAAE+X,GAAG,KAAK/X,CAAC,CAAC,CAAC,IAAI0Y,GAAG/U,GAAG,wBAChM,SAASgV,GAAG3Y,EAAEK,EAAEW,EAAE,CAAS,GAARhB,EAAEgB,EAAE,IAAchB,IAAP,MAAuB,OAAOA,GAApB,YAAkC,OAAOA,GAAlB,SAAoB,CAAC,GAAGgB,EAAE,OAAO,CAAY,GAAXA,EAAEA,EAAE,OAAUA,EAAE,CAAC,GAAOA,EAAE,MAAN,EAAU,MAAM,MAAM3B,EAAE,GAAG,CAAC,EAAE,IAAI0B,EAAEC,EAAE,SAAS,CAAC,GAAG,CAACD,EAAE,MAAM,MAAM1B,EAAE,IAAIW,CAAC,CAAC,EAAE,IAAIM,EAAES,EAAEK,EAAE,GAAGpB,EAAE,OAAUK,IAAP,MAAiBA,EAAE,MAAT,MAA2B,OAAOA,EAAE,KAAtB,YAA2BA,EAAE,IAAI,aAAae,EAASf,EAAE,KAAIA,EAAE,SAASL,EAAE,CAAC,IAAIK,EAAEC,EAAE,KAAYN,IAAP,KAAS,OAAOK,EAAEe,CAAC,EAAEf,EAAEe,CAAC,EAAEpB,CAAC,EAAEK,EAAE,WAAWe,EAASf,EAAC,CAAC,GAAc,OAAOL,GAAlB,SAAoB,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC2B,EAAE,OAAO,MAAM,MAAM3B,EAAE,IAAIW,CAAC,CAAC,CAAE,CAAC,OAAOA,CAAC,CAC/c,SAAS4Y,GAAG5Y,EAAEK,EAAE,CAAC,MAAAL,EAAE,OAAO,UAAU,SAAS,KAAKK,CAAC,EAAQ,MAAMhB,EAAE,GAAuBW,IAApB,kBAAsB,qBAAqB,OAAO,KAAKK,CAAC,EAAE,KAAK,IAAI,EAAE,IAAIL,CAAC,CAAC,CAAE,CAAC,SAAS6Y,GAAG7Y,EAAE,CAAC,IAAIK,EAAEL,EAAE,MAAM,OAAOK,EAAEL,EAAE,QAAQ,CAAC,CACrM,SAAS8Y,GAAG9Y,EAAE,CAAC,SAASK,EAAEA,EAAEW,EAAE,CAAC,GAAGhB,EAAE,CAAC,IAAI,EAAEK,EAAE,UAAiB,IAAP,MAAUA,EAAE,UAAU,CAACW,CAAC,EAAEX,EAAE,OAAO,IAAI,EAAE,KAAKW,CAAC,CAAC,CAAC,CAAC,SAASA,EAAEA,EAAED,EAAE,CAAC,GAAG,CAACf,EAAE,OAAO,KAAK,KAAYe,IAAP,MAAUV,EAAEW,EAAED,CAAC,EAAEA,EAAEA,EAAE,QAAQ,OAAO,IAAI,CAAC,SAASA,EAAEf,EAAEK,EAAE,CAAC,IAAIL,EAAE,IAAI,IAAWK,IAAP,MAAiBA,EAAE,MAAT,KAAaL,EAAE,IAAIK,EAAE,IAAIA,CAAC,EAAEL,EAAE,IAAIK,EAAE,MAAMA,CAAC,EAAEA,EAAEA,EAAE,QAAQ,OAAOL,CAAC,CAAC,SAASM,EAAEN,EAAEK,EAAE,CAAC,OAAAL,EAAE+Y,GAAG/Y,EAAEK,CAAC,EAAEL,EAAE,MAAM,EAAEA,EAAE,QAAQ,KAAYA,CAAC,CAAC,SAASoB,EAAEf,EAAEW,EAAE,EAAE,CAAW,OAAVX,EAAE,MAAM,EAAML,GAA4B,EAAEK,EAAE,UAAoB,IAAP,MAAgB,EAAE,EAAE,MAAM,EAAEW,GAAGX,EAAE,OAAO,EAAEW,GAAG,IAAEX,EAAE,OAAO,EAASW,KAArGX,EAAE,OAAO,QAAQW,EAAqF,CAAC,SAASG,EAAEd,EAAE,CAAC,OAAAL,GACtfK,EAAE,YAAT,OAAqBA,EAAE,OAAO,GAAUA,CAAC,CAAC,SAASa,EAAElB,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAUV,IAAP,MAAcA,EAAE,MAAN,GAAiBA,EAAE2Y,GAAGhY,EAAEhB,EAAE,KAAKe,CAAC,EAAEV,EAAE,OAAOL,EAAEK,IAAEA,EAAEC,EAAED,EAAEW,CAAC,EAAEX,EAAE,OAAOL,EAASK,EAAC,CAAC,SAASY,EAAEjB,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIK,EAAEJ,EAAE,KAAK,OAAGI,IAAI0C,GAAUzC,EAAErB,EAAEK,EAAEW,EAAE,MAAM,SAASD,EAAEC,EAAE,GAAG,EAAYX,IAAP,OAAWA,EAAE,cAAce,GAAc,OAAOA,GAAlB,UAA4BA,IAAP,MAAUA,EAAE,WAAWmD,IAAIsU,GAAGzX,CAAC,IAAIf,EAAE,OAAaU,EAAET,EAAED,EAAEW,EAAE,KAAK,EAAED,EAAE,IAAI4X,GAAG3Y,EAAEK,EAAEW,CAAC,EAAED,EAAE,OAAOf,EAAEe,IAAEA,EAAEkY,GAAGjY,EAAE,KAAKA,EAAE,IAAIA,EAAE,MAAM,KAAKhB,EAAE,KAAKe,CAAC,EAAEA,EAAE,IAAI4X,GAAG3Y,EAAEK,EAAEW,CAAC,EAAED,EAAE,OAAOf,EAASe,EAAC,CAAC,SAAS5B,EAAEa,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAUV,IAAP,MAAcA,EAAE,MAAN,GAC3eA,EAAE,UAAU,gBAAgBW,EAAE,eAAeX,EAAE,UAAU,iBAAiBW,EAAE,gBAAsBX,EAAE6Y,GAAGlY,EAAEhB,EAAE,KAAKe,CAAC,EAAEV,EAAE,OAAOL,EAAEK,IAAEA,EAAEC,EAAED,EAAEW,EAAE,UAAU,EAAE,EAAEX,EAAE,OAAOL,EAASK,EAAC,CAAC,SAASgB,EAAErB,EAAEK,EAAEW,EAAED,EAAEK,EAAE,CAAC,OAAUf,IAAP,MAAcA,EAAE,MAAN,GAAiBA,EAAE8Y,GAAGnY,EAAEhB,EAAE,KAAKe,EAAEK,CAAC,EAAEf,EAAE,OAAOL,EAAEK,IAAEA,EAAEC,EAAED,EAAEW,CAAC,EAAEX,EAAE,OAAOL,EAASK,EAAC,CAAC,SAASf,EAAEU,EAAEK,EAAEW,EAAE,CAAC,GAAc,OAAOX,GAAlB,UAA0BA,IAAL,IAAmB,OAAOA,GAAlB,SAAoB,OAAOA,EAAE2Y,GAAG,GAAG3Y,EAAEL,EAAE,KAAKgB,CAAC,EAAEX,EAAE,OAAOL,EAAEK,EAAE,GAAc,OAAOA,GAAlB,UAA4BA,IAAP,KAAS,CAAC,OAAOA,EAAE,SAAQ,CAAE,KAAKuD,GAAG,OAAO5C,EAAEiY,GAAG5Y,EAAE,KAAKA,EAAE,IAAIA,EAAE,MAAM,KAAKL,EAAE,KAAKgB,CAAC,EACpfA,EAAE,IAAI2X,GAAG3Y,EAAE,KAAKK,CAAC,EAAEW,EAAE,OAAOhB,EAAEgB,EAAE,KAAK6C,GAAG,OAAOxD,EAAE6Y,GAAG7Y,EAAEL,EAAE,KAAKgB,CAAC,EAAEX,EAAE,OAAOL,EAAEK,EAAE,KAAKkE,GAAG,IAAIxD,EAAEV,EAAE,MAAM,OAAOf,EAAEU,EAAEe,EAAEV,EAAE,QAAQ,EAAEW,CAAC,CAAC,CAAC,GAAG8E,GAAGzF,CAAC,GAAGqE,GAAGrE,CAAC,EAAE,OAAOA,EAAE8Y,GAAG9Y,EAAEL,EAAE,KAAKgB,EAAE,IAAI,EAAEX,EAAE,OAAOL,EAAEK,EAAEuY,GAAG5Y,EAAEK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAASd,EAAES,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAASD,IAAP,KAASA,EAAE,IAAI,KAAK,GAAc,OAAOW,GAAlB,UAA0BA,IAAL,IAAmB,OAAOA,GAAlB,SAAoB,OAAcV,IAAP,KAAS,KAAKY,EAAElB,EAAEK,EAAE,GAAGW,EAAED,CAAC,EAAE,GAAc,OAAOC,GAAlB,UAA4BA,IAAP,KAAS,CAAC,OAAOA,EAAE,SAAQ,CAAE,KAAK4C,GAAG,OAAO5C,EAAE,MAAMV,EAAEW,EAAEjB,EAAEK,EAAEW,EAAED,CAAC,EAAE,KAAK,KAAK8C,GAAG,OAAO7C,EAAE,MAAMV,EAAEnB,EAAEa,EAAEK,EAAEW,EAAED,CAAC,EAAE,KAAK,KAAKwD,GAAG,OAAOjE,EAAEU,EAAE,MAAMzB,EAAES,EACpfK,EAAEC,EAAEU,EAAE,QAAQ,EAAED,CAAC,CAAC,CAAC,GAAG+E,GAAG9E,CAAC,GAAG0D,GAAG1D,CAAC,EAAE,OAAcV,IAAP,KAAS,KAAKe,EAAErB,EAAEK,EAAEW,EAAED,EAAE,IAAI,EAAE6X,GAAG5Y,EAAEgB,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAASnB,EAAEG,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,GAAc,OAAOS,GAAlB,UAA0BA,IAAL,IAAmB,OAAOA,GAAlB,SAAoB,OAAOf,EAAEA,EAAE,IAAIgB,CAAC,GAAG,KAAKE,EAAEb,EAAEL,EAAE,GAAGe,EAAET,CAAC,EAAE,GAAc,OAAOS,GAAlB,UAA4BA,IAAP,KAAS,CAAC,OAAOA,EAAE,SAAQ,CAAE,KAAK6C,GAAG,OAAO5D,EAAEA,EAAE,IAAWe,EAAE,MAAT,KAAaC,EAAED,EAAE,GAAG,GAAG,KAAKE,EAAEZ,EAAEL,EAAEe,EAAET,CAAC,EAAE,KAAKuD,GAAG,OAAO7D,EAAEA,EAAE,IAAWe,EAAE,MAAT,KAAaC,EAAED,EAAE,GAAG,GAAG,KAAK5B,EAAEkB,EAAEL,EAAEe,EAAET,CAAC,EAAE,KAAKiE,GAAG,IAAInD,EAAEL,EAAE,MAAM,OAAOlB,EAAEG,EAAEK,EAAEW,EAAEI,EAAEL,EAAE,QAAQ,EAAET,CAAC,CAAC,CAAC,GAAGwF,GAAG/E,CAAC,GAAG2D,GAAG3D,CAAC,EAAE,OAAOf,EAAEA,EAAE,IAAIgB,CAAC,GAAG,KAAKK,EAAEhB,EAAEL,EAAEe,EAAET,EAAE,IAAI,EAAEsY,GAAGvY,EAAEU,CAAC,CAAC,CAAC,OAAO,IAAI,CAC9f,SAAS3B,EAAEkB,EAAEa,EAAED,EAAED,EAAE,CAAC,QAAQ9B,EAAE,KAAKkC,EAAE,KAAK5B,EAAE0B,EAAExB,EAAEwB,EAAE,EAAEvB,EAAE,KAAYH,IAAP,MAAUE,EAAEuB,EAAE,OAAOvB,IAAI,CAACF,EAAE,MAAME,GAAGC,EAAEH,EAAEA,EAAE,MAAMG,EAAEH,EAAE,QAAQ,IAAIL,EAAEG,EAAEe,EAAEb,EAAEyB,EAAEvB,CAAC,EAAEsB,CAAC,EAAE,GAAU7B,IAAP,KAAS,CAAQK,IAAP,OAAWA,EAAEG,GAAG,KAAK,CAACI,GAAGP,GAAUL,EAAE,YAAT,MAAoBiB,EAAEC,EAAEb,CAAC,EAAE0B,EAAEC,EAAEhC,EAAE+B,EAAExB,CAAC,EAAS0B,IAAP,KAASlC,EAAEC,EAAEiC,EAAE,QAAQjC,EAAEiC,EAAEjC,EAAEK,EAAEG,CAAC,CAAC,GAAGD,IAAIuB,EAAE,OAAO,OAAOF,EAAEV,EAAEb,CAAC,EAAEiB,GAAG+W,GAAGnX,EAAEX,CAAC,EAAER,EAAE,GAAUM,IAAP,KAAS,CAAC,KAAKE,EAAEuB,EAAE,OAAOvB,IAAIF,EAAEH,EAAEgB,EAAEY,EAAEvB,CAAC,EAAEsB,CAAC,EAASxB,IAAP,OAAW0B,EAAEC,EAAE3B,EAAE0B,EAAExB,CAAC,EAAS0B,IAAP,KAASlC,EAAEM,EAAE4B,EAAE,QAAQ5B,EAAE4B,EAAE5B,GAAG,OAAAiB,GAAG+W,GAAGnX,EAAEX,CAAC,EAASR,CAAC,CAAC,IAAIM,EAAEsB,EAAET,EAAEb,CAAC,EAAEE,EAAEuB,EAAE,OAAOvB,IAAIC,EAAEC,EAAEJ,EAAEa,EAAEX,EAAEuB,EAAEvB,CAAC,EAAEsB,CAAC,EAASrB,IAAP,OAAWI,GAAUJ,EAAE,YAAT,MAAoBH,EAAE,OAChfG,EAAE,MADqf,KACjfD,EAAEC,EAAE,GAAG,EAAEuB,EAAEC,EAAExB,EAAEuB,EAAExB,CAAC,EAAS0B,IAAP,KAASlC,EAAES,EAAEyB,EAAE,QAAQzB,EAAEyB,EAAEzB,GAAG,OAAAI,GAAGP,EAAE,QAAQ,SAASO,GAAE,CAAC,OAAOK,EAAEC,EAAEN,EAAC,CAAC,CAAC,EAAEU,GAAG+W,GAAGnX,EAAEX,CAAC,EAASR,CAAC,CAAC,SAASK,EAAEc,EAAEa,EAAED,EAAED,EAAE,CAAC,IAAI9B,EAAEuF,GAAGxD,CAAC,EAAE,GAAgB,OAAO/B,GAApB,WAAsB,MAAM,MAAME,EAAE,GAAG,CAAC,EAAc,GAAZ6B,EAAE/B,EAAE,KAAK+B,CAAC,EAAWA,GAAN,KAAQ,MAAM,MAAM7B,EAAE,GAAG,CAAC,EAAE,QAAQI,EAAEN,EAAE,KAAKkC,EAAEF,EAAExB,EAAEwB,EAAE,EAAEvB,EAAE,KAAKR,EAAE8B,EAAE,KAAI,EAAUG,IAAP,MAAU,CAACjC,EAAE,KAAKO,IAAIP,EAAE8B,EAAE,KAAI,EAAG,CAACG,EAAE,MAAM1B,GAAGC,EAAEyB,EAAEA,EAAE,MAAMzB,EAAEyB,EAAE,QAAQ,IAAI7B,GAAED,EAAEe,EAAEe,EAAEjC,EAAE,MAAM6B,CAAC,EAAE,GAAUzB,KAAP,KAAS,CAAQ6B,IAAP,OAAWA,EAAEzB,GAAG,KAAK,CAACI,GAAGqB,GAAU7B,GAAE,YAAT,MAAoBa,EAAEC,EAAEe,CAAC,EAAEF,EAAEC,EAAE5B,GAAE2B,EAAExB,CAAC,EAASF,IAAP,KAASN,EAAEK,GAAEC,EAAE,QAAQD,GAAEC,EAAED,GAAE6B,EAAEzB,CAAC,CAAC,GAAGR,EAAE,KAAK,OAAO4B,EAAEV,EACzfe,CAAC,EAAEX,GAAG+W,GAAGnX,EAAEX,CAAC,EAAER,EAAE,GAAUkC,IAAP,KAAS,CAAC,KAAK,CAACjC,EAAE,KAAKO,IAAIP,EAAE8B,EAAE,KAAI,EAAG9B,EAAEE,EAAEgB,EAAElB,EAAE,MAAM6B,CAAC,EAAS7B,IAAP,OAAW+B,EAAEC,EAAEhC,EAAE+B,EAAExB,CAAC,EAASF,IAAP,KAASN,EAAEC,EAAEK,EAAE,QAAQL,EAAEK,EAAEL,GAAG,OAAAsB,GAAG+W,GAAGnX,EAAEX,CAAC,EAASR,CAAC,CAAC,IAAIkC,EAAEN,EAAET,EAAEe,CAAC,EAAE,CAACjC,EAAE,KAAKO,IAAIP,EAAE8B,EAAE,KAAI,EAAG9B,EAAES,EAAEwB,EAAEf,EAAEX,EAAEP,EAAE,MAAM6B,CAAC,EAAS7B,IAAP,OAAWY,GAAUZ,EAAE,YAAT,MAAoBiC,EAAE,OAAcjC,EAAE,MAAT,KAAaO,EAAEP,EAAE,GAAG,EAAE+B,EAAEC,EAAEhC,EAAE+B,EAAExB,CAAC,EAASF,IAAP,KAASN,EAAEC,EAAEK,EAAE,QAAQL,EAAEK,EAAEL,GAAG,OAAAY,GAAGqB,EAAE,QAAQ,SAASrB,GAAE,CAAC,OAAOK,EAAEC,EAAEN,EAAC,CAAC,CAAC,EAAEU,GAAG+W,GAAGnX,EAAEX,CAAC,EAASR,CAAC,CAAC,SAASwB,EAAEX,EAAEe,EAAEK,EAAEF,EAAE,CAAgF,GAApE,OAAOE,GAAlB,UAA4BA,IAAP,MAAUA,EAAE,OAAO0C,IAAW1C,EAAE,MAAT,OAAeA,EAAEA,EAAE,MAAM,UAAwB,OAAOA,GAAlB,UAA4BA,IAAP,KAAS,CAAC,OAAOA,EAAE,SAAQ,CAAE,KAAKwC,GAAG5D,EAAE,CAAC,QAAQiB,EAC7hBG,EAAE,IAAIjC,EAAE4B,EAAS5B,IAAP,MAAU,CAAC,GAAGA,EAAE,MAAM8B,EAAE,CAAU,GAATA,EAAEG,EAAE,KAAQH,IAAI6C,IAAI,GAAO3E,EAAE,MAAN,EAAU,CAAC6B,EAAEhB,EAAEb,EAAE,OAAO,EAAE4B,EAAET,EAAEnB,EAAEiC,EAAE,MAAM,QAAQ,EAAEL,EAAE,OAAOf,EAAEA,EAAEe,EAAE,MAAMf,CAAC,UAAUb,EAAE,cAAc8B,GAAc,OAAOA,GAAlB,UAA4BA,IAAP,MAAUA,EAAE,WAAWsD,IAAIsU,GAAG5X,CAAC,IAAI9B,EAAE,KAAK,CAAC6B,EAAEhB,EAAEb,EAAE,OAAO,EAAE4B,EAAET,EAAEnB,EAAEiC,EAAE,KAAK,EAAEL,EAAE,IAAI4X,GAAG3Y,EAAEb,EAAEiC,CAAC,EAAEL,EAAE,OAAOf,EAAEA,EAAEe,EAAE,MAAMf,CAAC,CAACgB,EAAEhB,EAAEb,CAAC,EAAE,KAAK,MAAMkB,EAAEL,EAAEb,CAAC,EAAEA,EAAEA,EAAE,OAAO,CAACiC,EAAE,OAAO0C,IAAI/C,EAAEoY,GAAG/X,EAAE,MAAM,SAASpB,EAAE,KAAKkB,EAAEE,EAAE,GAAG,EAAEL,EAAE,OAAOf,EAAEA,EAAEe,IAAIG,EAAE+X,GAAG7X,EAAE,KAAKA,EAAE,IAAIA,EAAE,MAAM,KAAKpB,EAAE,KAAKkB,CAAC,EAAEA,EAAE,IAAIyX,GAAG3Y,EAAEe,EAAEK,CAAC,EAAEF,EAAE,OAAOlB,EAAEA,EAAEkB,EAAE,CAAC,OAAOC,EAAEnB,CAAC,EAAE,KAAK6D,GAAG7D,EAAE,CAAC,IAAIb,EAAEiC,EAAE,IACrfL,IADyf,MACtf,CAAC,GAAGA,EAAE,MAAM5B,EAAE,GAAO4B,EAAE,MAAN,GAAWA,EAAE,UAAU,gBAAgBK,EAAE,eAAeL,EAAE,UAAU,iBAAiBK,EAAE,eAAe,CAACJ,EAAEhB,EAAEe,EAAE,OAAO,EAAEA,EAAET,EAAES,EAAEK,EAAE,UAAU,EAAE,EAAEL,EAAE,OAAOf,EAAEA,EAAEe,EAAE,MAAMf,CAAC,KAAK,CAACgB,EAAEhB,EAAEe,CAAC,EAAE,KAAK,MAAMV,EAAEL,EAAEe,CAAC,EAAEA,EAAEA,EAAE,OAAO,CAACA,EAAEmY,GAAG9X,EAAEpB,EAAE,KAAKkB,CAAC,EAAEH,EAAE,OAAOf,EAAEA,EAAEe,CAAC,CAAC,OAAOI,EAAEnB,CAAC,EAAE,KAAKuE,GAAG,OAAOpF,EAAEiC,EAAE,MAAMT,EAAEX,EAAEe,EAAE5B,EAAEiC,EAAE,QAAQ,EAAEF,CAAC,CAAC,CAAC,GAAG4E,GAAG1E,CAAC,EAAE,OAAOhC,EAAEY,EAAEe,EAAEK,EAAEF,CAAC,EAAE,GAAGwD,GAAGtD,CAAC,EAAE,OAAO5B,EAAEQ,EAAEe,EAAEK,EAAEF,CAAC,EAAE0X,GAAG5Y,EAAEoB,CAAC,CAAC,CAAC,OAAiB,OAAOA,GAAlB,UAA0BA,IAAL,IAAmB,OAAOA,GAAlB,UAAqBA,EAAE,GAAGA,EAASL,IAAP,MAAcA,EAAE,MAAN,GAAWC,EAAEhB,EAAEe,EAAE,OAAO,EAAEA,EAAET,EAAES,EAAEK,CAAC,EAAEL,EAAE,OAAOf,EAAEA,EAAEe,IACnfC,EAAEhB,EAAEe,CAAC,EAAEA,EAAEiY,GAAG5X,EAAEpB,EAAE,KAAKkB,CAAC,EAAEH,EAAE,OAAOf,EAAEA,EAAEe,GAAGI,EAAEnB,CAAC,GAAGgB,EAAEhB,EAAEe,CAAC,CAAC,CAAC,OAAOJ,CAAC,CAAC,IAAIyY,GAAGN,GAAG,EAAE,EAAEO,GAAGP,GAAG,EAAE,EAAEQ,GAAGvD,GAAG,IAAI,EAAEwD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,IAAI,CAACD,GAAGD,GAAGD,GAAG,IAAI,CAAC,SAASI,GAAG3Z,EAAE,CAAC,IAAIK,EAAEiZ,GAAG,QAAQlZ,EAAEkZ,EAAE,EAAEtZ,EAAE,cAAcK,CAAC,CAAC,SAASuZ,GAAG5Z,EAAEK,EAAEW,EAAE,CAAC,KAAYhB,IAAP,MAAU,CAAC,IAAIe,EAAEf,EAAE,UAA+H,IAApHA,EAAE,WAAWK,KAAKA,GAAGL,EAAE,YAAYK,EAASU,IAAP,OAAWA,EAAE,YAAYV,IAAWU,IAAP,OAAWA,EAAE,WAAWV,KAAKA,IAAIU,EAAE,YAAYV,GAAML,IAAIgB,EAAE,MAAMhB,EAAEA,EAAE,MAAM,CAAC,CACnZ,SAAS6Z,GAAG7Z,EAAEK,EAAE,CAACkZ,GAAGvZ,EAAEyZ,GAAGD,GAAG,KAAKxZ,EAAEA,EAAE,aAAoBA,IAAP,MAAiBA,EAAE,eAAT,OAA6BA,EAAE,MAAMK,IAAKyZ,GAAG,IAAI9Z,EAAE,aAAa,KAAK,CAAC,SAAS+Z,GAAG/Z,EAAE,CAAC,IAAIK,EAAEL,EAAE,cAAc,GAAGyZ,KAAKzZ,EAAE,GAAGA,EAAE,CAAC,QAAQA,EAAE,cAAcK,EAAE,KAAK,IAAI,EAASmZ,KAAP,KAAU,CAAC,GAAUD,KAAP,KAAU,MAAM,MAAMla,EAAE,GAAG,CAAC,EAAEma,GAAGxZ,EAAEuZ,GAAG,aAAa,CAAC,MAAM,EAAE,aAAavZ,CAAC,CAAC,MAAMwZ,GAAGA,GAAG,KAAKxZ,EAAE,OAAOK,CAAC,CAAC,IAAI2Z,GAAG,KAAK,SAASC,GAAGja,EAAE,CAAQga,KAAP,KAAUA,GAAG,CAACha,CAAC,EAAEga,GAAG,KAAKha,CAAC,CAAC,CACvY,SAASka,GAAGla,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAED,EAAE,YAAY,OAAOC,IAAP,MAAUU,EAAE,KAAKA,EAAEiZ,GAAG5Z,CAAC,IAAIW,EAAE,KAAKV,EAAE,KAAKA,EAAE,KAAKU,GAAGX,EAAE,YAAYW,EAASmZ,GAAGna,EAAEe,CAAC,CAAC,CAAC,SAASoZ,GAAGna,EAAEK,EAAE,CAACL,EAAE,OAAOK,EAAE,IAAIW,EAAEhB,EAAE,UAAqC,IAApBgB,IAAP,OAAWA,EAAE,OAAOX,GAAGW,EAAEhB,EAAMA,EAAEA,EAAE,OAAcA,IAAP,MAAUA,EAAE,YAAYK,EAAEW,EAAEhB,EAAE,UAAiBgB,IAAP,OAAWA,EAAE,YAAYX,GAAGW,EAAEhB,EAAEA,EAAEA,EAAE,OAAO,OAAWgB,EAAE,MAAN,EAAUA,EAAE,UAAU,IAAI,CAAC,IAAIoZ,GAAG,GAAG,SAASC,GAAGra,EAAE,CAACA,EAAE,YAAY,CAAC,UAAUA,EAAE,cAAc,gBAAgB,KAAK,eAAe,KAAK,OAAO,CAAC,QAAQ,KAAK,YAAY,KAAK,MAAM,CAAC,EAAE,QAAQ,IAAI,CAAC,CAC/e,SAASsa,GAAGta,EAAEK,EAAE,CAACL,EAAEA,EAAE,YAAYK,EAAE,cAAcL,IAAIK,EAAE,YAAY,CAAC,UAAUL,EAAE,UAAU,gBAAgBA,EAAE,gBAAgB,eAAeA,EAAE,eAAe,OAAOA,EAAE,OAAO,QAAQA,EAAE,OAAO,EAAE,CAAC,SAASua,GAAGva,EAAEK,EAAE,CAAC,MAAM,CAAC,UAAUL,EAAE,KAAKK,EAAE,IAAI,EAAE,QAAQ,KAAK,SAAS,KAAK,KAAK,IAAI,CAAC,CACtR,SAASma,GAAGxa,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,YAAY,GAAUe,IAAP,KAAS,OAAO,KAAgB,GAAXA,EAAEA,EAAE,OAAeH,EAAE,EAAG,CAAC,IAAIN,EAAES,EAAE,QAAQ,OAAOT,IAAP,KAASD,EAAE,KAAKA,GAAGA,EAAE,KAAKC,EAAE,KAAKA,EAAE,KAAKD,GAAGU,EAAE,QAAQV,EAAS8Z,GAAGna,EAAEgB,CAAC,CAAC,CAAC,OAAAV,EAAES,EAAE,YAAmBT,IAAP,MAAUD,EAAE,KAAKA,EAAE4Z,GAAGlZ,CAAC,IAAIV,EAAE,KAAKC,EAAE,KAAKA,EAAE,KAAKD,GAAGU,EAAE,YAAYV,EAAS8Z,GAAGna,EAAEgB,CAAC,CAAC,CAAC,SAASyZ,GAAGza,EAAEK,EAAEW,EAAE,CAAiB,GAAhBX,EAAEA,EAAE,YAAsBA,IAAP,OAAWA,EAAEA,EAAE,QAAYW,EAAE,WAAP,GAAiB,CAAC,IAAID,EAAEV,EAAE,MAAMU,GAAGf,EAAE,aAAagB,GAAGD,EAAEV,EAAE,MAAMW,EAAE2J,GAAG3K,EAAEgB,CAAC,CAAC,CAAC,CACrZ,SAAS0Z,GAAG1a,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,YAAYe,EAAEf,EAAE,UAAU,GAAUe,IAAP,OAAWA,EAAEA,EAAE,YAAYC,IAAID,GAAG,CAAC,IAAIT,EAAE,KAAKc,EAAE,KAAyB,GAApBJ,EAAEA,EAAE,gBAA0BA,IAAP,KAAS,CAAC,EAAE,CAAC,IAAIG,EAAE,CAAC,UAAUH,EAAE,UAAU,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,QAAQA,EAAE,QAAQ,SAASA,EAAE,SAAS,KAAK,IAAI,EAASI,IAAP,KAASd,EAAEc,EAAED,EAAEC,EAAEA,EAAE,KAAKD,EAAEH,EAAEA,EAAE,IAAI,OAAcA,IAAP,MAAiBI,IAAP,KAASd,EAAEc,EAAEf,EAAEe,EAAEA,EAAE,KAAKf,CAAC,MAAMC,EAAEc,EAAEf,EAAEW,EAAE,CAAC,UAAUD,EAAE,UAAU,gBAAgBT,EAAE,eAAec,EAAE,OAAOL,EAAE,OAAO,QAAQA,EAAE,OAAO,EAAEf,EAAE,YAAYgB,EAAE,MAAM,CAAChB,EAAEgB,EAAE,eAAsBhB,IAAP,KAASgB,EAAE,gBAAgBX,EAAEL,EAAE,KACnfK,EAAEW,EAAE,eAAeX,CAAC,CACpB,SAASsa,GAAG3a,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAEN,EAAE,YAAYoa,GAAG,GAAG,IAAIhZ,EAAEd,EAAE,gBAAgBa,EAAEb,EAAE,eAAeY,EAAEZ,EAAE,OAAO,QAAQ,GAAUY,IAAP,KAAS,CAACZ,EAAE,OAAO,QAAQ,KAAK,IAAIW,EAAEC,EAAE/B,EAAE8B,EAAE,KAAKA,EAAE,KAAK,KAAYE,IAAP,KAASC,EAAEjC,EAAEgC,EAAE,KAAKhC,EAAEgC,EAAEF,EAAE,IAAII,EAAErB,EAAE,UAAiBqB,IAAP,OAAWA,EAAEA,EAAE,YAAYH,EAAEG,EAAE,eAAeH,IAAIC,IAAWD,IAAP,KAASG,EAAE,gBAAgBlC,EAAE+B,EAAE,KAAK/B,EAAEkC,EAAE,eAAeJ,GAAG,CAAC,GAAUG,IAAP,KAAS,CAAC,IAAI9B,EAAEgB,EAAE,UAAUa,EAAE,EAAEE,EAAElC,EAAE8B,EAAE,KAAKC,EAAEE,EAAE,EAAE,CAAC,IAAI7B,EAAE2B,EAAE,KAAKrB,EAAEqB,EAAE,UAAU,IAAIH,EAAExB,KAAKA,EAAE,CAAQ8B,IAAP,OAAWA,EAAEA,EAAE,KAAK,CAAC,UAAUxB,EAAE,KAAK,EAAE,IAAIqB,EAAE,IAAI,QAAQA,EAAE,QAAQ,SAASA,EAAE,SACvf,KAAK,IAAI,GAAGlB,EAAE,CAAC,IAAIZ,EAAEY,EAAER,EAAE0B,EAAU,OAAR3B,EAAEc,EAAER,EAAEmB,EAASxB,EAAE,IAAG,CAAE,IAAK,GAAc,GAAZJ,EAAEI,EAAE,QAAwB,OAAOJ,GAApB,WAAsB,CAACE,EAAEF,EAAE,KAAKS,EAAEP,EAAEC,CAAC,EAAE,MAAMS,CAAC,CAACV,EAAEF,EAAE,MAAMY,EAAE,IAAK,GAAEZ,EAAE,MAAMA,EAAE,MAAM,OAAO,IAAI,IAAK,GAAsD,GAApDA,EAAEI,EAAE,QAAQD,EAAe,OAAOH,GAApB,WAAsBA,EAAE,KAAKS,EAAEP,EAAEC,CAAC,EAAEH,EAAYG,GAAP,KAAqB,MAAMS,EAAEV,EAAES,EAAE,GAAGT,EAAEC,CAAC,EAAE,MAAMS,EAAE,IAAK,GAAEoa,GAAG,EAAE,CAAC,CAAQlZ,EAAE,WAAT,MAAuBA,EAAE,OAAN,IAAalB,EAAE,OAAO,GAAGT,EAAEe,EAAE,QAAef,IAAP,KAASe,EAAE,QAAQ,CAACY,CAAC,EAAE3B,EAAE,KAAK2B,CAAC,EAAE,MAAMrB,EAAE,CAAC,UAAUA,EAAE,KAAKN,EAAE,IAAI2B,EAAE,IAAI,QAAQA,EAAE,QAAQ,SAASA,EAAE,SAAS,KAAK,IAAI,EAASG,IAAP,MAAUlC,EAAEkC,EAAExB,EAAEoB,EAAE3B,GAAG+B,EAAEA,EAAE,KAAKxB,EAAEsB,GAAG5B,EAC3e,GAAT2B,EAAEA,EAAE,KAAeA,IAAP,KAAS,IAAGA,EAAEZ,EAAE,OAAO,QAAeY,IAAP,KAAS,MAAW3B,EAAE2B,EAAEA,EAAE3B,EAAE,KAAKA,EAAE,KAAK,KAAKe,EAAE,eAAef,EAAEe,EAAE,OAAO,QAAQ,KAAI,OAAO,IAA+F,GAArFe,IAAP,OAAWJ,EAAE3B,GAAGgB,EAAE,UAAUW,EAAEX,EAAE,gBAAgBnB,EAAEmB,EAAE,eAAee,EAAEhB,EAAEC,EAAE,OAAO,YAAsBD,IAAP,KAAS,CAACC,EAAED,EAAE,GAAGc,GAAGb,EAAE,KAAKA,EAAEA,EAAE,WAAWA,IAAID,EAAE,MAAae,IAAP,OAAWd,EAAE,OAAO,MAAM,GAAGsa,IAAIzZ,EAAEnB,EAAE,MAAMmB,EAAEnB,EAAE,cAAcV,CAAC,CAAC,CAC9V,SAASub,GAAG7a,EAAEK,EAAEW,EAAE,CAA4B,GAA3BhB,EAAEK,EAAE,QAAQA,EAAE,QAAQ,KAAeL,IAAP,KAAS,IAAIK,EAAE,EAAEA,EAAEL,EAAE,OAAOK,IAAI,CAAC,IAAIU,EAAEf,EAAEK,CAAC,EAAEC,EAAES,EAAE,SAAS,GAAUT,IAAP,KAAS,CAAqB,GAApBS,EAAE,SAAS,KAAKA,EAAEC,EAAkB,OAAOV,GAApB,WAAsB,MAAM,MAAMjB,EAAE,IAAIiB,CAAC,CAAC,EAAEA,EAAE,KAAKS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI+Z,GAAG,GAAGC,GAAGhF,GAAG+E,EAAE,EAAEE,GAAGjF,GAAG+E,EAAE,EAAEG,GAAGlF,GAAG+E,EAAE,EAAE,SAASI,GAAGlb,EAAE,CAAC,GAAGA,IAAI8a,GAAG,MAAM,MAAMzb,EAAE,GAAG,CAAC,EAAE,OAAOW,CAAC,CACnS,SAASmb,GAAGnb,EAAEK,EAAE,CAAuC,OAAtCG,EAAEya,GAAG5a,CAAC,EAAEG,EAAEwa,GAAGhb,CAAC,EAAEQ,EAAEua,GAAGD,EAAE,EAAE9a,EAAEK,EAAE,SAAgBL,EAAC,CAAE,IAAK,GAAE,IAAK,IAAGK,GAAGA,EAAEA,EAAE,iBAAiBA,EAAE,aAAagG,GAAG,KAAK,EAAE,EAAE,MAAM,QAAQrG,EAAMA,IAAJ,EAAMK,EAAE,WAAWA,EAAEA,EAAEL,EAAE,cAAc,KAAKA,EAAEA,EAAE,QAAQK,EAAEgG,GAAGhG,EAAEL,CAAC,CAAC,CAACI,EAAE2a,EAAE,EAAEva,EAAEua,GAAG1a,CAAC,CAAC,CAAC,SAAS+a,IAAI,CAAChb,EAAE2a,EAAE,EAAE3a,EAAE4a,EAAE,EAAE5a,EAAE6a,EAAE,CAAC,CAAC,SAASI,GAAGrb,EAAE,CAACkb,GAAGD,GAAG,OAAO,EAAE,IAAI5a,EAAE6a,GAAGH,GAAG,OAAO,EAAM/Z,EAAEqF,GAAGhG,EAAEL,EAAE,IAAI,EAAEK,IAAIW,IAAIR,EAAEwa,GAAGhb,CAAC,EAAEQ,EAAEua,GAAG/Z,CAAC,EAAE,CAAC,SAASsa,GAAGtb,EAAE,CAACgb,GAAG,UAAUhb,IAAII,EAAE2a,EAAE,EAAE3a,EAAE4a,EAAE,EAAE,CAAC,IAAIna,EAAEkV,GAAG,CAAC,EACzZ,SAASwF,GAAGvb,EAAE,CAAC,QAAQK,EAAEL,EAASK,IAAP,MAAU,CAAC,GAAQA,EAAE,MAAP,GAAW,CAAC,IAAIW,EAAEX,EAAE,cAAc,GAAUW,IAAP,OAAWA,EAAEA,EAAE,WAAkBA,IAAP,MAAiBA,EAAE,OAAT,MAAsBA,EAAE,OAAT,MAAe,OAAOX,CAAC,SAAcA,EAAE,MAAP,IAAqBA,EAAE,cAAc,cAAzB,QAAsC,GAAQA,EAAE,MAAM,IAAK,OAAOA,UAAiBA,EAAE,QAAT,KAAe,CAACA,EAAE,MAAM,OAAOA,EAAEA,EAAEA,EAAE,MAAM,QAAQ,CAAC,GAAGA,IAAIL,EAAE,MAAM,KAAYK,EAAE,UAAT,MAAkB,CAAC,GAAUA,EAAE,SAAT,MAAiBA,EAAE,SAASL,EAAE,OAAO,KAAKK,EAAEA,EAAE,MAAM,CAACA,EAAE,QAAQ,OAAOA,EAAE,OAAOA,EAAEA,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,IAAImb,GAAG,GACrc,SAASC,IAAI,CAAC,QAAQzb,EAAE,EAAEA,EAAEwb,GAAG,OAAOxb,IAAIwb,GAAGxb,CAAC,EAAE,8BAA8B,KAAKwb,GAAG,OAAO,CAAC,CAAC,IAAIE,GAAG/X,GAAG,uBAAuBgY,GAAGhY,GAAG,wBAAwBiY,GAAG,EAAE9a,EAAE,KAAKQ,EAAE,KAAKC,EAAE,KAAKsa,GAAG,GAAGC,GAAG,GAAGC,GAAG,EAAEC,GAAG,EAAE,SAASva,IAAG,CAAC,MAAM,MAAMpC,EAAE,GAAG,CAAC,CAAE,CAAC,SAAS4c,GAAGjc,EAAEK,EAAE,CAAC,GAAUA,IAAP,KAAS,MAAM,GAAG,QAAQW,EAAE,EAAEA,EAAEX,EAAE,QAAQW,EAAEhB,EAAE,OAAOgB,IAAI,GAAG,CAAC0Q,GAAG1R,EAAEgB,CAAC,EAAEX,EAAEW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAChW,SAASkb,GAAGlc,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAE,CAAuH,GAAtHwa,GAAGxa,EAAEN,EAAET,EAAEA,EAAE,cAAc,KAAKA,EAAE,YAAY,KAAKA,EAAE,MAAM,EAAEqb,GAAG,QAAe1b,IAAP,MAAiBA,EAAE,gBAAT,KAAuBmc,GAAGC,GAAGpc,EAAEgB,EAAED,EAAET,CAAC,EAAKwb,GAAG,CAAC1a,EAAE,EAAE,EAAE,CAAY,GAAX0a,GAAG,GAAGC,GAAG,EAAK,IAAI3a,EAAE,MAAM,MAAM/B,EAAE,GAAG,CAAC,EAAE+B,GAAG,EAAEG,EAAED,EAAE,KAAKjB,EAAE,YAAY,KAAKqb,GAAG,QAAQW,GAAGrc,EAAEgB,EAAED,EAAET,CAAC,CAAC,OAAOwb,GAAG,CAA+D,GAA9DJ,GAAG,QAAQY,GAAGjc,EAASiB,IAAP,MAAiBA,EAAE,OAAT,KAAcsa,GAAG,EAAEra,EAAED,EAAER,EAAE,KAAK+a,GAAG,GAAMxb,EAAE,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAE,OAAOW,CAAC,CAAC,SAASuc,IAAI,CAAC,IAAIvc,EAAM+b,KAAJ,EAAO,OAAAA,GAAG,EAAS/b,CAAC,CAC/Y,SAASwc,IAAI,CAAC,IAAIxc,EAAE,CAAC,cAAc,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,KAAK,KAAK,IAAI,EAAE,OAAOuB,IAAP,KAAST,EAAE,cAAcS,EAAEvB,EAAEuB,EAAEA,EAAE,KAAKvB,EAASuB,CAAC,CAAC,SAASkb,IAAI,CAAC,GAAUnb,IAAP,KAAS,CAAC,IAAItB,EAAEc,EAAE,UAAUd,EAASA,IAAP,KAASA,EAAE,cAAc,IAAI,MAAMA,EAAEsB,EAAE,KAAK,IAAIjB,EAASkB,IAAP,KAAST,EAAE,cAAcS,EAAE,KAAK,GAAUlB,IAAP,KAASkB,EAAElB,EAAEiB,EAAEtB,MAAM,CAAC,GAAUA,IAAP,KAAS,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAEiC,EAAEtB,EAAEA,EAAE,CAAC,cAAcsB,EAAE,cAAc,UAAUA,EAAE,UAAU,UAAUA,EAAE,UAAU,MAAMA,EAAE,MAAM,KAAK,IAAI,EAASC,IAAP,KAAST,EAAE,cAAcS,EAAEvB,EAAEuB,EAAEA,EAAE,KAAKvB,CAAC,CAAC,OAAOuB,CAAC,CACje,SAASmb,GAAG1c,EAAEK,EAAE,CAAC,OAAmB,OAAOA,GAApB,WAAsBA,EAAEL,CAAC,EAAEK,CAAC,CACnD,SAASsc,GAAG3c,EAAE,CAAC,IAAIK,EAAEoc,GAAE,EAAGzb,EAAEX,EAAE,MAAM,GAAUW,IAAP,KAAS,MAAM,MAAM3B,EAAE,GAAG,CAAC,EAAE2B,EAAE,oBAAoBhB,EAAE,IAAIe,EAAEO,EAAEhB,EAAES,EAAE,UAAUK,EAAEJ,EAAE,QAAQ,GAAUI,IAAP,KAAS,CAAC,GAAUd,IAAP,KAAS,CAAC,IAAIa,EAAEb,EAAE,KAAKA,EAAE,KAAKc,EAAE,KAAKA,EAAE,KAAKD,CAAC,CAACJ,EAAE,UAAUT,EAAEc,EAAEJ,EAAE,QAAQ,IAAI,CAAC,GAAUV,IAAP,KAAS,CAACc,EAAEd,EAAE,KAAKS,EAAEA,EAAE,UAAU,IAAIG,EAAEC,EAAE,KAAKF,EAAE,KAAK9B,EAAEiC,EAAE,EAAE,CAAC,IAAIC,EAAElC,EAAE,KAAK,IAAIyc,GAAGva,KAAKA,EAASJ,IAAP,OAAWA,EAAEA,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO9B,EAAE,OAAO,cAAcA,EAAE,cAAc,WAAWA,EAAE,WAAW,KAAK,IAAI,GAAG4B,EAAE5B,EAAE,cAAcA,EAAE,WAAWa,EAAEe,EAAE5B,EAAE,MAAM,MAAM,CAAC,IAAIG,EAAE,CAAC,KAAK+B,EAAE,OAAOlC,EAAE,OAAO,cAAcA,EAAE,cACngB,WAAWA,EAAE,WAAW,KAAK,IAAI,EAAS8B,IAAP,MAAUC,EAAED,EAAE3B,EAAE6B,EAAEJ,GAAGE,EAAEA,EAAE,KAAK3B,EAAEwB,EAAE,OAAOO,EAAEuZ,IAAIvZ,CAAC,CAAClC,EAAEA,EAAE,IAAI,OAAcA,IAAP,MAAUA,IAAIiC,GAAUH,IAAP,KAASE,EAAEJ,EAAEE,EAAE,KAAKC,EAAEwQ,GAAG3Q,EAAEV,EAAE,aAAa,IAAIyZ,GAAG,IAAIzZ,EAAE,cAAcU,EAAEV,EAAE,UAAUc,EAAEd,EAAE,UAAUY,EAAED,EAAE,kBAAkBD,CAAC,CAAiB,GAAhBf,EAAEgB,EAAE,YAAsBhB,IAAP,KAAS,CAACM,EAAEN,EAAE,GAAGoB,EAAEd,EAAE,KAAKQ,EAAE,OAAOM,EAAEwZ,IAAIxZ,EAAEd,EAAEA,EAAE,WAAWA,IAAIN,EAAE,MAAaM,IAAP,OAAWU,EAAE,MAAM,GAAG,MAAM,CAACX,EAAE,cAAcW,EAAE,QAAQ,CAAC,CAC9X,SAAS4b,GAAG5c,EAAE,CAAC,IAAIK,EAAEoc,KAAKzb,EAAEX,EAAE,MAAM,GAAUW,IAAP,KAAS,MAAM,MAAM3B,EAAE,GAAG,CAAC,EAAE2B,EAAE,oBAAoBhB,EAAE,IAAIe,EAAEC,EAAE,SAASV,EAAEU,EAAE,QAAQI,EAAEf,EAAE,cAAc,GAAUC,IAAP,KAAS,CAACU,EAAE,QAAQ,KAAK,IAAIG,EAAEb,EAAEA,EAAE,KAAK,GAAGc,EAAEpB,EAAEoB,EAAED,EAAE,MAAM,EAAEA,EAAEA,EAAE,WAAWA,IAAIb,GAAGoR,GAAGtQ,EAAEf,EAAE,aAAa,IAAIyZ,GAAG,IAAIzZ,EAAE,cAAce,EAASf,EAAE,YAAT,OAAqBA,EAAE,UAAUe,GAAGJ,EAAE,kBAAkBI,CAAC,CAAC,MAAM,CAACA,EAAEL,CAAC,CAAC,CAAC,SAAS8b,IAAI,EACnW,SAASC,GAAG9c,EAAEK,EAAE,CAAC,IAAIW,EAAEF,EAAEC,EAAE0b,GAAE,EAAGnc,EAAED,EAAC,EAAGe,EAAE,CAACsQ,GAAG3Q,EAAE,cAAcT,CAAC,EAAqE,GAAnEc,IAAIL,EAAE,cAAcT,EAAEwZ,GAAG,IAAI/Y,EAAEA,EAAE,MAAMgc,GAAGC,GAAG,KAAK,KAAKhc,EAAED,EAAEf,CAAC,EAAE,CAACA,CAAC,CAAC,EAAKe,EAAE,cAAcV,GAAGe,GAAUG,IAAP,MAAUA,EAAE,cAAc,IAAI,EAAE,CAAuD,GAAtDP,EAAE,OAAO,KAAKic,GAAG,EAAEC,GAAG,KAAK,KAAKlc,EAAED,EAAET,EAAED,CAAC,EAAE,OAAO,IAAI,EAAYqB,IAAP,KAAS,MAAM,MAAMrC,EAAE,GAAG,CAAC,EAAOuc,GAAG,IAAKuB,GAAGnc,EAAEX,EAAEC,CAAC,CAAC,CAAC,OAAOA,CAAC,CAAC,SAAS6c,GAAGnd,EAAEK,EAAEW,EAAE,CAAChB,EAAE,OAAO,MAAMA,EAAE,CAAC,YAAYK,EAAE,MAAMW,CAAC,EAAEX,EAAES,EAAE,YAAmBT,IAAP,MAAUA,EAAE,CAAC,WAAW,KAAK,OAAO,IAAI,EAAES,EAAE,YAAYT,EAAEA,EAAE,OAAO,CAACL,CAAC,IAAIgB,EAAEX,EAAE,OAAcW,IAAP,KAASX,EAAE,OAAO,CAACL,CAAC,EAAEgB,EAAE,KAAKhB,CAAC,EAAE,CAClf,SAASkd,GAAGld,EAAEK,EAAEW,EAAED,EAAE,CAACV,EAAE,MAAMW,EAAEX,EAAE,YAAYU,EAAEqc,GAAG/c,CAAC,GAAGgd,GAAGrd,CAAC,CAAC,CAAC,SAASgd,GAAGhd,EAAEK,EAAEW,EAAE,CAAC,OAAOA,EAAE,UAAU,CAACoc,GAAG/c,CAAC,GAAGgd,GAAGrd,CAAC,CAAC,CAAC,CAAC,CAAC,SAASod,GAAGpd,EAAE,CAAC,IAAIK,EAAEL,EAAE,YAAYA,EAAEA,EAAE,MAAM,GAAG,CAAC,IAAIgB,EAAEX,EAAC,EAAG,MAAM,CAACqR,GAAG1R,EAAEgB,CAAC,CAAC,MAAS,CAAC,MAAM,EAAE,CAAC,CAAC,SAASqc,GAAGrd,EAAE,CAAC,IAAIK,EAAE8Z,GAAGna,EAAE,CAAC,EAASK,IAAP,MAAUid,GAAGjd,EAAEL,EAAE,EAAE,EAAE,CAAC,CAClQ,SAASud,GAAGvd,EAAE,CAAC,IAAIK,EAAEmc,KAAK,OAAa,OAAOxc,GAApB,aAAwBA,EAAEA,EAAC,GAAIK,EAAE,cAAcA,EAAE,UAAUL,EAAEA,EAAE,CAAC,QAAQ,KAAK,YAAY,KAAK,MAAM,EAAE,SAAS,KAAK,oBAAoB0c,GAAG,kBAAkB1c,CAAC,EAAEK,EAAE,MAAML,EAAEA,EAAEA,EAAE,SAASwd,GAAG,KAAK,KAAK1c,EAAEd,CAAC,EAAQ,CAACK,EAAE,cAAcL,CAAC,CAAC,CAC5P,SAASid,GAAGjd,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAAf,EAAE,CAAC,IAAIA,EAAE,OAAOK,EAAE,QAAQW,EAAE,KAAKD,EAAE,KAAK,IAAI,EAAEV,EAAES,EAAE,YAAmBT,IAAP,MAAUA,EAAE,CAAC,WAAW,KAAK,OAAO,IAAI,EAAES,EAAE,YAAYT,EAAEA,EAAE,WAAWL,EAAE,KAAKA,IAAIgB,EAAEX,EAAE,WAAkBW,IAAP,KAASX,EAAE,WAAWL,EAAE,KAAKA,GAAGe,EAAEC,EAAE,KAAKA,EAAE,KAAKhB,EAAEA,EAAE,KAAKe,EAAEV,EAAE,WAAWL,IAAWA,CAAC,CAAC,SAASyd,IAAI,CAAC,OAAOhB,GAAE,EAAG,aAAa,CAAC,SAASiB,GAAG1d,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAEkc,GAAE,EAAG1b,EAAE,OAAOd,EAAEM,EAAE,cAAc2c,GAAG,EAAE5c,EAAEW,EAAE,OAAgBD,IAAT,OAAW,KAAKA,CAAC,CAAC,CAC9Y,SAAS4c,GAAG3d,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAEmc,KAAK1b,EAAWA,IAAT,OAAW,KAAKA,EAAE,IAAIK,EAAE,OAAO,GAAUE,IAAP,KAAS,CAAC,IAAIH,EAAEG,EAAE,cAA0B,GAAZF,EAAED,EAAE,QAAkBJ,IAAP,MAAUkb,GAAGlb,EAAEI,EAAE,IAAI,EAAE,CAACb,EAAE,cAAc2c,GAAG5c,EAAEW,EAAEI,EAAEL,CAAC,EAAE,MAAM,CAAC,CAACD,EAAE,OAAOd,EAAEM,EAAE,cAAc2c,GAAG,EAAE5c,EAAEW,EAAEI,EAAEL,CAAC,CAAC,CAAC,SAAS6c,GAAG5d,EAAEK,EAAE,CAAC,OAAOqd,GAAG,QAAQ,EAAE1d,EAAEK,CAAC,CAAC,CAAC,SAAS0c,GAAG/c,EAAEK,EAAE,CAAC,OAAOsd,GAAG,KAAK,EAAE3d,EAAEK,CAAC,CAAC,CAAC,SAASwd,GAAG7d,EAAEK,EAAE,CAAC,OAAOsd,GAAG,EAAE,EAAE3d,EAAEK,CAAC,CAAC,CAAC,SAASyd,GAAG9d,EAAEK,EAAE,CAAC,OAAOsd,GAAG,EAAE,EAAE3d,EAAEK,CAAC,CAAC,CAChX,SAAS0d,GAAG/d,EAAEK,EAAE,CAAC,GAAgB,OAAOA,GAApB,WAAsB,OAAOL,EAAEA,EAAC,EAAGK,EAAEL,CAAC,EAAE,UAAU,CAACK,EAAE,IAAI,CAAC,EAAE,GAAUA,GAAP,KAAqB,OAAOL,EAAEA,IAAIK,EAAE,QAAQL,EAAE,UAAU,CAACK,EAAE,QAAQ,IAAI,CAAC,CAAC,SAAS2d,GAAGhe,EAAEK,EAAEW,EAAE,CAAC,OAAAA,EAASA,GAAP,KAAqBA,EAAE,OAAO,CAAChB,CAAC,CAAC,EAAE,KAAY2d,GAAG,EAAE,EAAEI,GAAG,KAAK,KAAK1d,EAAEL,CAAC,EAAEgB,CAAC,CAAC,CAAC,SAASid,IAAI,EAAE,SAASC,GAAGle,EAAEK,EAAE,CAAC,IAAIW,EAAEyb,KAAKpc,EAAWA,IAAT,OAAW,KAAKA,EAAE,IAAIU,EAAEC,EAAE,cAAc,OAAUD,IAAP,MAAiBV,IAAP,MAAU4b,GAAG5b,EAAEU,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,GAAEC,EAAE,cAAc,CAAChB,EAAEK,CAAC,EAASL,EAAC,CAC7Z,SAASme,GAAGne,EAAEK,EAAE,CAAC,IAAIW,EAAEyb,GAAE,EAAGpc,EAAWA,IAAT,OAAW,KAAKA,EAAE,IAAIU,EAAEC,EAAE,cAAc,OAAUD,IAAP,MAAiBV,IAAP,MAAU4b,GAAG5b,EAAEU,EAAE,CAAC,CAAC,EAASA,EAAE,CAAC,GAAEf,EAAEA,EAAC,EAAGgB,EAAE,cAAc,CAAChB,EAAEK,CAAC,EAASL,EAAC,CAAC,SAASoe,GAAGpe,EAAEK,EAAEW,EAAE,CAAC,OAAQ4a,GAAG,IAAiElK,GAAG1Q,EAAEX,CAAC,IAAIW,EAAEuJ,GAAE,EAAGzJ,EAAE,OAAOE,EAAE4Z,IAAI5Z,EAAEhB,EAAE,UAAU,IAAWK,IAA/GL,EAAE,YAAYA,EAAE,UAAU,GAAG8Z,GAAG,IAAI9Z,EAAE,cAAcgB,EAA4D,CAAC,SAASqd,GAAGre,EAAEK,EAAE,CAAC,IAAIW,EAAEd,EAAEA,EAAMc,IAAJ,GAAO,EAAEA,EAAEA,EAAE,EAAEhB,EAAE,EAAE,EAAE,IAAIe,EAAE4a,GAAG,WAAWA,GAAG,WAAW,GAAG,GAAG,CAAC3b,EAAE,EAAE,EAAEK,EAAC,CAAE,QAAC,CAAQH,EAAEc,EAAE2a,GAAG,WAAW5a,CAAC,CAAC,CAAC,SAASud,IAAI,CAAC,OAAO7B,GAAE,EAAG,aAAa,CAC1d,SAAS8B,GAAGve,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEyd,GAAGxe,CAAC,EAAiE,GAA/DgB,EAAE,CAAC,KAAKD,EAAE,OAAOC,EAAE,cAAc,GAAG,WAAW,KAAK,KAAK,IAAI,EAAKyd,GAAGze,CAAC,EAAE0e,GAAGre,EAAEW,CAAC,UAAUA,EAAEkZ,GAAGla,EAAEK,EAAEW,EAAED,CAAC,EAASC,IAAP,KAAS,CAAC,IAAIV,EAAEqB,KAAI2b,GAAGtc,EAAEhB,EAAEe,EAAET,CAAC,EAAEqe,GAAG3d,EAAEX,EAAEU,CAAC,CAAC,CAAC,CAC/K,SAASyc,GAAGxd,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEyd,GAAGxe,CAAC,EAAEM,EAAE,CAAC,KAAKS,EAAE,OAAOC,EAAE,cAAc,GAAG,WAAW,KAAK,KAAK,IAAI,EAAE,GAAGyd,GAAGze,CAAC,EAAE0e,GAAGre,EAAEC,CAAC,MAAM,CAAC,IAAIc,EAAEpB,EAAE,UAAU,GAAOA,EAAE,QAAN,IAAqBoB,IAAP,MAAcA,EAAE,QAAN,KAAeA,EAAEf,EAAE,oBAA2Be,IAAP,MAAU,GAAG,CAAC,IAAID,EAAEd,EAAE,kBAAkBa,EAAEE,EAAED,EAAEH,CAAC,EAAoC,GAAlCV,EAAE,cAAc,GAAGA,EAAE,WAAWY,EAAKwQ,GAAGxQ,EAAEC,CAAC,EAAE,CAAC,IAAIF,EAAEZ,EAAE,YAAmBY,IAAP,MAAUX,EAAE,KAAKA,EAAE2Z,GAAG5Z,CAAC,IAAIC,EAAE,KAAKW,EAAE,KAAKA,EAAE,KAAKX,GAAGD,EAAE,YAAYC,EAAE,MAAM,CAAC,MAAS,SAAE,CAAO,CAAEU,EAAEkZ,GAAGla,EAAEK,EAAEC,EAAES,CAAC,EAASC,IAAP,OAAWV,EAAEqB,GAAC,EAAG2b,GAAGtc,EAAEhB,EAAEe,EAAET,CAAC,EAAEqe,GAAG3d,EAAEX,EAAEU,CAAC,EAAE,CAAC,CAC/c,SAAS0d,GAAGze,EAAE,CAAC,IAAIK,EAAEL,EAAE,UAAU,OAAOA,IAAIc,GAAUT,IAAP,MAAUA,IAAIS,CAAC,CAAC,SAAS4d,GAAG1e,EAAEK,EAAE,CAACyb,GAAGD,GAAG,GAAG,IAAI7a,EAAEhB,EAAE,QAAegB,IAAP,KAASX,EAAE,KAAKA,GAAGA,EAAE,KAAKW,EAAE,KAAKA,EAAE,KAAKX,GAAGL,EAAE,QAAQK,CAAC,CAAC,SAASse,GAAG3e,EAAEK,EAAEW,EAAE,CAAC,GAAQA,EAAE,QAAS,CAAC,IAAID,EAAEV,EAAE,MAAMU,GAAGf,EAAE,aAAagB,GAAGD,EAAEV,EAAE,MAAMW,EAAE2J,GAAG3K,EAAEgB,CAAC,CAAC,CAAC,CAC9P,IAAIsb,GAAG,CAAC,YAAYvC,GAAG,YAAYtY,GAAE,WAAWA,GAAE,UAAUA,GAAE,oBAAoBA,GAAE,mBAAmBA,GAAE,gBAAgBA,GAAE,QAAQA,GAAE,WAAWA,GAAE,OAAOA,GAAE,SAASA,GAAE,cAAcA,GAAE,iBAAiBA,GAAE,cAAcA,GAAE,iBAAiBA,GAAE,qBAAqBA,GAAE,MAAMA,GAAE,yBAAyB,EAAE,EAAE0a,GAAG,CAAC,YAAYpC,GAAG,YAAY,SAAS/Z,EAAEK,EAAE,CAAC,OAAAmc,GAAE,EAAG,cAAc,CAACxc,EAAWK,IAAT,OAAW,KAAKA,CAAC,EAASL,CAAC,EAAE,WAAW+Z,GAAG,UAAU6D,GAAG,oBAAoB,SAAS5d,EAAEK,EAAEW,EAAE,CAAC,OAAAA,EAASA,GAAP,KAAqBA,EAAE,OAAO,CAAChB,CAAC,CAAC,EAAE,KAAY0d,GAAG,QAC3f,EAAEK,GAAG,KAAK,KAAK1d,EAAEL,CAAC,EAAEgB,CAAC,CAAC,EAAE,gBAAgB,SAAShB,EAAEK,EAAE,CAAC,OAAOqd,GAAG,QAAQ,EAAE1d,EAAEK,CAAC,CAAC,EAAE,mBAAmB,SAASL,EAAEK,EAAE,CAAC,OAAOqd,GAAG,EAAE,EAAE1d,EAAEK,CAAC,CAAC,EAAE,QAAQ,SAASL,EAAEK,EAAE,CAAC,IAAIW,EAAEwb,KAAK,OAAAnc,EAAWA,IAAT,OAAW,KAAKA,EAAEL,EAAEA,EAAC,EAAGgB,EAAE,cAAc,CAAChB,EAAEK,CAAC,EAASL,CAAC,EAAE,WAAW,SAASA,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEyb,GAAE,EAAG,OAAAnc,EAAWW,IAAT,OAAWA,EAAEX,CAAC,EAAEA,EAAEU,EAAE,cAAcA,EAAE,UAAUV,EAAEL,EAAE,CAAC,QAAQ,KAAK,YAAY,KAAK,MAAM,EAAE,SAAS,KAAK,oBAAoBA,EAAE,kBAAkBK,CAAC,EAAEU,EAAE,MAAMf,EAAEA,EAAEA,EAAE,SAASue,GAAG,KAAK,KAAKzd,EAAEd,CAAC,EAAQ,CAACe,EAAE,cAAcf,CAAC,CAAC,EAAE,OAAO,SAASA,EAAE,CAAC,IAAIK,EACrfmc,GAAE,EAAG,OAAAxc,EAAE,CAAC,QAAQA,CAAC,EAASK,EAAE,cAAcL,CAAC,EAAE,SAASud,GAAG,cAAcU,GAAG,iBAAiB,SAASje,EAAE,CAAC,OAAOwc,GAAE,EAAG,cAAcxc,CAAC,EAAE,cAAc,UAAU,CAAC,IAAIA,EAAEud,GAAG,EAAE,EAAEld,EAAEL,EAAE,CAAC,EAAE,OAAAA,EAAEqe,GAAG,KAAK,KAAKre,EAAE,CAAC,CAAC,EAAEwc,GAAE,EAAG,cAAcxc,EAAQ,CAACK,EAAEL,CAAC,CAAC,EAAE,iBAAiB,UAAU,GAAG,qBAAqB,SAASA,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAED,EAAER,EAAEkc,GAAE,EAAG,GAAG9b,EAAE,CAAC,GAAYM,IAAT,OAAW,MAAM,MAAM3B,EAAE,GAAG,CAAC,EAAE2B,EAAEA,GAAG,KAAK,CAAO,GAANA,EAAEX,IAAcqB,IAAP,KAAS,MAAM,MAAMrC,EAAE,GAAG,CAAC,EAAOuc,GAAG,IAAKuB,GAAGpc,EAAEV,EAAEW,CAAC,CAAC,CAACV,EAAE,cAAcU,EAAE,IAAII,EAAE,CAAC,MAAMJ,EAAE,YAAYX,CAAC,EAAE,OAAAC,EAAE,MAAMc,EAAEwc,GAAGZ,GAAG,KAAK,KAAKjc,EACpfK,EAAEpB,CAAC,EAAE,CAACA,CAAC,CAAC,EAAEe,EAAE,OAAO,KAAKkc,GAAG,EAAEC,GAAG,KAAK,KAAKnc,EAAEK,EAAEJ,EAAEX,CAAC,EAAE,OAAO,IAAI,EAASW,CAAC,EAAE,MAAM,UAAU,CAAC,IAAIhB,EAAEwc,GAAE,EAAGnc,EAAEqB,EAAE,iBAAiB,GAAGhB,EAAE,CAAC,IAAIM,EAAEwW,GAAOzW,EAAEwW,GAAGvW,GAAGD,EAAE,EAAE,GAAG,GAAG6I,GAAG7I,CAAC,EAAE,IAAI,SAAS,EAAE,EAAEC,EAAEX,EAAE,IAAIA,EAAE,IAAIW,EAAEA,EAAE+a,KAAK,EAAE/a,IAAIX,GAAG,IAAIW,EAAE,SAAS,EAAE,GAAGX,GAAG,GAAG,MAAMW,EAAEgb,KAAK3b,EAAE,IAAIA,EAAE,IAAIW,EAAE,SAAS,EAAE,EAAE,IAAI,OAAOhB,EAAE,cAAcK,CAAC,EAAE,yBAAyB,EAAE,EAAE+b,GAAG,CAAC,YAAYrC,GAAG,YAAYmE,GAAG,WAAWnE,GAAG,UAAUgD,GAAG,oBAAoBiB,GAAG,mBAAmBH,GAAG,gBAAgBC,GAAG,QAAQK,GAAG,WAAWxB,GAAG,OAAOc,GAAG,SAAS,UAAU,CAAC,OAAOd,GAAGD,EAAE,CAAC,EACrhB,cAAcuB,GAAG,iBAAiB,SAASje,EAAE,CAAC,IAAIK,EAAEoc,KAAK,OAAO2B,GAAG/d,EAAEiB,EAAE,cAActB,CAAC,CAAC,EAAE,cAAc,UAAU,CAAC,IAAIA,EAAE2c,GAAGD,EAAE,EAAE,CAAC,EAAErc,EAAEoc,KAAK,cAAc,MAAM,CAACzc,EAAEK,CAAC,CAAC,EAAE,iBAAiBwc,GAAG,qBAAqBC,GAAG,MAAMwB,GAAG,yBAAyB,EAAE,EAAEjC,GAAG,CAAC,YAAYtC,GAAG,YAAYmE,GAAG,WAAWnE,GAAG,UAAUgD,GAAG,oBAAoBiB,GAAG,mBAAmBH,GAAG,gBAAgBC,GAAG,QAAQK,GAAG,WAAWvB,GAAG,OAAOa,GAAG,SAAS,UAAU,CAAC,OAAOb,GAAGF,EAAE,CAAC,EAAE,cAAcuB,GAAG,iBAAiB,SAASje,EAAE,CAAC,IAAIK,EAAEoc,GAAE,EAAG,OAClfnb,IADyf,KACvfjB,EAAE,cAAcL,EAAEoe,GAAG/d,EAAEiB,EAAE,cAActB,CAAC,CAAC,EAAE,cAAc,UAAU,CAAC,IAAIA,EAAE4c,GAAGF,EAAE,EAAE,CAAC,EAAErc,EAAEoc,KAAK,cAAc,MAAM,CAACzc,EAAEK,CAAC,CAAC,EAAE,iBAAiBwc,GAAG,qBAAqBC,GAAG,MAAMwB,GAAG,yBAAyB,EAAE,EAAE,SAASM,GAAG5e,EAAEK,EAAE,CAAC,GAAGL,GAAGA,EAAE,aAAa,CAACK,EAAEN,EAAE,GAAGM,CAAC,EAAEL,EAAEA,EAAE,aAAa,QAAQgB,KAAKhB,EAAWK,EAAEW,CAAC,aAAIX,EAAEW,CAAC,EAAEhB,EAAEgB,CAAC,GAAG,OAAOX,CAAC,CAAC,OAAOA,CAAC,CAAC,SAASwe,GAAG7e,EAAEK,EAAEW,EAAED,EAAE,CAACV,EAAEL,EAAE,cAAcgB,EAAEA,EAAED,EAAEV,CAAC,EAAEW,EAASA,GAAP,KAAqBX,EAAEN,EAAE,GAAGM,EAAEW,CAAC,EAAEhB,EAAE,cAAcgB,EAAMhB,EAAE,QAAN,IAAcA,EAAE,YAAY,UAAUgB,EAAE,CACrd,IAAI8d,GAAG,CAAC,UAAU,SAAS9e,EAAE,CAAC,OAAOA,EAAEA,EAAE,iBAAiByI,GAAGzI,CAAC,IAAIA,EAAE,EAAE,EAAE,gBAAgB,SAASA,EAAEK,EAAEW,EAAE,CAAChB,EAAEA,EAAE,gBAAgB,IAAIe,EAAEY,GAAC,EAAGrB,EAAEke,GAAGxe,CAAC,EAAEoB,EAAEmZ,GAAGxZ,EAAET,CAAC,EAAEc,EAAE,QAAQf,EAAqBW,GAAP,OAAWI,EAAE,SAASJ,GAAGX,EAAEma,GAAGxa,EAAEoB,EAAEd,CAAC,EAASD,IAAP,OAAWid,GAAGjd,EAAEL,EAAEM,EAAES,CAAC,EAAE0Z,GAAGpa,EAAEL,EAAEM,CAAC,EAAE,EAAE,oBAAoB,SAASN,EAAEK,EAAEW,EAAE,CAAChB,EAAEA,EAAE,gBAAgB,IAAIe,EAAEY,GAAC,EAAGrB,EAAEke,GAAGxe,CAAC,EAAEoB,EAAEmZ,GAAGxZ,EAAET,CAAC,EAAEc,EAAE,IAAI,EAAEA,EAAE,QAAQf,EAAqBW,GAAP,OAAWI,EAAE,SAASJ,GAAGX,EAAEma,GAAGxa,EAAEoB,EAAEd,CAAC,EAASD,IAAP,OAAWid,GAAGjd,EAAEL,EAAEM,EAAES,CAAC,EAAE0Z,GAAGpa,EAAEL,EAAEM,CAAC,EAAE,EAAE,mBAAmB,SAASN,EAAEK,EAAE,CAACL,EAAEA,EAAE,gBAAgB,IAAIgB,EAAEW,GAAC,EAAGZ,EACnfyd,GAAGxe,CAAC,EAAEM,EAAEia,GAAGvZ,EAAED,CAAC,EAAET,EAAE,IAAI,EAAqBD,GAAP,OAAWC,EAAE,SAASD,GAAGA,EAAEma,GAAGxa,EAAEM,EAAES,CAAC,EAASV,IAAP,OAAWid,GAAGjd,EAAEL,EAAEe,EAAEC,CAAC,EAAEyZ,GAAGpa,EAAEL,EAAEe,CAAC,EAAE,CAAC,EAAE,SAASge,GAAG/e,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAE,CAAC,OAAAnB,EAAEA,EAAE,UAA6B,OAAOA,EAAE,uBAAtB,WAA4CA,EAAE,sBAAsBe,EAAEK,EAAED,CAAC,EAAEd,EAAE,WAAWA,EAAE,UAAU,qBAAqB,CAACsR,GAAG3Q,EAAED,CAAC,GAAG,CAAC4Q,GAAGrR,EAAEc,CAAC,EAAE,EAAE,CAC1S,SAAS4d,GAAGhf,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAE,GAAGT,EAAE0V,GAAO5U,EAAEf,EAAE,YAAY,OAAW,OAAOe,GAAlB,UAA4BA,IAAP,KAASA,EAAE2Y,GAAG3Y,CAAC,GAAGd,EAAE8V,GAAG/V,CAAC,EAAE6V,GAAGzV,GAAE,QAAQM,EAAEV,EAAE,aAAae,GAAGL,EAASA,GAAP,MAAsBoV,GAAGnW,EAAEM,CAAC,EAAE0V,IAAI3V,EAAE,IAAIA,EAAEW,EAAEI,CAAC,EAAEpB,EAAE,cAAqBK,EAAE,QAAT,MAAyBA,EAAE,QAAX,OAAiBA,EAAE,MAAM,KAAKA,EAAE,QAAQye,GAAG9e,EAAE,UAAUK,EAAEA,EAAE,gBAAgBL,EAAEe,IAAIf,EAAEA,EAAE,UAAUA,EAAE,4CAA4CM,EAAEN,EAAE,0CAA0CoB,GAAUf,CAAC,CAC5Z,SAAS4e,GAAGjf,EAAEK,EAAEW,EAAED,EAAE,CAACf,EAAEK,EAAE,MAAmB,OAAOA,EAAE,2BAAtB,YAAiDA,EAAE,0BAA0BW,EAAED,CAAC,EAAe,OAAOV,EAAE,kCAAtB,YAAwDA,EAAE,iCAAiCW,EAAED,CAAC,EAAEV,EAAE,QAAQL,GAAG8e,GAAG,oBAAoBze,EAAEA,EAAE,MAAM,IAAI,CAAC,CACpQ,SAAS6e,GAAGlf,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAEN,EAAE,UAAUM,EAAE,MAAMU,EAAEV,EAAE,MAAMN,EAAE,cAAcM,EAAE,KAAK,GAAG+Z,GAAGra,CAAC,EAAE,IAAIoB,EAAEf,EAAE,YAAuB,OAAOe,GAAlB,UAA4BA,IAAP,KAASd,EAAE,QAAQyZ,GAAG3Y,CAAC,GAAGA,EAAEgV,GAAG/V,CAAC,EAAE6V,GAAGzV,GAAE,QAAQH,EAAE,QAAQ6V,GAAGnW,EAAEoB,CAAC,GAAGd,EAAE,MAAMN,EAAE,cAAcoB,EAAEf,EAAE,yBAAsC,OAAOe,GAApB,aAAwByd,GAAG7e,EAAEK,EAAEe,EAAEJ,CAAC,EAAEV,EAAE,MAAMN,EAAE,eAA4B,OAAOK,EAAE,0BAAtB,YAA6D,OAAOC,EAAE,yBAAtB,YAA4D,OAAOA,EAAE,2BAAtB,YAA8D,OAAOA,EAAE,oBAAtB,aAA2CD,EAAEC,EAAE,MACxe,OAAOA,EAAE,oBAAtB,YAA0CA,EAAE,qBAAkC,OAAOA,EAAE,2BAAtB,YAAiDA,EAAE,0BAAyB,EAAGD,IAAIC,EAAE,OAAOwe,GAAG,oBAAoBxe,EAAEA,EAAE,MAAM,IAAI,EAAEqa,GAAG3a,EAAEgB,EAAEV,EAAES,CAAC,EAAET,EAAE,MAAMN,EAAE,eAA4B,OAAOM,EAAE,mBAAtB,aAA0CN,EAAE,OAAO,QAAQ,CAAC,SAASmf,GAAGnf,EAAEK,EAAE,CAAC,GAAG,CAAC,IAAIW,EAAE,GAAGD,EAAEV,EAAE,GAAGW,GAAG+D,GAAGhE,CAAC,EAAEA,EAAEA,EAAE,aAAaA,GAAG,IAAIT,EAAEU,CAAC,OAAOI,EAAE,CAACd,EAAE;AAAA,0BAA6Bc,EAAE,QAAQ;AAAA,EAAKA,EAAE,KAAK,CAAC,MAAM,CAAC,MAAMpB,EAAE,OAAOK,EAAE,MAAMC,EAAE,OAAO,IAAI,CAAC,CAC1d,SAAS8e,GAAGpf,EAAEK,EAAEW,EAAE,CAAC,MAAM,CAAC,MAAMhB,EAAE,OAAO,KAAK,MAAYgB,GAAI,KAAK,OAAaX,GAAI,IAAI,CAAC,CAAC,SAASgf,GAAGrf,EAAEK,EAAE,CAAC,GAAG,CAAC,QAAQ,MAAMA,EAAE,KAAK,CAAC,OAAOW,EAAE,CAAC,WAAW,UAAU,CAAC,MAAMA,CAAE,CAAC,CAAC,CAAC,CAAC,IAAIse,GAAgB,OAAO,SAApB,WAA4B,QAAQ,IAAI,SAASC,GAAGvf,EAAEK,EAAEW,EAAE,CAACA,EAAEuZ,GAAG,GAAGvZ,CAAC,EAAEA,EAAE,IAAI,EAAEA,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE,IAAID,EAAEV,EAAE,MAAM,OAAAW,EAAE,SAAS,UAAU,CAACwe,KAAKA,GAAG,GAAGC,GAAG1e,GAAGse,GAAGrf,EAAEK,CAAC,CAAC,EAASW,CAAC,CACrW,SAAS0e,GAAG1f,EAAEK,EAAEW,EAAE,CAACA,EAAEuZ,GAAG,GAAGvZ,CAAC,EAAEA,EAAE,IAAI,EAAE,IAAID,EAAEf,EAAE,KAAK,yBAAyB,GAAgB,OAAOe,GAApB,WAAsB,CAAC,IAAIT,EAAED,EAAE,MAAMW,EAAE,QAAQ,UAAU,CAAC,OAAOD,EAAET,CAAC,CAAC,EAAEU,EAAE,SAAS,UAAU,CAACqe,GAAGrf,EAAEK,CAAC,CAAC,CAAC,CAAC,IAAIe,EAAEpB,EAAE,UAAU,OAAOoB,IAAP,MAAuB,OAAOA,EAAE,mBAAtB,aAA0CJ,EAAE,SAAS,UAAU,CAACqe,GAAGrf,EAAEK,CAAC,EAAe,OAAOU,GAApB,aAA+B4e,KAAP,KAAUA,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAEA,GAAG,IAAI,IAAI,GAAG,IAAI3e,EAAEX,EAAE,MAAM,KAAK,kBAAkBA,EAAE,MAAM,CAAC,eAAsBW,IAAP,KAASA,EAAE,EAAE,CAAC,CAAC,GAAUA,CAAC,CACnb,SAAS4e,GAAG5f,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,UAAU,GAAUe,IAAP,KAAS,CAACA,EAAEf,EAAE,UAAU,IAAIsf,GAAG,IAAIhf,EAAE,IAAI,IAAIS,EAAE,IAAIV,EAAEC,CAAC,CAAC,MAAMA,EAAES,EAAE,IAAIV,CAAC,EAAWC,IAAT,SAAaA,EAAE,IAAI,IAAIS,EAAE,IAAIV,EAAEC,CAAC,GAAGA,EAAE,IAAIU,CAAC,IAAIV,EAAE,IAAIU,CAAC,EAAEhB,EAAE6f,GAAG,KAAK,KAAK7f,EAAEK,EAAEW,CAAC,EAAEX,EAAE,KAAKL,EAAEA,CAAC,EAAE,CAAC,SAAS8f,GAAG9f,EAAE,CAAC,EAAE,CAAC,IAAIK,EAA4E,IAAvEA,EAAOL,EAAE,MAAP,MAAWK,EAAEL,EAAE,cAAcK,EAASA,IAAP,KAAgBA,EAAE,aAAT,KAA0B,IAAMA,EAAE,OAAOL,EAAEA,EAAEA,EAAE,MAAM,OAAcA,IAAP,MAAU,OAAO,IAAI,CAChW,SAAS+f,GAAG/f,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,OAAQN,EAAE,KAAK,GAAmKA,EAAE,OAAO,MAAMA,EAAE,MAAMM,EAASN,IAAzLA,IAAIK,EAAEL,EAAE,OAAO,OAAOA,EAAE,OAAO,IAAIgB,EAAE,OAAO,OAAOA,EAAE,OAAO,OAAWA,EAAE,MAAN,IAAmBA,EAAE,YAAT,KAAmBA,EAAE,IAAI,IAAIX,EAAEka,GAAG,GAAG,CAAC,EAAEla,EAAE,IAAI,EAAEma,GAAGxZ,EAAEX,EAAE,CAAC,IAAIW,EAAE,OAAO,GAAGhB,EAAmC,CAAC,IAAIggB,GAAGrc,GAAG,kBAAkBmW,GAAG,GAAG,SAASmG,GAAGjgB,EAAEK,EAAEW,EAAED,EAAE,CAACV,EAAE,MAAaL,IAAP,KAASqZ,GAAGhZ,EAAE,KAAKW,EAAED,CAAC,EAAEqY,GAAG/Y,EAAEL,EAAE,MAAMgB,EAAED,CAAC,CAAC,CACnV,SAASmf,GAAGlgB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAACU,EAAEA,EAAE,OAAO,IAAII,EAAEf,EAAE,IAAqC,OAAjCwZ,GAAGxZ,EAAEC,CAAC,EAAES,EAAEmb,GAAGlc,EAAEK,EAAEW,EAAED,EAAEK,EAAEd,CAAC,EAAEU,EAAEub,GAAE,EAAavc,IAAP,MAAU,CAAC8Z,IAAUzZ,EAAE,YAAYL,EAAE,YAAYK,EAAE,OAAO,MAAML,EAAE,OAAO,CAACM,EAAE6f,GAAGngB,EAAEK,EAAEC,CAAC,IAAEI,GAAGM,GAAG2W,GAAGtX,CAAC,EAAEA,EAAE,OAAO,EAAE4f,GAAGjgB,EAAEK,EAAEU,EAAET,CAAC,EAASD,EAAE,MAAK,CACzN,SAAS+f,GAAGpgB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,GAAUN,IAAP,KAAS,CAAC,IAAIoB,EAAEJ,EAAE,KAAK,OAAgB,OAAOI,GAApB,YAAuB,CAACif,GAAGjf,CAAC,GAAYA,EAAE,eAAX,QAAgCJ,EAAE,UAAT,MAA2BA,EAAE,eAAX,QAA+BX,EAAE,IAAI,GAAGA,EAAE,KAAKe,EAAEkf,GAAGtgB,EAAEK,EAAEe,EAAEL,EAAET,CAAC,IAAEN,EAAEiZ,GAAGjY,EAAE,KAAK,KAAKD,EAAEV,EAAEA,EAAE,KAAKC,CAAC,EAAEN,EAAE,IAAIK,EAAE,IAAIL,EAAE,OAAOK,EAASA,EAAE,MAAML,EAAC,CAAW,GAAVoB,EAAEpB,EAAE,MAAc,EAAAA,EAAE,MAAMM,GAAG,CAAC,IAAIa,EAAEC,EAAE,cAA0C,GAA5BJ,EAAEA,EAAE,QAAQA,EAASA,IAAP,KAASA,EAAE2Q,GAAM3Q,EAAEG,EAAEJ,CAAC,GAAGf,EAAE,MAAMK,EAAE,IAAI,OAAO8f,GAAGngB,EAAEK,EAAEC,CAAC,CAAC,CAAC,OAAAD,EAAE,OAAO,EAAEL,EAAE+Y,GAAG3X,EAAEL,CAAC,EAAEf,EAAE,IAAIK,EAAE,IAAIL,EAAE,OAAOK,EAASA,EAAE,MAAML,CAAC,CAC1b,SAASsgB,GAAGtgB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,GAAUN,IAAP,KAAS,CAAC,IAAIoB,EAAEpB,EAAE,cAAc,GAAG2R,GAAGvQ,EAAEL,CAAC,GAAGf,EAAE,MAAMK,EAAE,IAAI,GAAGyZ,GAAG,GAAGzZ,EAAE,aAAaU,EAAEK,GAAOpB,EAAE,MAAMM,KAAb,EAAqBN,EAAE,MAAM,SAAU8Z,GAAG,QAAS,QAAOzZ,EAAE,MAAML,EAAE,MAAMmgB,GAAGngB,EAAEK,EAAEC,CAAC,CAAC,CAAC,OAAOigB,GAAGvgB,EAAEK,EAAEW,EAAED,EAAET,CAAC,CAAC,CACxN,SAASkgB,GAAGxgB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEV,EAAE,aAAaC,EAAES,EAAE,SAASK,EAASpB,IAAP,KAASA,EAAE,cAAc,KAAK,GAAce,EAAE,OAAb,SAAkB,GAAQ,EAAAV,EAAE,KAAK,GAAGA,EAAE,cAAc,CAAC,UAAU,EAAE,UAAU,KAAK,YAAY,IAAI,EAAEG,EAAEigB,GAAGC,EAAE,EAAEA,IAAI1f,MAAM,CAAC,GAAQ,EAAAA,EAAE,YAAY,OAAOhB,EAASoB,IAAP,KAASA,EAAE,UAAUJ,EAAEA,EAAEX,EAAE,MAAMA,EAAE,WAAW,WAAWA,EAAE,cAAc,CAAC,UAAUL,EAAE,UAAU,KAAK,YAAY,IAAI,EAAEK,EAAE,YAAY,KAAKG,EAAEigB,GAAGC,EAAE,EAAEA,IAAI1gB,EAAE,KAAKK,EAAE,cAAc,CAAC,UAAU,EAAE,UAAU,KAAK,YAAY,IAAI,EAAEU,EAASK,IAAP,KAASA,EAAE,UAAUJ,EAAER,EAAEigB,GAAGC,EAAE,EAAEA,IAAI3f,CAAC,MAChfK,IADsf,MACnfL,EAAEK,EAAE,UAAUJ,EAAEX,EAAE,cAAc,MAAMU,EAAEC,EAAER,EAAEigB,GAAGC,EAAE,EAAEA,IAAI3f,EAAE,OAAAkf,GAAGjgB,EAAEK,EAAEC,EAAEU,CAAC,EAASX,EAAE,KAAK,CAAC,SAASsgB,GAAG3gB,EAAEK,EAAE,CAAC,IAAIW,EAAEX,EAAE,KAAcL,IAAP,MAAiBgB,IAAP,MAAiBhB,IAAP,MAAUA,EAAE,MAAMgB,KAAEX,EAAE,OAAO,IAAIA,EAAE,OAAO,QAAO,CAAC,SAASkgB,GAAGvgB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,IAAIc,EAAEgV,GAAGpV,CAAC,EAAEkV,GAAGzV,GAAE,QAAmD,OAA3CW,EAAE+U,GAAG9V,EAAEe,CAAC,EAAEyY,GAAGxZ,EAAEC,CAAC,EAAEU,EAAEkb,GAAGlc,EAAEK,EAAEW,EAAED,EAAEK,EAAEd,CAAC,EAAES,EAAEwb,GAAE,EAAavc,IAAP,MAAU,CAAC8Z,IAAUzZ,EAAE,YAAYL,EAAE,YAAYK,EAAE,OAAO,MAAML,EAAE,OAAO,CAACM,EAAE6f,GAAGngB,EAAEK,EAAEC,CAAC,IAAEI,GAAGK,GAAG4W,GAAGtX,CAAC,EAAEA,EAAE,OAAO,EAAE4f,GAAGjgB,EAAEK,EAAEW,EAAEV,CAAC,EAASD,EAAE,MAAK,CACla,SAASugB,GAAG5gB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,GAAG8V,GAAGpV,CAAC,EAAE,CAAC,IAAII,EAAE,GAAGoV,GAAGnW,CAAC,CAAC,MAAMe,EAAE,GAAW,GAARyY,GAAGxZ,EAAEC,CAAC,EAAYD,EAAE,YAAT,KAAmBwgB,GAAG7gB,EAAEK,CAAC,EAAE2e,GAAG3e,EAAEW,EAAED,CAAC,EAAEme,GAAG7e,EAAEW,EAAED,EAAET,CAAC,EAAES,EAAE,WAAkBf,IAAP,KAAS,CAAC,IAAImB,EAAEd,EAAE,UAAUa,EAAEb,EAAE,cAAcc,EAAE,MAAMD,EAAE,IAAID,EAAEE,EAAE,QAAQhC,EAAE6B,EAAE,YAAuB,OAAO7B,GAAlB,UAA4BA,IAAP,KAASA,EAAE4a,GAAG5a,CAAC,GAAGA,EAAEiX,GAAGpV,CAAC,EAAEkV,GAAGzV,GAAE,QAAQtB,EAAEgX,GAAG9V,EAAElB,CAAC,GAAG,IAAIkC,EAAEL,EAAE,yBAAyB1B,EAAe,OAAO+B,GAApB,YAAoC,OAAOF,EAAE,yBAAtB,WAA8C7B,GAAgB,OAAO6B,EAAE,kCAAtB,YAAqE,OAAOA,EAAE,2BAAtB,aACpcD,IAAIH,GAAGE,IAAI9B,IAAI8f,GAAG5e,EAAEc,EAAEJ,EAAE5B,CAAC,EAAEib,GAAG,GAAG,IAAI7a,EAAEc,EAAE,cAAcc,EAAE,MAAM5B,EAAEob,GAAGta,EAAEU,EAAEI,EAAEb,CAAC,EAAEW,EAAEZ,EAAE,cAAca,IAAIH,GAAGxB,IAAI0B,GAAGgV,GAAG,SAASmE,IAAiB,OAAO/Y,GAApB,aAAwBwd,GAAGxe,EAAEW,EAAEK,EAAEN,CAAC,EAAEE,EAAEZ,EAAE,gBAAgBa,EAAEkZ,IAAI2E,GAAG1e,EAAEW,EAAEE,EAAEH,EAAExB,EAAE0B,EAAE9B,CAAC,IAAIG,GAAgB,OAAO6B,EAAE,2BAAtB,YAA8D,OAAOA,EAAE,oBAAtB,aAAwD,OAAOA,EAAE,oBAAtB,YAA0CA,EAAE,mBAAkB,EAAgB,OAAOA,EAAE,2BAAtB,YAAiDA,EAAE,6BAA0C,OAAOA,EAAE,mBAAtB,aAA0Cd,EAAE,OAAO,WACre,OAAOc,EAAE,mBAAtB,aAA0Cd,EAAE,OAAO,SAASA,EAAE,cAAcU,EAAEV,EAAE,cAAcY,GAAGE,EAAE,MAAMJ,EAAEI,EAAE,MAAMF,EAAEE,EAAE,QAAQhC,EAAE4B,EAAEG,IAAiB,OAAOC,EAAE,mBAAtB,aAA0Cd,EAAE,OAAO,SAASU,EAAE,GAAG,KAAK,CAACI,EAAEd,EAAE,UAAUia,GAAGta,EAAEK,CAAC,EAAEa,EAAEb,EAAE,cAAclB,EAAEkB,EAAE,OAAOA,EAAE,YAAYa,EAAE0d,GAAGve,EAAE,KAAKa,CAAC,EAAEC,EAAE,MAAMhC,EAAEG,EAAEe,EAAE,aAAad,EAAE4B,EAAE,QAAQF,EAAED,EAAE,YAAuB,OAAOC,GAAlB,UAA4BA,IAAP,KAASA,EAAE8Y,GAAG9Y,CAAC,GAAGA,EAAEmV,GAAGpV,CAAC,EAAEkV,GAAGzV,GAAE,QAAQQ,EAAEkV,GAAG9V,EAAEY,CAAC,GAAG,IAAIpB,EAAEmB,EAAE,0BAA0BK,EAAe,OAAOxB,GAApB,YAAoC,OAAOsB,EAAE,yBAAtB,aAC3c,OAAOA,EAAE,kCAAtB,YAAqE,OAAOA,EAAE,2BAAtB,aAAkDD,IAAI5B,GAAGC,IAAI0B,IAAIge,GAAG5e,EAAEc,EAAEJ,EAAEE,CAAC,EAAEmZ,GAAG,GAAG7a,EAAEc,EAAE,cAAcc,EAAE,MAAM5B,EAAEob,GAAGta,EAAEU,EAAEI,EAAEb,CAAC,EAAE,IAAIlB,EAAEiB,EAAE,cAAca,IAAI5B,GAAGC,IAAIH,GAAG6W,GAAG,SAASmE,IAAiB,OAAOva,GAApB,aAAwBgf,GAAGxe,EAAEW,EAAEnB,EAAEkB,CAAC,EAAE3B,EAAEiB,EAAE,gBAAgBlB,EAAEib,IAAI2E,GAAG1e,EAAEW,EAAE7B,EAAE4B,EAAExB,EAAEH,EAAE6B,CAAC,GAAG,KAAKI,GAAgB,OAAOF,EAAE,4BAAtB,YAA+D,OAAOA,EAAE,qBAAtB,aAAyD,OAAOA,EAAE,qBAAtB,YAA2CA,EAAE,oBAAoBJ,EAAE3B,EAAE6B,CAAC,EAAe,OAAOE,EAAE,4BAAtB,YACteA,EAAE,2BAA2BJ,EAAE3B,EAAE6B,CAAC,GAAgB,OAAOE,EAAE,oBAAtB,aAA2Cd,EAAE,OAAO,GAAgB,OAAOc,EAAE,yBAAtB,aAAgDd,EAAE,OAAO,QAAqB,OAAOc,EAAE,oBAAtB,YAA0CD,IAAIlB,EAAE,eAAeT,IAAIS,EAAE,gBAAgBK,EAAE,OAAO,GAAgB,OAAOc,EAAE,yBAAtB,YAA+CD,IAAIlB,EAAE,eAAeT,IAAIS,EAAE,gBAAgBK,EAAE,OAAO,MAAMA,EAAE,cAAcU,EAAEV,EAAE,cAAcjB,GAAG+B,EAAE,MAAMJ,EAAEI,EAAE,MAAM/B,EAAE+B,EAAE,QAAQF,EAAEF,EAAE5B,IAAiB,OAAOgC,EAAE,oBAAtB,YAA0CD,IAAIlB,EAAE,eAAeT,IACjfS,EAAE,gBAAgBK,EAAE,OAAO,GAAgB,OAAOc,EAAE,yBAAtB,YAA+CD,IAAIlB,EAAE,eAAeT,IAAIS,EAAE,gBAAgBK,EAAE,OAAO,MAAMU,EAAE,GAAG,CAAC,OAAO+f,GAAG9gB,EAAEK,EAAEW,EAAED,EAAEK,EAAEd,CAAC,CAAC,CACnK,SAASwgB,GAAG9gB,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAE,CAACuf,GAAG3gB,EAAEK,CAAC,EAAE,IAAIc,GAAOd,EAAE,MAAM,OAAb,EAAkB,GAAG,CAACU,GAAG,CAACI,EAAE,OAAOb,GAAGmW,GAAGpW,EAAEW,EAAE,EAAE,EAAEmf,GAAGngB,EAAEK,EAAEe,CAAC,EAAEL,EAAEV,EAAE,UAAU2f,GAAG,QAAQ3f,EAAE,IAAIa,EAAEC,GAAgB,OAAOH,EAAE,0BAAtB,WAA+C,KAAKD,EAAE,OAAM,EAAG,OAAAV,EAAE,OAAO,EAASL,IAAP,MAAUmB,GAAGd,EAAE,MAAM+Y,GAAG/Y,EAAEL,EAAE,MAAM,KAAKoB,CAAC,EAAEf,EAAE,MAAM+Y,GAAG/Y,EAAE,KAAKa,EAAEE,CAAC,GAAG6e,GAAGjgB,EAAEK,EAAEa,EAAEE,CAAC,EAAEf,EAAE,cAAcU,EAAE,MAAMT,GAAGmW,GAAGpW,EAAEW,EAAE,EAAE,EAASX,EAAE,KAAK,CAAC,SAAS0gB,GAAG/gB,EAAE,CAAC,IAAIK,EAAEL,EAAE,UAAUK,EAAE,eAAeiW,GAAGtW,EAAEK,EAAE,eAAeA,EAAE,iBAAiBA,EAAE,OAAO,EAAEA,EAAE,SAASiW,GAAGtW,EAAEK,EAAE,QAAQ,EAAE,EAAE8a,GAAGnb,EAAEK,EAAE,aAAa,CAAC,CAC5e,SAAS2gB,GAAGhhB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,OAAAkY,GAAE,EAAGC,GAAGnY,CAAC,EAAED,EAAE,OAAO,IAAI4f,GAAGjgB,EAAEK,EAAEW,EAAED,CAAC,EAASV,EAAE,KAAK,CAAC,IAAI4gB,GAAG,CAAC,WAAW,KAAK,YAAY,KAAK,UAAU,CAAC,EAAE,SAASC,GAAGlhB,EAAE,CAAC,MAAM,CAAC,UAAUA,EAAE,UAAU,KAAK,YAAY,IAAI,CAAC,CAClM,SAASmhB,GAAGnhB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEV,EAAE,aAAaC,EAAEO,EAAE,QAAQO,EAAE,GAAGD,GAAOd,EAAE,MAAM,OAAb,EAAkBa,EAA0I,IAAvIA,EAAEC,KAAKD,EAASlB,IAAP,MAAiBA,EAAE,gBAAT,KAAuB,IAAQM,EAAE,KAAP,GAAcY,GAAEE,EAAE,GAAGf,EAAE,OAAO,OAAoBL,IAAP,MAAiBA,EAAE,gBAAT,QAAuBM,GAAG,GAAEE,EAAEK,EAAEP,EAAE,CAAC,EAAYN,IAAP,KAAkC,OAAxBoY,GAAG/X,CAAC,EAAEL,EAAEK,EAAE,cAAwBL,IAAP,OAAWA,EAAEA,EAAE,WAAkBA,IAAP,OAAsBK,EAAE,KAAK,EAAoBL,EAAE,OAAT,KAAcK,EAAE,MAAM,EAAEA,EAAE,MAAM,WAA1CA,EAAE,MAAM,EAA6C,OAAKc,EAAEJ,EAAE,SAASf,EAAEe,EAAE,SAAgBK,GAAGL,EAAEV,EAAE,KAAKe,EAAEf,EAAE,MAAMc,EAAE,CAAC,KAAK,SAAS,SAASA,CAAC,EAAO,EAAAJ,EAAE,IAAWK,IAAP,MAAUA,EAAE,WAAW,EAAEA,EAAE,aAC7eD,GAAGC,EAAEggB,GAAGjgB,EAAEJ,EAAE,EAAE,IAAI,EAAEf,EAAEmZ,GAAGnZ,EAAEe,EAAEC,EAAE,IAAI,EAAEI,EAAE,OAAOf,EAAEL,EAAE,OAAOK,EAAEe,EAAE,QAAQpB,EAAEK,EAAE,MAAMe,EAAEf,EAAE,MAAM,cAAc6gB,GAAGlgB,CAAC,EAAEX,EAAE,cAAc4gB,GAAGjhB,GAAGqhB,GAAGhhB,EAAEc,CAAC,GAAoB,GAAlBb,EAAEN,EAAE,cAAwBM,IAAP,OAAWY,EAAEZ,EAAE,WAAkBY,IAAP,MAAU,OAAOogB,GAAGthB,EAAEK,EAAEc,EAAEJ,EAAEG,EAAEZ,EAAEU,CAAC,EAAE,GAAGI,EAAE,CAACA,EAAEL,EAAE,SAASI,EAAEd,EAAE,KAAKC,EAAEN,EAAE,MAAMkB,EAAEZ,EAAE,QAAQ,IAAIW,EAAE,CAAC,KAAK,SAAS,SAASF,EAAE,QAAQ,EAAE,MAAK,EAAAI,EAAE,IAAId,EAAE,QAAQC,GAAGS,EAAEV,EAAE,MAAMU,EAAE,WAAW,EAAEA,EAAE,aAAaE,EAAEZ,EAAE,UAAU,OAAOU,EAAEgY,GAAGzY,EAAEW,CAAC,EAAEF,EAAE,aAAaT,EAAE,aAAa,UAAiBY,IAAP,KAASE,EAAE2X,GAAG7X,EAAEE,CAAC,GAAGA,EAAE+X,GAAG/X,EAAED,EAAEH,EAAE,IAAI,EAAEI,EAAE,OAAO,GAAGA,EAAE,OACnff,EAAEU,EAAE,OAAOV,EAAEU,EAAE,QAAQK,EAAEf,EAAE,MAAMU,EAAEA,EAAEK,EAAEA,EAAEf,EAAE,MAAMc,EAAEnB,EAAE,MAAM,cAAcmB,EAASA,IAAP,KAAS+f,GAAGlgB,CAAC,EAAE,CAAC,UAAUG,EAAE,UAAUH,EAAE,UAAU,KAAK,YAAYG,EAAE,WAAW,EAAEC,EAAE,cAAcD,EAAEC,EAAE,WAAWpB,EAAE,WAAW,CAACgB,EAAEX,EAAE,cAAc4gB,GAAUlgB,CAAC,CAAC,OAAAK,EAAEpB,EAAE,MAAMA,EAAEoB,EAAE,QAAQL,EAAEgY,GAAG3X,EAAE,CAAC,KAAK,UAAU,SAASL,EAAE,QAAQ,CAAC,EAAO,EAAAV,EAAE,KAAK,KAAKU,EAAE,MAAMC,GAAGD,EAAE,OAAOV,EAAEU,EAAE,QAAQ,KAAYf,IAAP,OAAWgB,EAAEX,EAAE,UAAiBW,IAAP,MAAUX,EAAE,UAAU,CAACL,CAAC,EAAEK,EAAE,OAAO,IAAIW,EAAE,KAAKhB,CAAC,GAAGK,EAAE,MAAMU,EAAEV,EAAE,cAAc,KAAYU,CAAC,CACnd,SAASsgB,GAAGrhB,EAAEK,EAAE,CAAC,OAAAA,EAAE+gB,GAAG,CAAC,KAAK,UAAU,SAAS/gB,CAAC,EAAEL,EAAE,KAAK,EAAE,IAAI,EAAEK,EAAE,OAAOL,EAASA,EAAE,MAAMK,CAAC,CAAC,SAASkhB,GAAGvhB,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAOA,IAAP,MAAU0X,GAAG1X,CAAC,EAAEqY,GAAG/Y,EAAEL,EAAE,MAAM,KAAKgB,CAAC,EAAEhB,EAAEqhB,GAAGhhB,EAAEA,EAAE,aAAa,QAAQ,EAAEL,EAAE,OAAO,EAAEK,EAAE,cAAc,KAAYL,CAAC,CAC/N,SAASshB,GAAGthB,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAE,CAAC,GAAGH,EAAG,OAAGX,EAAE,MAAM,KAAWA,EAAE,OAAO,KAAKU,EAAEqe,GAAG,MAAM/f,EAAE,GAAG,CAAC,CAAC,EAAEkiB,GAAGvhB,EAAEK,EAAEc,EAAEJ,CAAC,GAAYV,EAAE,gBAAT,MAA8BA,EAAE,MAAML,EAAE,MAAMK,EAAE,OAAO,IAAI,OAAKe,EAAEL,EAAE,SAAST,EAAED,EAAE,KAAKU,EAAEqgB,GAAG,CAAC,KAAK,UAAU,SAASrgB,EAAE,QAAQ,EAAET,EAAE,EAAE,IAAI,EAAEc,EAAE+X,GAAG/X,EAAEd,EAAEa,EAAE,IAAI,EAAEC,EAAE,OAAO,EAAEL,EAAE,OAAOV,EAAEe,EAAE,OAAOf,EAAEU,EAAE,QAAQK,EAAEf,EAAE,MAAMU,EAAOV,EAAE,KAAK,GAAI+Y,GAAG/Y,EAAEL,EAAE,MAAM,KAAKmB,CAAC,EAAEd,EAAE,MAAM,cAAc6gB,GAAG/f,CAAC,EAAEd,EAAE,cAAc4gB,GAAU7f,GAAE,GAAQ,EAAAf,EAAE,KAAK,GAAG,OAAOkhB,GAAGvhB,EAAEK,EAAEc,EAAE,IAAI,EAAE,GAAUb,EAAE,OAAT,KAAc,CAChd,GADidS,EAAET,EAAE,aAAaA,EAAE,YAAY,QAC7eS,EAAE,IAAIG,EAAEH,EAAE,KAAK,OAAAA,EAAEG,EAAEE,EAAE,MAAM/B,EAAE,GAAG,CAAC,EAAE0B,EAAEqe,GAAGhe,EAAEL,EAAE,MAAM,EAASwgB,GAAGvhB,EAAEK,EAAEc,EAAEJ,CAAC,CAAC,CAAwB,GAAvBG,GAAOC,EAAEnB,EAAE,cAAT,EAAwB8Z,IAAI5Y,EAAE,CAAK,GAAJH,EAAEW,EAAYX,IAAP,KAAS,CAAC,OAAOI,EAAE,CAACA,EAAC,CAAE,IAAK,GAAEb,EAAE,EAAE,MAAM,IAAK,IAAGA,EAAE,EAAE,MAAM,IAAK,IAAG,IAAK,KAAI,IAAK,KAAI,IAAK,KAAI,IAAK,MAAK,IAAK,MAAK,IAAK,MAAK,IAAK,MAAK,IAAK,OAAM,IAAK,OAAM,IAAK,OAAM,IAAK,QAAO,IAAK,QAAO,IAAK,QAAO,IAAK,SAAQ,IAAK,SAAQ,IAAK,SAAQ,IAAK,SAAQ,IAAK,UAAS,IAAK,UAAS,IAAK,UAASA,EAAE,GAAG,MAAM,IAAK,WAAUA,EAAE,UAAU,MAAM,QAAQA,EAAE,CAAC,CAACA,EAAOA,GAAGS,EAAE,eAAeI,GAAI,EAAEb,EAC/eA,IAAJ,GAAOA,IAAIc,EAAE,YAAYA,EAAE,UAAUd,EAAE6Z,GAAGna,EAAEM,CAAC,EAAEgd,GAAGvc,EAAEf,EAAEM,EAAE,EAAE,EAAE,CAAC,OAAAkhB,GAAE,EAAGzgB,EAAEqe,GAAG,MAAM/f,EAAE,GAAG,CAAC,CAAC,EAASkiB,GAAGvhB,EAAEK,EAAEc,EAAEJ,CAAC,CAAC,CAAC,OAAUT,EAAE,OAAT,MAAqBD,EAAE,OAAO,IAAIA,EAAE,MAAML,EAAE,MAAMK,EAAEohB,GAAG,KAAK,KAAKzhB,CAAC,EAAEM,EAAE,YAAYD,EAAE,OAAKL,EAAEoB,EAAE,YAAY0W,GAAGxC,GAAGhV,EAAE,WAAW,EAAEuX,GAAGxX,EAAEK,EAAE,GAAGqX,GAAG,KAAY/X,IAAP,OAAWoX,GAAGC,IAAI,EAAEE,GAAGH,GAAGC,IAAI,EAAEG,GAAGJ,GAAGC,IAAI,EAAEC,GAAGC,GAAGvX,EAAE,GAAGwX,GAAGxX,EAAE,SAASsX,GAAGjX,GAAGA,EAAEghB,GAAGhhB,EAAEU,EAAE,QAAQ,EAAEV,EAAE,OAAO,KAAYA,EAAC,CAAC,SAASqhB,GAAG1hB,EAAEK,EAAEW,EAAE,CAAChB,EAAE,OAAOK,EAAE,IAAIU,EAAEf,EAAE,UAAiBe,IAAP,OAAWA,EAAE,OAAOV,GAAGuZ,GAAG5Z,EAAE,OAAOK,EAAEW,CAAC,CAAC,CACxc,SAAS2gB,GAAG3hB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,IAAIc,EAAEpB,EAAE,cAAqBoB,IAAP,KAASpB,EAAE,cAAc,CAAC,YAAYK,EAAE,UAAU,KAAK,mBAAmB,EAAE,KAAKU,EAAE,KAAKC,EAAE,SAASV,CAAC,GAAGc,EAAE,YAAYf,EAAEe,EAAE,UAAU,KAAKA,EAAE,mBAAmB,EAAEA,EAAE,KAAKL,EAAEK,EAAE,KAAKJ,EAAEI,EAAE,SAASd,EAAE,CAC3O,SAASshB,GAAG5hB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEV,EAAE,aAAaC,EAAES,EAAE,YAAYK,EAAEL,EAAE,KAAsC,GAAjCkf,GAAGjgB,EAAEK,EAAEU,EAAE,SAASC,CAAC,EAAED,EAAEF,EAAE,QAAgBE,EAAE,EAAGA,EAAEA,EAAE,EAAE,EAAEV,EAAE,OAAO,QAAQ,CAAC,GAAUL,IAAP,MAAeA,EAAE,MAAM,IAAKA,EAAE,IAAIA,EAAEK,EAAE,MAAaL,IAAP,MAAU,CAAC,GAAQA,EAAE,MAAP,GAAkBA,EAAE,gBAAT,MAAwB0hB,GAAG1hB,EAAEgB,EAAEX,CAAC,UAAeL,EAAE,MAAP,GAAW0hB,GAAG1hB,EAAEgB,EAAEX,CAAC,UAAiBL,EAAE,QAAT,KAAe,CAACA,EAAE,MAAM,OAAOA,EAAEA,EAAEA,EAAE,MAAM,QAAQ,CAAC,GAAGA,IAAIK,EAAE,MAAML,EAAE,KAAYA,EAAE,UAAT,MAAkB,CAAC,GAAUA,EAAE,SAAT,MAAiBA,EAAE,SAASK,EAAE,MAAML,EAAEA,EAAEA,EAAE,MAAM,CAACA,EAAE,QAAQ,OAAOA,EAAE,OAAOA,EAAEA,EAAE,OAAO,CAACe,GAAG,CAAC,CAAQ,GAAPP,EAAEK,EAAEE,CAAC,EAAU,EAAAV,EAAE,KAAK,GAAGA,EAAE,cAC/e,SAAU,QAAOC,GAAG,IAAK,WAAqB,IAAVU,EAAEX,EAAE,MAAUC,EAAE,KAAYU,IAAP,MAAUhB,EAAEgB,EAAE,UAAiBhB,IAAP,MAAiBub,GAAGvb,CAAC,IAAX,OAAeM,EAAEU,GAAGA,EAAEA,EAAE,QAAQA,EAAEV,EAASU,IAAP,MAAUV,EAAED,EAAE,MAAMA,EAAE,MAAM,OAAOC,EAAEU,EAAE,QAAQA,EAAE,QAAQ,MAAM2gB,GAAGthB,EAAE,GAAGC,EAAEU,EAAEI,CAAC,EAAE,MAAM,IAAK,YAA6B,IAAjBJ,EAAE,KAAKV,EAAED,EAAE,MAAUA,EAAE,MAAM,KAAYC,IAAP,MAAU,CAAe,GAAdN,EAAEM,EAAE,UAAoBN,IAAP,MAAiBub,GAAGvb,CAAC,IAAX,KAAa,CAACK,EAAE,MAAMC,EAAE,KAAK,CAACN,EAAEM,EAAE,QAAQA,EAAE,QAAQU,EAAEA,EAAEV,EAAEA,EAAEN,CAAC,CAAC2hB,GAAGthB,EAAE,GAAGW,EAAE,KAAKI,CAAC,EAAE,MAAM,IAAK,WAAWugB,GAAGthB,EAAE,GAAG,KAAK,KAAK,MAAM,EAAE,MAAM,QAAQA,EAAE,cAAc,IAAI,CAAC,OAAOA,EAAE,KAAK,CAC7d,SAASwgB,GAAG7gB,EAAEK,EAAE,CAAM,EAAAA,EAAE,KAAK,IAAWL,IAAP,OAAWA,EAAE,UAAU,KAAKK,EAAE,UAAU,KAAKA,EAAE,OAAO,EAAE,CAAC,SAAS8f,GAAGngB,EAAEK,EAAEW,EAAE,CAAuD,GAA/ChB,IAAP,OAAWK,EAAE,aAAaL,EAAE,cAAc4a,IAAIva,EAAE,MAAc,EAAAW,EAAEX,EAAE,YAAY,OAAO,KAAK,GAAUL,IAAP,MAAUK,EAAE,QAAQL,EAAE,MAAM,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAE,GAAUgB,EAAE,QAAT,KAAe,CAA4C,IAA3CL,EAAEK,EAAE,MAAMW,EAAE+X,GAAG/Y,EAAEA,EAAE,YAAY,EAAEK,EAAE,MAAMW,EAAMA,EAAE,OAAOX,EAASL,EAAE,UAAT,MAAkBA,EAAEA,EAAE,QAAQgB,EAAEA,EAAE,QAAQ+X,GAAG/Y,EAAEA,EAAE,YAAY,EAAEgB,EAAE,OAAOX,EAAEW,EAAE,QAAQ,IAAI,CAAC,OAAOX,EAAE,KAAK,CAC9a,SAASwhB,GAAG7hB,EAAEK,EAAEW,EAAE,CAAC,OAAOX,EAAE,IAAG,CAAE,IAAK,GAAE0gB,GAAG1gB,CAAC,EAAEmY,GAAE,EAAG,MAAM,IAAK,GAAE6C,GAAGhb,CAAC,EAAE,MAAM,IAAK,GAAE+V,GAAG/V,EAAE,IAAI,GAAGmW,GAAGnW,CAAC,EAAE,MAAM,IAAK,GAAE8a,GAAG9a,EAAEA,EAAE,UAAU,aAAa,EAAE,MAAM,IAAK,IAAG,IAAIU,EAAEV,EAAE,KAAK,SAASC,EAAED,EAAE,cAAc,MAAMG,EAAE8Y,GAAGvY,EAAE,aAAa,EAAEA,EAAE,cAAcT,EAAE,MAAM,IAAK,IAAqB,GAAlBS,EAAEV,EAAE,cAAwBU,IAAP,KAAU,OAAUA,EAAE,aAAT,MAA2BP,EAAEK,EAAEA,EAAE,QAAQ,CAAC,EAAER,EAAE,OAAO,IAAI,MAAaW,EAAEX,EAAE,MAAM,WAAmB8gB,GAAGnhB,EAAEK,EAAEW,CAAC,GAAER,EAAEK,EAAEA,EAAE,QAAQ,CAAC,EAAEb,EAAEmgB,GAAGngB,EAAEK,EAAEW,CAAC,EAAgBhB,IAAP,KAASA,EAAE,QAAQ,MAAKQ,EAAEK,EAAEA,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAK,IAC7d,GADgeE,GAAOC,EACrfX,EAAE,cAD8e,EAC1dL,EAAE,MAAM,IAAK,CAAC,GAAGe,EAAE,OAAO6gB,GAAG5hB,EAAEK,EAAEW,CAAC,EAAEX,EAAE,OAAO,GAAG,CAA6F,GAA5FC,EAAED,EAAE,cAAqBC,IAAP,OAAWA,EAAE,UAAU,KAAKA,EAAE,KAAK,KAAKA,EAAE,WAAW,MAAME,EAAEK,EAAEA,EAAE,OAAO,EAAKE,EAAE,MAAW,OAAO,KAAK,IAAK,IAAG,IAAK,IAAG,OAAOV,EAAE,MAAM,EAAEmgB,GAAGxgB,EAAEK,EAAEW,CAAC,CAAC,CAAC,OAAOmf,GAAGngB,EAAEK,EAAEW,CAAC,CAAC,CAAC,IAAI8gB,GAAGC,GAAGC,GAAGC,GACxQH,GAAG,SAAS9hB,EAAEK,EAAE,CAAC,QAAQW,EAAEX,EAAE,MAAaW,IAAP,MAAU,CAAC,GAAOA,EAAE,MAAN,GAAeA,EAAE,MAAN,EAAUhB,EAAE,YAAYgB,EAAE,SAAS,UAAcA,EAAE,MAAN,GAAkBA,EAAE,QAAT,KAAe,CAACA,EAAE,MAAM,OAAOA,EAAEA,EAAEA,EAAE,MAAM,QAAQ,CAAC,GAAGA,IAAIX,EAAE,MAAM,KAAYW,EAAE,UAAT,MAAkB,CAAC,GAAUA,EAAE,SAAT,MAAiBA,EAAE,SAASX,EAAE,OAAOW,EAAEA,EAAE,MAAM,CAACA,EAAE,QAAQ,OAAOA,EAAE,OAAOA,EAAEA,EAAE,OAAO,CAAC,EAAE+gB,GAAG,UAAU,GACvTC,GAAG,SAAShiB,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAEN,EAAE,cAAc,GAAGM,IAAIS,EAAE,CAACf,EAAEK,EAAE,UAAU6a,GAAGH,GAAG,OAAO,EAAE,IAAI3Z,EAAE,KAAK,OAAOJ,EAAC,CAAE,IAAK,QAAQV,EAAEkF,GAAGxF,EAAEM,CAAC,EAAES,EAAEyE,GAAGxF,EAAEe,CAAC,EAAEK,EAAE,GAAG,MAAM,IAAK,SAASd,EAAEP,EAAE,GAAGO,EAAE,CAAC,MAAM,MAAM,CAAC,EAAES,EAAEhB,EAAE,GAAGgB,EAAE,CAAC,MAAM,MAAM,CAAC,EAAEK,EAAE,GAAG,MAAM,IAAK,WAAWd,EAAE0F,GAAGhG,EAAEM,CAAC,EAAES,EAAEiF,GAAGhG,EAAEe,CAAC,EAAEK,EAAE,GAAG,MAAM,QAAqB,OAAOd,EAAE,SAAtB,YAA4C,OAAOS,EAAE,SAAtB,aAAgCf,EAAE,QAAQ4U,GAAG,CAAC9N,GAAG9F,EAAED,CAAC,EAAE,IAAII,EAAEH,EAAE,KAAK,IAAI7B,KAAKmB,EAAE,GAAG,CAACS,EAAE,eAAe5B,CAAC,GAAGmB,EAAE,eAAenB,CAAC,GAASmB,EAAEnB,CAAC,GAAT,KAAW,GAAaA,IAAV,QAAY,CAAC,IAAI+B,EAAEZ,EAAEnB,CAAC,EAAE,IAAIgC,KAAKD,EAAEA,EAAE,eAAeC,CAAC,IAClfH,IAAIA,EAAE,IAAIA,EAAEG,CAAC,EAAE,GAAG,MAAiChC,IAA5B,2BAA4CA,IAAb,YAAmDA,IAAnC,kCAAmEA,IAA7B,4BAA8CA,IAAd,cAAkB0D,GAAG,eAAe1D,CAAC,EAAEiC,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAI,KAAKjC,EAAE,IAAI,GAAG,IAAIA,KAAK4B,EAAE,CAAC,IAAIE,EAAEF,EAAE5B,CAAC,EAAwB,GAAtB+B,EAAUZ,IAAEnB,CAAC,EAAY4B,EAAE,eAAe5B,CAAC,GAAG8B,IAAIC,IAAUD,GAAN,MAAeC,GAAN,MAAS,GAAa/B,IAAV,QAAY,GAAG+B,EAAE,CAAC,IAAIC,KAAKD,EAAE,CAACA,EAAE,eAAeC,CAAC,GAAGF,GAAGA,EAAE,eAAeE,CAAC,IAAIH,IAAIA,EAAE,IAAIA,EAAEG,CAAC,EAAE,IAAI,IAAIA,KAAKF,EAAEA,EAAE,eAAeE,CAAC,GAAGD,EAAEC,CAAC,IAAIF,EAAEE,CAAC,IAAIH,IAAIA,EAAE,IAAIA,EAAEG,CAAC,EAAEF,EAAEE,CAAC,EAAE,MAAMH,IAAII,IAAIA,EAAE,IAAIA,EAAE,KAAKjC,EACpf6B,CAAC,GAAGA,EAAEC,OAAkC9B,IAA5B,2BAA+B8B,EAAEA,EAAEA,EAAE,OAAO,OAAOC,EAAEA,EAAEA,EAAE,OAAO,OAAaD,GAAN,MAASC,IAAID,IAAIG,EAAEA,GAAG,IAAI,KAAKjC,EAAE8B,CAAC,GAAgB9B,IAAb,WAA0B,OAAO8B,GAAlB,UAAgC,OAAOA,GAAlB,WAAsBG,EAAEA,GAAG,IAAI,KAAKjC,EAAE,GAAG8B,CAAC,EAAqC9B,IAAnC,kCAAmEA,IAA7B,6BAAiC0D,GAAG,eAAe1D,CAAC,GAAS8B,GAAN,MAAsB9B,IAAb,YAAgB,EAAE,SAASa,CAAC,EAAEoB,GAAGF,IAAID,IAAIG,EAAE,MAAMA,EAAEA,GAAG,IAAI,KAAKjC,EAAE8B,CAAC,EAAE,CAACD,IAAII,EAAEA,GAAG,IAAI,KAAK,QAAQJ,CAAC,EAAE,IAAI7B,EAAEiC,GAAKf,EAAE,YAAYlB,KAAEkB,EAAE,OAAO,EAAC,CAAC,EAAE4hB,GAAG,SAASjiB,EAAEK,EAAEW,EAAED,EAAE,CAACC,IAAID,IAAIV,EAAE,OAAO,EAAE,EAChe,SAAS6hB,GAAGliB,EAAEK,EAAE,CAAC,GAAG,CAACK,EAAE,OAAOV,EAAE,SAAQ,CAAE,IAAK,SAASK,EAAEL,EAAE,KAAK,QAAQgB,EAAE,KAAYX,IAAP,MAAiBA,EAAE,YAAT,OAAqBW,EAAEX,GAAGA,EAAEA,EAAE,QAAeW,IAAP,KAAShB,EAAE,KAAK,KAAKgB,EAAE,QAAQ,KAAK,MAAM,IAAK,YAAYA,EAAEhB,EAAE,KAAK,QAAQe,EAAE,KAAYC,IAAP,MAAiBA,EAAE,YAAT,OAAqBD,EAAEC,GAAGA,EAAEA,EAAE,QAAeD,IAAP,KAASV,GAAUL,EAAE,OAAT,KAAcA,EAAE,KAAK,KAAKA,EAAE,KAAK,QAAQ,KAAKe,EAAE,QAAQ,IAAI,CAAC,CAC5U,SAASa,GAAE5B,EAAE,CAAC,IAAIK,EAASL,EAAE,YAAT,MAAoBA,EAAE,UAAU,QAAQA,EAAE,MAAMgB,EAAE,EAAED,EAAE,EAAE,GAAGV,EAAE,QAAQC,EAAEN,EAAE,MAAaM,IAAP,MAAUU,GAAGV,EAAE,MAAMA,EAAE,WAAWS,GAAGT,EAAE,aAAa,SAASS,GAAGT,EAAE,MAAM,SAASA,EAAE,OAAON,EAAEM,EAAEA,EAAE,YAAa,KAAIA,EAAEN,EAAE,MAAaM,IAAP,MAAUU,GAAGV,EAAE,MAAMA,EAAE,WAAWS,GAAGT,EAAE,aAAaS,GAAGT,EAAE,MAAMA,EAAE,OAAON,EAAEM,EAAEA,EAAE,QAAQ,OAAAN,EAAE,cAAce,EAAEf,EAAE,WAAWgB,EAASX,CAAC,CAC7V,SAAS8hB,GAAGniB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEV,EAAE,aAAmB,OAANuX,GAAGvX,CAAC,EAASA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,IAAK,GAAE,IAAK,IAAG,IAAK,GAAE,IAAK,GAAE,IAAK,IAAG,IAAK,GAAE,IAAK,IAAG,OAAOuB,GAAEvB,CAAC,EAAE,KAAK,IAAK,GAAE,OAAO+V,GAAG/V,EAAE,IAAI,GAAGgW,GAAE,EAAGzU,GAAEvB,CAAC,EAAE,KAAK,IAAK,GAAE,OAAAU,EAAEV,EAAE,UAAU+a,GAAE,EAAGhb,EAAE6V,EAAE,EAAE7V,EAAEK,EAAC,EAAEgb,GAAE,EAAG1a,EAAE,iBAAiBA,EAAE,QAAQA,EAAE,eAAeA,EAAE,eAAe,OAAgBf,IAAP,MAAiBA,EAAE,QAAT,QAAesY,GAAGjY,CAAC,EAAEA,EAAE,OAAO,EAASL,IAAP,MAAUA,EAAE,cAAc,cAAmB,EAAAK,EAAE,MAAM,OAAOA,EAAE,OAAO,KAAY0X,KAAP,OAAYqK,GAAGrK,EAAE,EAAEA,GAAG,QAAOgK,GAAG/hB,EAAEK,CAAC,EAAEuB,GAAEvB,CAAC,EAAS,KAAK,IAAK,GAAEib,GAAGjb,CAAC,EAAE,IAAIC,EAAE4a,GAAGD,GAAG,OAAO,EACpf,GAATja,EAAEX,EAAE,KAAeL,IAAP,MAAgBK,EAAE,WAAR,KAAkB2hB,GAAGhiB,EAAEK,EAAEW,EAAED,EAAET,CAAC,EAAEN,EAAE,MAAMK,EAAE,MAAMA,EAAE,OAAO,IAAIA,EAAE,OAAO,aAAa,CAAC,GAAG,CAACU,EAAE,CAAC,GAAUV,EAAE,YAAT,KAAmB,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAE,OAAAuC,GAAEvB,CAAC,EAAS,IAAI,CAAkB,GAAjBL,EAAEkb,GAAGH,GAAG,OAAO,EAAKzC,GAAGjY,CAAC,EAAE,CAACU,EAAEV,EAAE,UAAUW,EAAEX,EAAE,KAAK,IAAIe,EAAEf,EAAE,cAA+C,OAAjCU,EAAE0U,EAAE,EAAEpV,EAAEU,EAAE2U,EAAE,EAAEtU,EAAEpB,GAAOK,EAAE,KAAK,KAAZ,EAAsBW,EAAC,CAAE,IAAK,SAAS,EAAE,SAASD,CAAC,EAAE,EAAE,QAAQA,CAAC,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ,EAAE,OAAOA,CAAC,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIT,EAAE,EAAEA,EAAEkT,GAAG,OAAOlT,IAAI,EAAEkT,GAAGlT,CAAC,EAAES,CAAC,EAAE,MAAM,IAAK,SAAS,EAAE,QAAQA,CAAC,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO,EAAE,QACnhBA,CAAC,EAAE,EAAE,OAAOA,CAAC,EAAE,MAAM,IAAK,UAAU,EAAE,SAASA,CAAC,EAAE,MAAM,IAAK,QAAQ0E,GAAG1E,EAAEK,CAAC,EAAE,EAAE,UAAUL,CAAC,EAAE,MAAM,IAAK,SAASA,EAAE,cAAc,CAAC,YAAY,CAAC,CAACK,EAAE,QAAQ,EAAE,EAAE,UAAUL,CAAC,EAAE,MAAM,IAAK,WAAWkF,GAAGlF,EAAEK,CAAC,EAAE,EAAE,UAAUL,CAAC,CAAC,CAAC+F,GAAG9F,EAAEI,CAAC,EAAEd,EAAE,KAAK,QAAQa,KAAKC,EAAE,GAAGA,EAAE,eAAeD,CAAC,EAAE,CAAC,IAAID,EAAEE,EAAED,CAAC,EAAeA,IAAb,WAA0B,OAAOD,GAAlB,SAAoBH,EAAE,cAAcG,IAASE,EAAE,2BAAP,IAAiCuT,GAAG5T,EAAE,YAAYG,EAAElB,CAAC,EAAEM,EAAE,CAAC,WAAWY,CAAC,GAAc,OAAOA,GAAlB,UAAqBH,EAAE,cAAc,GAAGG,IAASE,EAAE,2BAAP,IAAiCuT,GAAG5T,EAAE,YAC1eG,EAAElB,CAAC,EAAEM,EAAE,CAAC,WAAW,GAAGY,CAAC,GAAG2B,GAAG,eAAe1B,CAAC,GAASD,GAAN,MAAsBC,IAAb,YAAgB,EAAE,SAASJ,CAAC,CAAC,CAAC,OAAOC,GAAG,IAAK,QAAQqE,GAAGtE,CAAC,EAAE8E,GAAG9E,EAAEK,EAAE,EAAE,EAAE,MAAM,IAAK,WAAWiE,GAAGtE,CAAC,EAAEoF,GAAGpF,CAAC,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAqB,OAAOK,EAAE,SAAtB,aAAgCL,EAAE,QAAQ6T,GAAG,CAAC7T,EAAET,EAAED,EAAE,YAAYU,EAASA,IAAP,OAAWV,EAAE,OAAO,EAAE,KAAK,CAACc,EAAMb,EAAE,WAAN,EAAeA,EAAEA,EAAE,cAA+CN,IAAjC,iCAAqCA,EAAEoG,GAAGpF,CAAC,GAAoChB,IAAjC,+BAA8CgB,IAAX,UAAchB,EAAEmB,EAAE,cAAc,KAAK,EAAEnB,EAAE,UAAU,qBAAuBA,EAAEA,EAAE,YAAYA,EAAE,UAAU,GAC9f,OAAOe,EAAE,IAApB,SAAuBf,EAAEmB,EAAE,cAAcH,EAAE,CAAC,GAAGD,EAAE,EAAE,CAAC,GAAGf,EAAEmB,EAAE,cAAcH,CAAC,EAAaA,IAAX,WAAeG,EAAEnB,EAAEe,EAAE,SAASI,EAAE,SAAS,GAAGJ,EAAE,OAAOI,EAAE,KAAKJ,EAAE,QAAQf,EAAEmB,EAAE,gBAAgBnB,EAAEgB,CAAC,EAAEhB,EAAEyV,EAAE,EAAEpV,EAAEL,EAAE0V,EAAE,EAAE3U,EAAE+gB,GAAG9hB,EAAEK,EAAE,GAAG,EAAE,EAAEA,EAAE,UAAUL,EAAEA,EAAE,CAAW,OAAVmB,EAAE4F,GAAG/F,EAAED,CAAC,EAASC,EAAC,CAAE,IAAK,SAAS,EAAE,SAAShB,CAAC,EAAE,EAAE,QAAQA,CAAC,EAAEM,EAAES,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ,EAAE,OAAOf,CAAC,EAAEM,EAAES,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIT,EAAE,EAAEA,EAAEkT,GAAG,OAAOlT,IAAI,EAAEkT,GAAGlT,CAAC,EAAEN,CAAC,EAAEM,EAAES,EAAE,MAAM,IAAK,SAAS,EAAE,QAAQf,CAAC,EAAEM,EAAES,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO,EAAE,QAClff,CAAC,EAAE,EAAE,OAAOA,CAAC,EAAEM,EAAES,EAAE,MAAM,IAAK,UAAU,EAAE,SAASf,CAAC,EAAEM,EAAES,EAAE,MAAM,IAAK,QAAQ0E,GAAGzF,EAAEe,CAAC,EAAET,EAAEkF,GAAGxF,EAAEe,CAAC,EAAE,EAAE,UAAUf,CAAC,EAAE,MAAM,IAAK,SAASM,EAAES,EAAE,MAAM,IAAK,SAASf,EAAE,cAAc,CAAC,YAAY,CAAC,CAACe,EAAE,QAAQ,EAAET,EAAEP,EAAE,GAAGgB,EAAE,CAAC,MAAM,MAAM,CAAC,EAAE,EAAE,UAAUf,CAAC,EAAE,MAAM,IAAK,WAAWiG,GAAGjG,EAAEe,CAAC,EAAET,EAAE0F,GAAGhG,EAAEe,CAAC,EAAE,EAAE,UAAUf,CAAC,EAAE,MAAM,QAAQM,EAAES,CAAC,CAAC+F,GAAG9F,EAAEV,CAAC,EAAEY,EAAEZ,EAAE,IAAIc,KAAKF,EAAE,GAAGA,EAAE,eAAeE,CAAC,EAAE,CAAC,IAAIH,EAAEC,EAAEE,CAAC,EAAYA,IAAV,QAAYwF,GAAG5G,EAAEiB,CAAC,EAA8BG,IAA5B,2BAA+BH,EAAEA,EAAEA,EAAE,OAAO,OAAaA,GAAN,MAASsF,GAAGvG,EAAEiB,CAAC,GAAgBG,IAAb,WAA0B,OAAOH,GAAlB,UACxdD,IAD6e,YACreC,IAAL,KAASuF,GAAGxG,EAAEiB,CAAC,EAAa,OAAOA,GAAlB,UAAqBuF,GAAGxG,EAAE,GAAGiB,CAAC,EAAqCG,IAAnC,kCAAmEA,IAA7B,4BAA8CA,IAAd,cAAkByB,GAAG,eAAezB,CAAC,EAAQH,GAAN,MAAsBG,IAAb,YAAgB,EAAE,SAASpB,CAAC,EAAQiB,GAAN,MAASyC,GAAG1D,EAAEoB,EAAEH,EAAEE,CAAC,EAAE,CAAC,OAAOH,EAAC,CAAE,IAAK,QAAQqE,GAAGrF,CAAC,EAAE6F,GAAG7F,EAAEe,EAAE,EAAE,EAAE,MAAM,IAAK,WAAWsE,GAAGrF,CAAC,EAAEmG,GAAGnG,CAAC,EAAE,MAAM,IAAK,SAAee,EAAE,OAAR,MAAef,EAAE,aAAa,QAAQ,GAAGkF,GAAGnE,EAAE,KAAK,CAAC,EAAE,MAAM,IAAK,SAASf,EAAE,SAAS,CAAC,CAACe,EAAE,SAASK,EAAEL,EAAE,MAAYK,GAAN,KAAQ2E,GAAG/F,EAAE,CAAC,CAACe,EAAE,SAASK,EAAE,EAAE,EAAQL,EAAE,cAAR,MAAsBgF,GAAG/F,EAAE,CAAC,CAACe,EAAE,SAASA,EAAE,aAClf,EAAE,EAAE,MAAM,QAAqB,OAAOT,EAAE,SAAtB,aAAgCN,EAAE,QAAQ4U,GAAG,CAAC,OAAO5T,EAAC,CAAE,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWD,EAAE,CAAC,CAACA,EAAE,UAAU,MAAMf,EAAE,IAAK,MAAMe,EAAE,GAAG,MAAMf,EAAE,QAAQe,EAAE,EAAE,CAAC,CAACA,IAAIV,EAAE,OAAO,EAAE,CAAQA,EAAE,MAAT,OAAeA,EAAE,OAAO,IAAIA,EAAE,OAAO,QAAQ,CAAC,OAAAuB,GAAEvB,CAAC,EAAS,KAAK,IAAK,GAAE,GAAGL,GAASK,EAAE,WAAR,KAAkB4hB,GAAGjiB,EAAEK,EAAEL,EAAE,cAAce,CAAC,MAAM,CAAC,GAAc,OAAOA,GAAlB,UAA4BV,EAAE,YAAT,KAAmB,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAkC,GAAhC2B,EAAEka,GAAGD,GAAG,OAAO,EAAEC,GAAGH,GAAG,OAAO,EAAKzC,GAAGjY,CAAC,EAAE,CAAyC,GAAxCU,EAAEV,EAAE,UAAUW,EAAEX,EAAE,cAAcU,EAAE0U,EAAE,EAAEpV,GAAKe,EAAEL,EAAE,YAAYC,KAAKhB,EACvf6X,GAAU7X,IAAP,MAAS,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE2U,GAAG5T,EAAE,UAAUC,GAAOhB,EAAE,KAAK,KAAZ,CAAc,EAAE,MAAM,IAAK,GAAOA,EAAE,cAAc,2BAArB,IAA+C2U,GAAG5T,EAAE,UAAUC,GAAOhB,EAAE,KAAK,KAAZ,CAAc,CAAC,CAACoB,IAAIf,EAAE,OAAO,EAAE,MAAMU,GAAOC,EAAE,WAAN,EAAeA,EAAEA,EAAE,eAAe,eAAeD,CAAC,EAAEA,EAAE0U,EAAE,EAAEpV,EAAEA,EAAE,UAAUU,CAAC,CAAC,OAAAa,GAAEvB,CAAC,EAAS,KAAK,IAAK,IAA0B,GAAvBD,EAAES,CAAC,EAAEE,EAAEV,EAAE,cAAwBL,IAAP,MAAiBA,EAAE,gBAAT,MAA+BA,EAAE,cAAc,aAAvB,KAAkC,CAAC,GAAGU,GAAUoX,KAAP,MAAgBzX,EAAE,KAAK,GAAS,EAAAA,EAAE,MAAM,KAAKkY,GAAE,EAAGC,GAAE,EAAGnY,EAAE,OAAO,MAAMe,EAAE,WAAWA,EAAEkX,GAAGjY,CAAC,EAASU,IAAP,MAAiBA,EAAE,aAAT,KAAoB,CAAC,GACzff,IAD4f,KAC1f,CAAC,GAAG,CAACoB,EAAE,MAAM,MAAM/B,EAAE,GAAG,CAAC,EAAiD,GAA/C+B,EAAEf,EAAE,cAAce,EAASA,IAAP,KAASA,EAAE,WAAW,KAAQ,CAACA,EAAE,MAAM,MAAM/B,EAAE,GAAG,CAAC,EAAE+B,EAAEqU,EAAE,EAAEpV,CAAC,MAAMmY,GAAE,EAAQ,EAAAnY,EAAE,MAAM,OAAOA,EAAE,cAAc,MAAMA,EAAE,OAAO,EAAEuB,GAAEvB,CAAC,EAAEe,EAAE,EAAE,MAAa2W,KAAP,OAAYqK,GAAGrK,EAAE,EAAEA,GAAG,MAAM3W,EAAE,GAAG,GAAG,CAACA,EAAE,OAAOf,EAAE,MAAM,MAAMA,EAAE,IAAI,CAAC,OAAQA,EAAE,MAAM,KAAYA,EAAE,MAAMW,EAAEX,IAAEU,EAASA,IAAP,KAASA,KAAYf,IAAP,MAAiBA,EAAE,gBAAT,OAAyBe,IAAIV,EAAE,MAAM,OAAO,KAAUA,EAAE,KAAK,IAAYL,IAAP,MAAea,EAAE,QAAQ,EAAOgB,IAAJ,IAAQA,EAAE,GAAG2f,GAAE,IAAYnhB,EAAE,cAAT,OAAuBA,EAAE,OAAO,GAAGuB,GAAEvB,CAAC,EAAS,MAAK,IAAK,GAAE,OAAO+a,GAAE,EACvf2G,GAAG/hB,EAAEK,CAAC,EAASL,IAAP,MAAU+T,GAAG1T,EAAE,UAAU,aAAa,EAAEuB,GAAEvB,CAAC,EAAE,KAAK,IAAK,IAAG,OAAOsZ,GAAGtZ,EAAE,KAAK,QAAQ,EAAEuB,GAAEvB,CAAC,EAAE,KAAK,IAAK,IAAG,OAAO+V,GAAG/V,EAAE,IAAI,GAAGgW,GAAE,EAAGzU,GAAEvB,CAAC,EAAE,KAAK,IAAK,IAA0B,GAAvBD,EAAES,CAAC,EAAEO,EAAEf,EAAE,cAAwBe,IAAP,KAAS,OAAOQ,GAAEvB,CAAC,EAAE,KAAuC,GAAlCU,GAAOV,EAAE,MAAM,OAAb,EAAkBc,EAAEC,EAAE,UAAoBD,IAAP,KAAS,GAAGJ,EAAEmhB,GAAG9gB,EAAE,EAAE,MAAM,CAAC,GAAOS,IAAJ,GAAc7B,IAAP,MAAeA,EAAE,MAAM,IAAK,IAAIA,EAAEK,EAAE,MAAaL,IAAP,MAAU,CAAS,GAARmB,EAAEoa,GAAGvb,CAAC,EAAYmB,IAAP,KAAS,CAAmG,IAAlGd,EAAE,OAAO,IAAI6hB,GAAG9gB,EAAE,EAAE,EAAEL,EAAEI,EAAE,YAAmBJ,IAAP,OAAWV,EAAE,YAAYU,EAAEV,EAAE,OAAO,GAAGA,EAAE,aAAa,EAAEU,EAAEC,EAAMA,EAAEX,EAAE,MAAaW,IAAP,MAAUI,EAAEJ,EAAEhB,EAAEe,EAAEK,EAAE,OAAO,SAC7eD,EAAEC,EAAE,UAAiBD,IAAP,MAAUC,EAAE,WAAW,EAAEA,EAAE,MAAMpB,EAAEoB,EAAE,MAAM,KAAKA,EAAE,aAAa,EAAEA,EAAE,cAAc,KAAKA,EAAE,cAAc,KAAKA,EAAE,YAAY,KAAKA,EAAE,aAAa,KAAKA,EAAE,UAAU,OAAOA,EAAE,WAAWD,EAAE,WAAWC,EAAE,MAAMD,EAAE,MAAMC,EAAE,MAAMD,EAAE,MAAMC,EAAE,aAAa,EAAEA,EAAE,UAAU,KAAKA,EAAE,cAAcD,EAAE,cAAcC,EAAE,cAAcD,EAAE,cAAcC,EAAE,YAAYD,EAAE,YAAYC,EAAE,KAAKD,EAAE,KAAKnB,EAAEmB,EAAE,aAAaC,EAAE,aAAoBpB,IAAP,KAAS,KAAK,CAAC,MAAMA,EAAE,MAAM,aAAaA,EAAE,YAAY,GAAGgB,EAAEA,EAAE,QAAQ,OAAAR,EAAEK,EAAEA,EAAE,QAAQ,EAAE,CAAC,EAASR,EAAE,KAAK,CAACL,EAClgBA,EAAE,OAAO,CAAQoB,EAAE,OAAT,MAAenB,EAAC,EAAGoiB,KAAKhiB,EAAE,OAAO,IAAIU,EAAE,GAAGmhB,GAAG9gB,EAAE,EAAE,EAAEf,EAAE,MAAM,QAAQ,KAAK,CAAC,GAAG,CAACU,EAAE,GAAGf,EAAEub,GAAGpa,CAAC,EAASnB,IAAP,MAAU,GAAGK,EAAE,OAAO,IAAIU,EAAE,GAAGC,EAAEhB,EAAE,YAAmBgB,IAAP,OAAWX,EAAE,YAAYW,EAAEX,EAAE,OAAO,GAAG6hB,GAAG9gB,EAAE,EAAE,EAASA,EAAE,OAAT,MAA0BA,EAAE,WAAb,UAAuB,CAACD,EAAE,WAAW,CAACT,EAAE,OAAOkB,GAAEvB,CAAC,EAAE,SAAU,GAAEJ,EAAC,EAAGmB,EAAE,mBAAmBihB,IAAiBrhB,IAAb,aAAiBX,EAAE,OAAO,IAAIU,EAAE,GAAGmhB,GAAG9gB,EAAE,EAAE,EAAEf,EAAE,MAAM,SAASe,EAAE,aAAaD,EAAE,QAAQd,EAAE,MAAMA,EAAE,MAAMc,IAAIH,EAAEI,EAAE,KAAYJ,IAAP,KAASA,EAAE,QAAQG,EAAEd,EAAE,MAAMc,EAAEC,EAAE,KAAKD,EAAE,CAAC,OAAUC,EAAE,OAAT,MAAqBf,EAAEe,EAAE,KAAKA,EAAE,UAC9ef,EAAEe,EAAE,KAAKf,EAAE,QAAQe,EAAE,mBAAmBnB,EAAC,EAAGI,EAAE,QAAQ,KAAKW,EAAEH,EAAE,QAAQL,EAAEK,EAAEE,EAAEC,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAEX,IAAEuB,GAAEvB,CAAC,EAAS,MAAK,IAAK,IAAG,IAAK,IAAG,OAAOiiB,GAAE,EAAGvhB,EAASV,EAAE,gBAAT,KAA8BL,IAAP,MAAiBA,EAAE,gBAAT,OAAyBe,IAAIV,EAAE,OAAO,MAAMU,GAAQV,EAAE,KAAK,EAAQqgB,GAAG,aAAc9e,GAAEvB,CAAC,EAAEA,EAAE,aAAa,IAAIA,EAAE,OAAO,OAAOuB,GAAEvB,CAAC,EAAE,KAAK,IAAK,IAAG,OAAO,KAAK,IAAK,IAAG,OAAO,IAAI,CAAC,MAAM,MAAMhB,EAAE,IAAIgB,EAAE,GAAG,CAAC,CAAE,CAClX,SAASkiB,GAAGviB,EAAEK,EAAE,CAAO,OAANuX,GAAGvX,CAAC,EAASA,EAAE,IAAG,CAAE,IAAK,GAAE,OAAO+V,GAAG/V,EAAE,IAAI,GAAGgW,GAAE,EAAGrW,EAAEK,EAAE,MAAML,EAAE,OAAOK,EAAE,MAAML,EAAE,OAAO,IAAIK,GAAG,KAAK,IAAK,GAAE,OAAO+a,GAAE,EAAGhb,EAAE6V,EAAE,EAAE7V,EAAEK,EAAC,EAAEgb,GAAE,EAAGzb,EAAEK,EAAE,MAAWL,EAAE,OAAa,EAAAA,EAAE,MAAMK,EAAE,MAAML,EAAE,OAAO,IAAIK,GAAG,KAAK,IAAK,GAAE,OAAOib,GAAGjb,CAAC,EAAE,KAAK,IAAK,IAA0B,GAAvBD,EAAES,CAAC,EAAEb,EAAEK,EAAE,cAAwBL,IAAP,MAAiBA,EAAE,aAAT,KAAoB,CAAC,GAAUK,EAAE,YAAT,KAAmB,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAEmZ,GAAE,CAAE,CAAC,OAAAxY,EAAEK,EAAE,MAAaL,EAAE,OAAOK,EAAE,MAAML,EAAE,OAAO,IAAIK,GAAG,KAAK,IAAK,IAAG,OAAOD,EAAES,CAAC,EAAE,KAAK,IAAK,GAAE,OAAOua,GAAE,EAAG,KAAK,IAAK,IAAG,OAAOzB,GAAGtZ,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAK,IAAG,IAAK,IAAG,OAAOiiB,GAAE,EAC5gB,KAAK,IAAK,IAAG,OAAO,KAAK,QAAQ,OAAO,IAAI,CAAC,CAAC,IAAIE,GAAG,GAAG1gB,GAAE,GAAG2gB,GAAgB,OAAO,SAApB,WAA4B,QAAQ,IAAI1gB,EAAE,KAAK,SAAS2gB,GAAG1iB,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,IAAI,GAAUgB,IAAP,KAAS,GAAgB,OAAOA,GAApB,WAAsB,GAAG,CAACA,EAAE,IAAI,CAAC,OAAOD,EAAE,CAACiB,EAAEhC,EAAEK,EAAEU,CAAC,CAAC,MAAMC,EAAE,QAAQ,IAAI,CAAC,SAAS2hB,GAAG3iB,EAAEK,EAAEW,EAAE,CAAC,GAAG,CAACA,EAAC,CAAE,OAAOD,EAAE,CAACiB,EAAEhC,EAAEK,EAAEU,CAAC,CAAC,CAAC,CAAC,IAAI6hB,GAAG,GACxR,SAASC,GAAG7iB,EAAEK,EAAE,CAAc,GAAbwU,GAAGtI,GAAGvM,EAAE+R,GAAE,EAAMC,GAAGhS,CAAC,EAAE,CAAC,GAAG,mBAAmBA,EAAE,IAAIgB,EAAE,CAAC,MAAMhB,EAAE,eAAe,IAAIA,EAAE,YAAY,OAAOA,EAAE,CAACgB,GAAGA,EAAEhB,EAAE,gBAAgBgB,EAAE,aAAa,OAAO,IAAID,EAAEC,EAAE,cAAcA,EAAE,eAAe,GAAGD,GAAOA,EAAE,aAAN,EAAiB,CAACC,EAAED,EAAE,WAAW,IAAIT,EAAES,EAAE,aAAaK,EAAEL,EAAE,UAAUA,EAAEA,EAAE,YAAY,GAAG,CAACC,EAAE,SAASI,EAAE,QAAQ,MAAS,CAACJ,EAAE,KAAK,MAAMhB,CAAC,CAAC,IAAImB,EAAE,EAAED,EAAE,GAAGD,EAAE,GAAG9B,EAAE,EAAEkC,EAAE,EAAE/B,EAAEU,EAAET,EAAE,KAAKc,EAAE,OAAO,CAAC,QAAQR,EAAKP,IAAI0B,GAAOV,IAAJ,GAAWhB,EAAE,WAAN,IAAiB4B,EAAEC,EAAEb,GAAGhB,IAAI8B,GAAOL,IAAJ,GAAWzB,EAAE,WAAN,IAAiB2B,EAAEE,EAAEJ,GAAOzB,EAAE,WAAN,IAAiB6B,GACnf7B,EAAE,UAAU,SAAmBO,EAAEP,EAAE,cAAZ,MAA8BC,EAAED,EAAEA,EAAEO,EAAE,OAAO,CAAC,GAAGP,IAAIU,EAAE,MAAMK,EAA8C,GAA5Cd,IAAIyB,GAAG,EAAE7B,IAAImB,IAAIY,EAAEC,GAAG5B,IAAI6B,GAAG,EAAEC,IAAIN,IAAIE,EAAEE,IAActB,EAAEP,EAAE,eAAZ,KAAyB,MAAMA,EAAEC,EAAEA,EAAED,EAAE,UAAU,CAACA,EAAEO,CAAC,CAACmB,EAAOE,IAAL,IAAaD,IAAL,GAAO,KAAK,CAAC,MAAMC,EAAE,IAAID,CAAC,CAAC,MAAMD,EAAE,IAAI,CAACA,EAAEA,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,MAAMA,EAAE,KAA+C,IAA1C8T,GAAG,CAAC,YAAY9U,EAAE,eAAegB,CAAC,EAAEuL,GAAG,GAAOxK,EAAE1B,EAAS0B,IAAP,MAAU,GAAG1B,EAAE0B,EAAE/B,EAAEK,EAAE,OAAWA,EAAE,aAAa,QAApB,GAAkCL,IAAP,KAASA,EAAE,OAAOK,EAAE0B,EAAE/B,MAAO,MAAY+B,IAAP,MAAU,CAAC1B,EAAE0B,EAAE,GAAG,CAAC,IAAI3C,EAAEiB,EAAE,UAAU,GAAQA,EAAE,MAAM,KAAM,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,MACxf,IAAK,GAAE,GAAUjB,IAAP,KAAS,CAAC,IAAII,EAAEJ,EAAE,cAAcuB,EAAEvB,EAAE,cAAcQ,EAAES,EAAE,UAAUV,EAAEC,EAAE,wBAAwBS,EAAE,cAAcA,EAAE,KAAKb,EAAEof,GAAGve,EAAE,KAAKb,CAAC,EAAEmB,CAAC,EAAEf,EAAE,oCAAoCD,CAAC,CAAC,MAAM,IAAK,GAAE,IAAIF,EAAEY,EAAE,UAAU,cAAkBZ,EAAE,WAAN,EAAeA,EAAE,YAAY,GAAOA,EAAE,WAAN,GAAgBA,EAAE,iBAAiBA,EAAE,YAAYA,EAAE,eAAe,EAAE,MAAM,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,IAAK,IAAG,MAAM,QAAQ,MAAM,MAAMJ,EAAE,GAAG,CAAC,CAAE,CAAC,OAAOkB,EAAE,CAACyB,EAAE3B,EAAEA,EAAE,OAAOE,CAAC,CAAC,CAAa,GAAZP,EAAEK,EAAE,QAAkBL,IAAP,KAAS,CAACA,EAAE,OAAOK,EAAE,OAAO0B,EAAE/B,EAAE,KAAK,CAAC+B,EAAE1B,EAAE,MAAM,CAAC,OAAAjB,EAAEwjB,GAAGA,GAAG,GAAUxjB,CAAC,CAC3f,SAAS0jB,GAAG9iB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEV,EAAE,YAAyC,GAA7BU,EAASA,IAAP,KAASA,EAAE,WAAW,KAAeA,IAAP,KAAS,CAAC,IAAIT,EAAES,EAAEA,EAAE,KAAK,EAAE,CAAC,IAAIT,EAAE,IAAIN,KAAKA,EAAE,CAAC,IAAIoB,EAAEd,EAAE,QAAQA,EAAE,QAAQ,OAAgBc,IAAT,QAAYuhB,GAAGtiB,EAAEW,EAAEI,CAAC,CAAC,CAACd,EAAEA,EAAE,IAAI,OAAOA,IAAIS,EAAE,CAAC,CAAC,SAASgiB,GAAG/iB,EAAEK,EAAE,CAA8C,GAA7CA,EAAEA,EAAE,YAAYA,EAASA,IAAP,KAASA,EAAE,WAAW,KAAeA,IAAP,KAAS,CAAC,IAAIW,EAAEX,EAAEA,EAAE,KAAK,EAAE,CAAC,IAAIW,EAAE,IAAIhB,KAAKA,EAAE,CAAC,IAAIe,EAAEC,EAAE,OAAOA,EAAE,QAAQD,EAAC,CAAE,CAACC,EAAEA,EAAE,IAAI,OAAOA,IAAIX,EAAE,CAAC,CAAC,SAAS2iB,GAAGhjB,EAAE,CAAC,IAAIK,EAAEL,EAAE,IAAI,GAAUK,IAAP,KAAS,CAAC,IAAIW,EAAEhB,EAAE,UAAU,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAEA,EAAEgB,EAAE,MAAM,QAAQhB,EAAEgB,CAAC,CAAc,OAAOX,GAApB,WAAsBA,EAAEL,CAAC,EAAEK,EAAE,QAAQL,CAAC,CAAC,CAClf,SAASijB,GAAGjjB,EAAE,CAAC,IAAIK,EAAEL,EAAE,UAAiBK,IAAP,OAAWL,EAAE,UAAU,KAAKijB,GAAG5iB,CAAC,GAAGL,EAAE,MAAM,KAAKA,EAAE,UAAU,KAAKA,EAAE,QAAQ,KAASA,EAAE,MAAN,IAAYK,EAAEL,EAAE,UAAiBK,IAAP,OAAW,OAAOA,EAAEoV,EAAE,EAAE,OAAOpV,EAAEqV,EAAE,EAAE,OAAOrV,EAAEsT,EAAE,EAAE,OAAOtT,EAAEsV,EAAE,EAAE,OAAOtV,EAAEuV,EAAE,IAAI5V,EAAE,UAAU,KAAKA,EAAE,OAAO,KAAKA,EAAE,aAAa,KAAKA,EAAE,cAAc,KAAKA,EAAE,cAAc,KAAKA,EAAE,aAAa,KAAKA,EAAE,UAAU,KAAKA,EAAE,YAAY,IAAI,CAAC,SAASkjB,GAAGljB,EAAE,CAAC,OAAWA,EAAE,MAAN,GAAeA,EAAE,MAAN,GAAeA,EAAE,MAAN,CAAS,CACna,SAASmjB,GAAGnjB,EAAE,CAACA,EAAE,OAAO,CAAC,KAAYA,EAAE,UAAT,MAAkB,CAAC,GAAUA,EAAE,SAAT,MAAiBkjB,GAAGljB,EAAE,MAAM,EAAE,OAAO,KAAKA,EAAEA,EAAE,MAAM,CAA2B,IAA1BA,EAAE,QAAQ,OAAOA,EAAE,OAAWA,EAAEA,EAAE,QAAYA,EAAE,MAAN,GAAeA,EAAE,MAAN,GAAgBA,EAAE,MAAP,IAAY,CAAyB,GAArBA,EAAE,MAAM,GAAuBA,EAAE,QAAT,MAAoBA,EAAE,MAAN,EAAU,SAASA,EAAOA,EAAE,MAAM,OAAOA,EAAEA,EAAEA,EAAE,KAAK,CAAC,GAAG,EAAEA,EAAE,MAAM,GAAG,OAAOA,EAAE,SAAS,CAAC,CACzT,SAASojB,GAAGpjB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,IAAI,GAAOe,IAAJ,GAAWA,IAAJ,EAAMf,EAAEA,EAAE,UAAUK,EAAMW,EAAE,WAAN,EAAeA,EAAE,WAAW,aAAahB,EAAEK,CAAC,EAAEW,EAAE,aAAahB,EAAEK,CAAC,GAAOW,EAAE,WAAN,GAAgBX,EAAEW,EAAE,WAAWX,EAAE,aAAaL,EAAEgB,CAAC,IAAIX,EAAEW,EAAEX,EAAE,YAAYL,CAAC,GAAGgB,EAAEA,EAAE,oBAA2BA,GAAP,MAA6BX,EAAE,UAAT,OAAmBA,EAAE,QAAQuU,aAAiB7T,IAAJ,IAAQf,EAAEA,EAAE,MAAaA,IAAP,MAAU,IAAIojB,GAAGpjB,EAAEK,EAAEW,CAAC,EAAEhB,EAAEA,EAAE,QAAeA,IAAP,MAAUojB,GAAGpjB,EAAEK,EAAEW,CAAC,EAAEhB,EAAEA,EAAE,OAAO,CAC1X,SAASqjB,GAAGrjB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,IAAI,GAAOe,IAAJ,GAAWA,IAAJ,EAAMf,EAAEA,EAAE,UAAUK,EAAEW,EAAE,aAAahB,EAAEK,CAAC,EAAEW,EAAE,YAAYhB,CAAC,UAAce,IAAJ,IAAQf,EAAEA,EAAE,MAAaA,IAAP,MAAU,IAAIqjB,GAAGrjB,EAAEK,EAAEW,CAAC,EAAEhB,EAAEA,EAAE,QAAeA,IAAP,MAAUqjB,GAAGrjB,EAAEK,EAAEW,CAAC,EAAEhB,EAAEA,EAAE,OAAO,CAAC,IAAIiC,EAAE,KAAKqhB,GAAG,GAAG,SAASC,GAAGvjB,EAAEK,EAAEW,EAAE,CAAC,IAAIA,EAAEA,EAAE,MAAaA,IAAP,MAAUwiB,GAAGxjB,EAAEK,EAAEW,CAAC,EAAEA,EAAEA,EAAE,OAAO,CACnR,SAASwiB,GAAGxjB,EAAEK,EAAEW,EAAE,CAAC,GAAG0I,IAAiB,OAAOA,GAAG,sBAAvB,WAA4C,GAAG,CAACA,GAAG,qBAAqBD,GAAGzI,CAAC,CAAC,MAAS,EAAE,OAAOA,EAAE,KAAK,IAAK,GAAEc,IAAG4gB,GAAG1hB,EAAEX,CAAC,EAAE,IAAK,GAAE,IAAIU,EAAEkB,EAAE3B,EAAEgjB,GAAGrhB,EAAE,KAAKshB,GAAGvjB,EAAEK,EAAEW,CAAC,EAAEiB,EAAElB,EAAEuiB,GAAGhjB,EAAS2B,IAAP,OAAWqhB,IAAItjB,EAAEiC,EAAEjB,EAAEA,EAAE,UAAchB,EAAE,WAAN,EAAeA,EAAE,WAAW,YAAYgB,CAAC,EAAEhB,EAAE,YAAYgB,CAAC,GAAGiB,EAAE,YAAYjB,EAAE,SAAS,GAAG,MAAM,IAAK,IAAUiB,IAAP,OAAWqhB,IAAItjB,EAAEiC,EAAEjB,EAAEA,EAAE,UAAchB,EAAE,WAAN,EAAeqV,GAAGrV,EAAE,WAAWgB,CAAC,EAAMhB,EAAE,WAAN,GAAgBqV,GAAGrV,EAAEgB,CAAC,EAAEqL,GAAGrM,CAAC,GAAGqV,GAAGpT,EAAEjB,EAAE,SAAS,GAAG,MAAM,IAAK,GAAED,EAAEkB,EAAE3B,EAAEgjB,GAAGrhB,EAAEjB,EAAE,UAAU,cAAcsiB,GAAG,GAClfC,GAAGvjB,EAAEK,EAAEW,CAAC,EAAEiB,EAAElB,EAAEuiB,GAAGhjB,EAAE,MAAM,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,GAAG,CAACwB,KAAIf,EAAEC,EAAE,YAAmBD,IAAP,OAAWA,EAAEA,EAAE,WAAkBA,IAAP,OAAW,CAACT,EAAES,EAAEA,EAAE,KAAK,EAAE,CAAC,IAAIK,EAAEd,EAAEa,EAAEC,EAAE,QAAQA,EAAEA,EAAE,IAAaD,IAAT,SAAkBC,EAAE,GAAkBA,EAAE,IAAIuhB,GAAG3hB,EAAEX,EAAEc,CAAC,EAAGb,EAAEA,EAAE,IAAI,OAAOA,IAAIS,EAAE,CAACwiB,GAAGvjB,EAAEK,EAAEW,CAAC,EAAE,MAAM,IAAK,GAAE,GAAG,CAACc,KAAI4gB,GAAG1hB,EAAEX,CAAC,EAAEU,EAAEC,EAAE,UAAuB,OAAOD,EAAE,sBAAtB,YAA4C,GAAG,CAACA,EAAE,MAAMC,EAAE,cAAcD,EAAE,MAAMC,EAAE,cAAcD,EAAE,qBAAoB,CAAE,OAAOG,EAAE,CAACc,EAAEhB,EAAEX,EAAEa,CAAC,CAAC,CAACqiB,GAAGvjB,EAAEK,EAAEW,CAAC,EAAE,MAAM,IAAK,IAAGuiB,GAAGvjB,EAAEK,EAAEW,CAAC,EAAE,MAAM,IAAK,IAAGA,EAAE,KAAK,GAAGc,IAAGf,EAAEe,KAC5ed,EAAE,gBAD8e,KACheuiB,GAAGvjB,EAAEK,EAAEW,CAAC,EAAEc,GAAEf,GAAGwiB,GAAGvjB,EAAEK,EAAEW,CAAC,EAAE,MAAM,QAAQuiB,GAAGvjB,EAAEK,EAAEW,CAAC,CAAC,CAAC,CAAC,SAASyiB,GAAGzjB,EAAE,CAAC,IAAIK,EAAEL,EAAE,YAAY,GAAUK,IAAP,KAAS,CAACL,EAAE,YAAY,KAAK,IAAIgB,EAAEhB,EAAE,UAAiBgB,IAAP,OAAWA,EAAEhB,EAAE,UAAU,IAAIyiB,IAAIpiB,EAAE,QAAQ,SAASA,EAAE,CAAC,IAAIU,EAAE2iB,GAAG,KAAK,KAAK1jB,EAAEK,CAAC,EAAEW,EAAE,IAAIX,CAAC,IAAIW,EAAE,IAAIX,CAAC,EAAEA,EAAE,KAAKU,EAAEA,CAAC,EAAE,CAAC,CAAC,CAAC,CACzQ,SAAS4iB,GAAG3jB,EAAEK,EAAE,CAAC,IAAIW,EAAEX,EAAE,UAAU,GAAUW,IAAP,KAAS,QAAQD,EAAE,EAAEA,EAAEC,EAAE,OAAOD,IAAI,CAAC,IAAIT,EAAEU,EAAED,CAAC,EAAE,GAAG,CAAC,IAAIK,EAAEpB,EAAEmB,EAAEd,EAAEa,EAAEC,EAAEnB,EAAE,KAAYkB,IAAP,MAAU,CAAC,OAAOA,EAAE,KAAK,IAAK,GAAEe,EAAEf,EAAE,UAAUoiB,GAAG,GAAG,MAAMtjB,EAAE,IAAK,GAAEiC,EAAEf,EAAE,UAAU,cAAcoiB,GAAG,GAAG,MAAMtjB,EAAE,IAAK,GAAEiC,EAAEf,EAAE,UAAU,cAAcoiB,GAAG,GAAG,MAAMtjB,CAAC,CAACkB,EAAEA,EAAE,MAAM,CAAC,GAAUe,IAAP,KAAS,MAAM,MAAM5C,EAAE,GAAG,CAAC,EAAEmkB,GAAGpiB,EAAED,EAAEb,CAAC,EAAE2B,EAAE,KAAKqhB,GAAG,GAAG,IAAIriB,EAAEX,EAAE,UAAiBW,IAAP,OAAWA,EAAE,OAAO,MAAMX,EAAE,OAAO,IAAI,OAAOnB,EAAE,CAAC6C,EAAE1B,EAAED,EAAElB,CAAC,CAAC,CAAC,CAAC,GAAGkB,EAAE,aAAa,MAAM,IAAIA,EAAEA,EAAE,MAAaA,IAAP,MAAUujB,GAAGvjB,EAAEL,CAAC,EAAEK,EAAEA,EAAE,OAAO,CACje,SAASujB,GAAG5jB,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,UAAUe,EAAEf,EAAE,MAAM,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,IAAK,IAAiB,GAAd2jB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAKe,EAAE,EAAE,CAAC,GAAG,CAAC+hB,GAAG,EAAE9iB,EAAEA,EAAE,MAAM,EAAE+iB,GAAG,EAAE/iB,CAAC,CAAC,OAAOR,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,CAAC,GAAG,CAACsjB,GAAG,EAAE9iB,EAAEA,EAAE,MAAM,CAAC,OAAOR,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,GAAEmkB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAEe,EAAE,KAAYC,IAAP,MAAU0hB,GAAG1hB,EAAEA,EAAE,MAAM,EAAE,MAAM,IAAK,GAAgD,GAA9C2iB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAEe,EAAE,KAAYC,IAAP,MAAU0hB,GAAG1hB,EAAEA,EAAE,MAAM,EAAKhB,EAAE,MAAM,GAAG,CAAC,IAAIM,EAAEN,EAAE,UAAU,GAAG,CAACwG,GAAGlG,EAAE,EAAE,CAAC,OAAOd,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,CAAC,CAAC,GAAGuB,EAAE,IAAIT,EAAEN,EAAE,UAAgBM,GAAN,MAAS,CAAC,IAAIc,EAAEpB,EAAE,cAAcmB,EAASH,IAAP,KAASA,EAAE,cAAcI,EAAEF,EAAElB,EAAE,KAAKiB,EAAEjB,EAAE,YACje,GAAnBA,EAAE,YAAY,KAAeiB,IAAP,KAAS,GAAG,CAAWC,IAAV,SAAuBE,EAAE,OAAZ,SAAwBA,EAAE,MAAR,MAAcsE,GAAGpF,EAAEc,CAAC,EAAE2F,GAAG7F,EAAEC,CAAC,EAAE,IAAIhC,EAAE4H,GAAG7F,EAAEE,CAAC,EAAE,IAAID,EAAE,EAAEA,EAAEF,EAAE,OAAOE,GAAG,EAAE,CAAC,IAAIE,EAAEJ,EAAEE,CAAC,EAAE7B,EAAE2B,EAAEE,EAAE,CAAC,EAAYE,IAAV,QAAYuF,GAAGtG,EAAEhB,CAAC,EAA8B+B,IAA5B,0BAA8BkF,GAAGjG,EAAEhB,CAAC,EAAe+B,IAAb,WAAemF,GAAGlG,EAAEhB,CAAC,EAAEoE,GAAGpD,EAAEe,EAAE/B,EAAEH,CAAC,CAAC,CAAC,OAAO+B,EAAC,CAAE,IAAK,QAAQyE,GAAGrF,EAAEc,CAAC,EAAE,MAAM,IAAK,WAAW8E,GAAG5F,EAAEc,CAAC,EAAE,MAAM,IAAK,SAAS,IAAI7B,EAAEe,EAAE,cAAc,YAAYA,EAAE,cAAc,YAAY,CAAC,CAACc,EAAE,SAAS,IAAIvB,EAAEuB,EAAE,MAAYvB,GAAN,KAAQkG,GAAGzF,EAAE,CAAC,CAACc,EAAE,SAASvB,EAAE,EAAE,EAAEN,IAAI,CAAC,CAAC6B,EAAE,WAAiBA,EAAE,cAAR,KAAqB2E,GAAGzF,EAAE,CAAC,CAACc,EAAE,SACnfA,EAAE,aAAa,EAAE,EAAE2E,GAAGzF,EAAE,CAAC,CAACc,EAAE,SAASA,EAAE,SAAS,GAAG,GAAG,EAAE,EAAE,CAACd,EAAEoV,EAAE,EAAEtU,CAAC,OAAO5B,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,GAAgB,GAAdmkB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAKe,EAAE,EAAE,CAAC,GAAUf,EAAE,YAAT,KAAmB,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAEiB,EAAEN,EAAE,UAAUoB,EAAEpB,EAAE,cAAc,GAAG,CAACM,EAAE,UAAUc,CAAC,OAAO5B,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,GAAgB,GAAdmkB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAKe,EAAE,GAAUC,IAAP,MAAUA,EAAE,cAAc,aAAa,GAAG,CAACqL,GAAGhM,EAAE,aAAa,CAAC,OAAOb,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,CAAC,MAAM,IAAK,GAAEmkB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAE,MAAM,IAAK,IAAG2jB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAEM,EAAEN,EAAE,MAAMM,EAAE,MAAM,OAAOc,EAASd,EAAE,gBAAT,KAAuBA,EAAE,UAAU,SAASc,EAAE,CAACA,GAC3ed,EAAE,YAAT,MAA2BA,EAAE,UAAU,gBAAnB,OAAmCwjB,GAAG7jB,EAAC,IAAKc,EAAE,GAAG0iB,GAAGzjB,CAAC,EAAE,MAAM,IAAK,IAAsF,GAAnFqB,EAASL,IAAP,MAAiBA,EAAE,gBAAT,KAAuBhB,EAAE,KAAK,GAAG8B,IAAG3C,EAAE2C,KAAIT,EAAEsiB,GAAGtjB,EAAEL,CAAC,EAAE8B,GAAE3C,GAAGwkB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAKe,EAAE,KAAK,CAA0B,GAAzB5B,EAASa,EAAE,gBAAT,MAA2BA,EAAE,UAAU,SAASb,IAAI,CAACkC,GAAQrB,EAAE,KAAK,EAAG,IAAI+B,EAAE/B,EAAEqB,EAAErB,EAAE,MAAaqB,IAAP,MAAU,CAAC,IAAI/B,EAAEyC,EAAEV,EAASU,IAAP,MAAU,CAAe,OAAdxC,EAAEwC,EAAElC,EAAEN,EAAE,MAAaA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,IAAK,IAAGujB,GAAG,EAAEvjB,EAAEA,EAAE,MAAM,EAAE,MAAM,IAAK,GAAEmjB,GAAGnjB,EAAEA,EAAE,MAAM,EAAE,IAAIH,EAAEG,EAAE,UAAU,GAAgB,OAAOH,EAAE,sBAAtB,WAA2C,CAAC2B,EAAExB,EAAEyB,EAAEzB,EAAE,OAAO,GAAG,CAACc,EAAEU,EAAE3B,EAAE,MACpfiB,EAAE,cAAcjB,EAAE,MAAMiB,EAAE,cAAcjB,EAAE,qBAAoB,CAAE,OAAOI,EAAE,CAACwC,EAAEjB,EAAEC,EAAExB,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,GAAEkjB,GAAGnjB,EAAEA,EAAE,MAAM,EAAE,MAAM,IAAK,IAAG,GAAUA,EAAE,gBAAT,KAAuB,CAACwkB,GAAGzkB,CAAC,EAAE,QAAQ,CAAC,CAAQO,IAAP,MAAUA,EAAE,OAAON,EAAEwC,EAAElC,GAAGkkB,GAAGzkB,CAAC,CAAC,CAAC+B,EAAEA,EAAE,OAAO,CAACrB,EAAE,IAAIqB,EAAE,KAAK/B,EAAEU,IAAI,CAAC,GAAOV,EAAE,MAAN,GAAW,GAAU+B,IAAP,KAAS,CAACA,EAAE/B,EAAE,GAAG,CAACgB,EAAEhB,EAAE,UAAUH,GAAGiC,EAAEd,EAAE,MAAmB,OAAOc,EAAE,aAAtB,WAAkCA,EAAE,YAAY,UAAU,OAAO,WAAW,EAAEA,EAAE,QAAQ,SAASF,EAAE5B,EAAE,UAAU2B,EAAE3B,EAAE,cAAc,MAAM6B,EAAqBF,GAAP,MAAUA,EAAE,eAAe,SAAS,EAAEA,EAAE,QAAQ,KAAKC,EAAE,MAAM,QACzfyF,GAAG,UAAUxF,CAAC,EAAE,OAAO3B,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,CAAC,UAAcF,EAAE,MAAN,GAAW,GAAU+B,IAAP,KAAS,GAAG,CAAC/B,EAAE,UAAU,UAAUH,EAAE,GAAGG,EAAE,aAAa,OAAOE,EAAE,CAACwC,EAAEhC,EAAEA,EAAE,OAAOR,CAAC,CAAC,WAAgBF,EAAE,MAAP,IAAiBA,EAAE,MAAP,IAAmBA,EAAE,gBAAT,MAAwBA,IAAIU,IAAWV,EAAE,QAAT,KAAe,CAACA,EAAE,MAAM,OAAOA,EAAEA,EAAEA,EAAE,MAAM,QAAQ,CAAC,GAAGA,IAAIU,EAAE,MAAMA,EAAE,KAAYV,EAAE,UAAT,MAAkB,CAAC,GAAUA,EAAE,SAAT,MAAiBA,EAAE,SAASU,EAAE,MAAMA,EAAEqB,IAAI/B,IAAI+B,EAAE,MAAM/B,EAAEA,EAAE,MAAM,CAAC+B,IAAI/B,IAAI+B,EAAE,MAAM/B,EAAE,QAAQ,OAAOA,EAAE,OAAOA,EAAEA,EAAE,OAAO,CAAC,CAAC,MAAM,IAAK,IAAGqkB,GAAGtjB,EAAEL,CAAC,EAAE6jB,GAAG7jB,CAAC,EAAEe,EAAE,GAAG0iB,GAAGzjB,CAAC,EAAE,MAAM,IAAK,IAAG,MAAM,QAAQ2jB,GAAGtjB,EACnfL,CAAC,EAAE6jB,GAAG7jB,CAAC,CAAC,CAAC,CAAC,SAAS6jB,GAAG7jB,EAAE,CAAC,IAAIK,EAAEL,EAAE,MAAM,GAAGK,EAAE,EAAE,CAAC,GAAG,CAACL,EAAE,CAAC,QAAQgB,EAAEhB,EAAE,OAAcgB,IAAP,MAAU,CAAC,GAAGkiB,GAAGliB,CAAC,EAAE,CAAC,IAAID,EAAEC,EAAE,MAAMhB,CAAC,CAACgB,EAAEA,EAAE,MAAM,CAAC,MAAM,MAAM3B,EAAE,GAAG,CAAC,CAAE,CAAC,OAAO0B,EAAE,IAAG,CAAE,IAAK,GAAE,IAAIT,EAAES,EAAE,UAAUA,EAAE,MAAM,KAAKyF,GAAGlG,EAAE,EAAE,EAAES,EAAE,OAAO,KAAK,IAAIK,EAAE+hB,GAAGnjB,CAAC,EAAEqjB,GAAGrjB,EAAEoB,EAAEd,CAAC,EAAE,MAAM,IAAK,GAAE,IAAK,GAAE,IAAIa,EAAEJ,EAAE,UAAU,cAAcG,EAAEiiB,GAAGnjB,CAAC,EAAEojB,GAAGpjB,EAAEkB,EAAEC,CAAC,EAAE,MAAM,QAAQ,MAAM,MAAM9B,EAAE,GAAG,CAAC,CAAE,CAAC,OAAO4B,EAAE,CAACe,EAAEhC,EAAEA,EAAE,OAAOiB,CAAC,CAAC,CAACjB,EAAE,OAAO,EAAE,CAACK,EAAE,OAAOL,EAAE,OAAO,MAAM,CAAC,SAASgkB,GAAGhkB,EAAEK,EAAEW,EAAE,CAACe,EAAE/B,EAAEikB,GAAGjkB,CAAK,CAAC,CACvb,SAASikB,GAAGjkB,EAAEK,EAAEW,EAAE,CAAC,QAAQD,GAAOf,EAAE,KAAK,KAAZ,EAAsB+B,IAAP,MAAU,CAAC,IAAIzB,EAAEyB,EAAEX,EAAEd,EAAE,MAAM,GAAQA,EAAE,MAAP,IAAYS,EAAE,CAAC,IAAII,EAASb,EAAE,gBAAT,MAAwBkiB,GAAG,GAAG,CAACrhB,EAAE,CAAC,IAAID,EAAEZ,EAAE,UAAUW,EAASC,IAAP,MAAiBA,EAAE,gBAAT,MAAwBY,GAAEZ,EAAEshB,GAAG,IAAIrjB,EAAE2C,GAAO,GAAL0gB,GAAGrhB,GAAMW,GAAEb,IAAI,CAAC9B,EAAE,IAAI4C,EAAEzB,EAASyB,IAAP,MAAUZ,EAAEY,EAAEd,EAAEE,EAAE,MAAWA,EAAE,MAAP,IAAmBA,EAAE,gBAAT,KAAuB+iB,GAAG5jB,CAAC,EAASW,IAAP,MAAUA,EAAE,OAAOE,EAAEY,EAAEd,GAAGijB,GAAG5jB,CAAC,EAAE,KAAYc,IAAP,MAAUW,EAAEX,EAAE6iB,GAAG7iB,CAAK,EAAEA,EAAEA,EAAE,QAAQW,EAAEzB,EAAEkiB,GAAGthB,EAAEY,GAAE3C,CAAC,CAACglB,GAAGnkB,CAAK,CAAC,MAAWM,EAAE,aAAa,MAAcc,IAAP,MAAUA,EAAE,OAAOd,EAAEyB,EAAEX,GAAG+iB,GAAGnkB,CAAK,CAAC,CAAC,CACvc,SAASmkB,GAAGnkB,EAAE,CAAC,KAAY+B,IAAP,MAAU,CAAC,IAAI1B,EAAE0B,EAAE,GAAQ1B,EAAE,MAAM,KAAM,CAAC,IAAIW,EAAEX,EAAE,UAAU,GAAG,CAAC,GAAQA,EAAE,MAAM,KAAM,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAGyB,IAAGihB,GAAG,EAAE1iB,CAAC,EAAE,MAAM,IAAK,GAAE,IAAIU,EAAEV,EAAE,UAAU,GAAGA,EAAE,MAAM,GAAG,CAACyB,GAAE,GAAUd,IAAP,KAASD,EAAE,kBAAiB,MAAO,CAAC,IAAIT,EAAED,EAAE,cAAcA,EAAE,KAAKW,EAAE,cAAc4d,GAAGve,EAAE,KAAKW,EAAE,aAAa,EAAED,EAAE,mBAAmBT,EAAEU,EAAE,cAAcD,EAAE,mCAAmC,CAAC,CAAC,IAAIK,EAAEf,EAAE,YAAmBe,IAAP,MAAUyZ,GAAGxa,EAAEe,EAAEL,CAAC,EAAE,MAAM,IAAK,GAAE,IAAII,EAAEd,EAAE,YAAY,GAAUc,IAAP,KAAS,CAAQ,GAAPH,EAAE,KAAeX,EAAE,QAAT,KAAe,OAAOA,EAAE,MAAM,IAAG,CAAE,IAAK,GAAEW,EACjhBX,EAAE,MAAM,UAAU,MAAM,IAAK,GAAEW,EAAEX,EAAE,MAAM,SAAS,CAACwa,GAAGxa,EAAEc,EAAEH,CAAC,CAAC,CAAC,MAAM,IAAK,GAAE,IAAIE,EAAEb,EAAE,UAAU,GAAUW,IAAP,MAAUX,EAAE,MAAM,EAAE,CAACW,EAAEE,EAAE,IAAID,EAAEZ,EAAE,cAAc,OAAOA,EAAE,MAAM,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAWY,EAAE,WAAWD,EAAE,MAAK,EAAG,MAAM,IAAK,MAAMC,EAAE,MAAMD,EAAE,IAAIC,EAAE,IAAI,CAAC,CAAC,MAAM,IAAK,GAAE,MAAM,IAAK,GAAE,MAAM,IAAK,IAAG,MAAM,IAAK,IAAG,GAAUZ,EAAE,gBAAT,KAAuB,CAAC,IAAIlB,EAAEkB,EAAE,UAAU,GAAUlB,IAAP,KAAS,CAAC,IAAIkC,EAAElC,EAAE,cAAc,GAAUkC,IAAP,KAAS,CAAC,IAAI/B,EAAE+B,EAAE,WAAkB/B,IAAP,MAAU+M,GAAG/M,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,IAAK,IAAG,MAClgB,QAAQ,MAAM,MAAMD,EAAE,GAAG,CAAC,CAAE,CAACyC,IAAGzB,EAAE,MAAM,KAAK2iB,GAAG3iB,CAAC,CAAC,OAAOd,EAAE,CAACyC,EAAE3B,EAAEA,EAAE,OAAOd,CAAC,CAAC,CAAC,CAAC,GAAGc,IAAIL,EAAE,CAAC+B,EAAE,KAAK,KAAK,CAAa,GAAZf,EAAEX,EAAE,QAAkBW,IAAP,KAAS,CAACA,EAAE,OAAOX,EAAE,OAAO0B,EAAEf,EAAE,KAAK,CAACe,EAAE1B,EAAE,MAAM,CAAC,CAAC,SAAS0jB,GAAG/jB,EAAE,CAAC,KAAY+B,IAAP,MAAU,CAAC,IAAI1B,EAAE0B,EAAE,GAAG1B,IAAIL,EAAE,CAAC+B,EAAE,KAAK,KAAK,CAAC,IAAIf,EAAEX,EAAE,QAAQ,GAAUW,IAAP,KAAS,CAACA,EAAE,OAAOX,EAAE,OAAO0B,EAAEf,EAAE,KAAK,CAACe,EAAE1B,EAAE,MAAM,CAAC,CACvS,SAAS6jB,GAAGlkB,EAAE,CAAC,KAAY+B,IAAP,MAAU,CAAC,IAAI1B,EAAE0B,EAAE,GAAG,CAAC,OAAO1B,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG,IAAIW,EAAEX,EAAE,OAAO,GAAG,CAAC0iB,GAAG,EAAE1iB,CAAC,CAAC,OAAOY,EAAE,CAACe,EAAE3B,EAAEW,EAAEC,CAAC,CAAC,CAAC,MAAM,IAAK,GAAE,IAAIF,EAAEV,EAAE,UAAU,GAAgB,OAAOU,EAAE,mBAAtB,WAAwC,CAAC,IAAIT,EAAED,EAAE,OAAO,GAAG,CAACU,EAAE,kBAAiB,CAAE,OAAOE,EAAE,CAACe,EAAE3B,EAAEC,EAAEW,CAAC,CAAC,CAAC,CAAC,IAAIG,EAAEf,EAAE,OAAO,GAAG,CAAC2iB,GAAG3iB,CAAC,CAAC,OAAOY,EAAE,CAACe,EAAE3B,EAAEe,EAAEH,CAAC,CAAC,CAAC,MAAM,IAAK,GAAE,IAAIE,EAAEd,EAAE,OAAO,GAAG,CAAC2iB,GAAG3iB,CAAC,CAAC,OAAOY,EAAE,CAACe,EAAE3B,EAAEc,EAAEF,CAAC,CAAC,CAAC,CAAC,OAAOA,EAAE,CAACe,EAAE3B,EAAEA,EAAE,OAAOY,CAAC,CAAC,CAAC,GAAGZ,IAAIL,EAAE,CAAC+B,EAAE,KAAK,KAAK,CAAC,IAAIb,EAAEb,EAAE,QAAQ,GAAUa,IAAP,KAAS,CAACA,EAAE,OAAOb,EAAE,OAAO0B,EAAEb,EAAE,KAAK,CAACa,EAAE1B,EAAE,MAAM,CAAC,CAC7d,IAAI+jB,GAAG,KAAK,KAAKC,GAAG1gB,GAAG,uBAAuB2gB,GAAG3gB,GAAG,kBAAkB4gB,GAAG5gB,GAAG,wBAAwB/C,EAAE,EAAEc,EAAE,KAAK8iB,EAAE,KAAKC,EAAE,EAAE/D,GAAG,EAAED,GAAG1K,GAAG,CAAC,EAAElU,EAAE,EAAE6iB,GAAG,KAAK9J,GAAG,EAAE+J,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,GAAG,KAAKhB,GAAG,EAAEzB,GAAG,IAAS0C,GAAG,KAAKvF,GAAG,GAAGC,GAAG,KAAKE,GAAG,KAAKqF,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,GAAG,GAAGC,GAAG,EAAE,SAAS3jB,IAAG,CAAC,OAAYf,EAAE,EAAGX,IAASolB,KAAL,GAAQA,GAAGA,GAAGplB,EAAC,CAAE,CAChU,SAASue,GAAGxe,EAAE,CAAC,OAAQA,EAAE,KAAK,EAAoBY,EAAE,GAAQ6jB,IAAJ,EAAaA,EAAE,CAACA,EAAY/L,GAAG,aAAV,MAAgC4M,KAAJ,IAASA,GAAG/a,MAAM+a,KAAGtlB,EAAEE,EAASF,IAAJ,IAAeA,EAAE,OAAO,MAAMA,EAAWA,IAAT,OAAW,GAAG6M,GAAG7M,EAAE,IAAI,GAASA,GAA7J,CAA8J,CAAC,SAASsd,GAAGtd,EAAEK,EAAEW,EAAED,EAAE,CAAC,GAAG,GAAGokB,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAK,MAAM/lB,EAAE,GAAG,CAAC,EAAEoL,GAAGzK,EAAEgB,EAAED,CAAC,GAAU,EAAAH,EAAE,IAAIZ,IAAI0B,KAAE1B,IAAI0B,IAAS,EAAAd,EAAE,KAAK+jB,IAAI3jB,GAAOa,IAAJ,GAAO0jB,GAAGvlB,EAAEykB,CAAC,GAAGe,GAAGxlB,EAAEe,CAAC,EAAMC,IAAJ,GAAWJ,IAAJ,GAAY,EAAAP,EAAE,KAAK,KAAKgiB,GAAGpiB,EAAC,EAAG,IAAI0W,IAAII,GAAE,GAAG,CAC1Y,SAASyO,GAAGxlB,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,aAAaqK,GAAGrK,EAAEK,CAAC,EAAE,IAAIU,EAAEoJ,GAAGnK,EAAEA,IAAI0B,EAAE+iB,EAAE,CAAC,EAAE,GAAO1jB,IAAJ,EAAaC,IAAP,MAAUgI,GAAGhI,CAAC,EAAEhB,EAAE,aAAa,KAAKA,EAAE,iBAAiB,UAAUK,EAAEU,EAAE,CAACA,EAAEf,EAAE,mBAAmBK,EAAE,CAAgB,GAATW,GAAN,MAASgI,GAAGhI,CAAC,EAASX,IAAJ,EAAUL,EAAE,MAAN,EAAU8W,GAAG2O,GAAG,KAAK,KAAKzlB,CAAC,CAAC,EAAE6W,GAAG4O,GAAG,KAAK,KAAKzlB,CAAC,CAAC,EAAEmV,GAAG,UAAU,CAAM,EAAAvU,EAAE,IAAImW,GAAE,CAAE,CAAC,EAAE/V,EAAE,SAAS,CAAC,OAAO4J,GAAG7J,CAAC,EAAC,CAAE,IAAK,GAAEC,EAAEoI,GAAG,MAAM,IAAK,GAAEpI,EAAEqI,GAAG,MAAM,IAAK,IAAGrI,EAAEsI,GAAG,MAAM,IAAK,WAAUtI,EAAEwI,GAAG,MAAM,QAAQxI,EAAEsI,EAAE,CAACtI,EAAE0kB,GAAG1kB,EAAE2kB,GAAG,KAAK,KAAK3lB,CAAC,CAAC,CAAC,CAACA,EAAE,iBAAiBK,EAAEL,EAAE,aAAagB,CAAC,CAAC,CAC7c,SAAS2kB,GAAG3lB,EAAEK,EAAE,CAAY,GAAXglB,GAAG,GAAGC,GAAG,EAAU1kB,EAAE,EAAG,MAAM,MAAMvB,EAAE,GAAG,CAAC,EAAE,IAAI2B,EAAEhB,EAAE,aAAa,GAAG4lB,GAAE,GAAI5lB,EAAE,eAAegB,EAAE,OAAO,KAAK,IAAID,EAAEoJ,GAAGnK,EAAEA,IAAI0B,EAAE+iB,EAAE,CAAC,EAAE,GAAO1jB,IAAJ,EAAM,OAAO,KAAK,GAAQA,EAAE,IAAUA,EAAEf,EAAE,cAAeK,EAAEA,EAAEwlB,GAAG7lB,EAAEe,CAAC,MAAM,CAACV,EAAEU,EAAE,IAAIT,EAAEM,EAAEA,GAAG,EAAE,IAAIQ,EAAE0kB,GAAE,GAAMpkB,IAAI1B,GAAGykB,IAAIpkB,KAAE0kB,GAAG,KAAK1C,GAAGpiB,IAAI,IAAI8lB,GAAG/lB,EAAEK,CAAC,GAAE,EAAG,IAAG,CAAC2lB,GAAE,EAAG,KAAK,OAAO9kB,EAAE,CAAC+kB,GAAGjmB,EAAEkB,CAAC,CAAC,OAAO,IAAGwY,GAAE,EAAG2K,GAAG,QAAQjjB,EAAER,EAAEN,EAASkkB,IAAP,KAASnkB,EAAE,GAAGqB,EAAE,KAAK+iB,EAAE,EAAEpkB,EAAEwB,EAAE,CAAC,GAAOxB,IAAJ,EAAM,CAAyC,GAApCA,IAAJ,IAAQC,EAAEgK,GAAGtK,CAAC,EAAMM,IAAJ,IAAQS,EAAET,EAAED,EAAE6lB,GAAGlmB,EAAEM,CAAC,IAAWD,IAAJ,EAAM,MAAMW,EAAE0jB,GAAGqB,GAAG/lB,EAAE,CAAC,EAAEulB,GAAGvlB,EAAEe,CAAC,EAAEykB,GAAGxlB,EAAEC,EAAC,CAAE,EAAEe,EAAE,GAAOX,IAAJ,EAAMklB,GAAGvlB,EAAEe,CAAC,MACjf,CAAuB,GAAtBT,EAAEN,EAAE,QAAQ,UAAkB,EAAAe,EAAE,KAAK,CAAColB,GAAG7lB,CAAC,IAAID,EAAEwlB,GAAG7lB,EAAEe,CAAC,EAAMV,IAAJ,IAAQe,EAAEkJ,GAAGtK,CAAC,EAAMoB,IAAJ,IAAQL,EAAEK,EAAEf,EAAE6lB,GAAGlmB,EAAEoB,CAAC,IAAQf,IAAJ,GAAO,MAAMW,EAAE0jB,GAAGqB,GAAG/lB,EAAE,CAAC,EAAEulB,GAAGvlB,EAAEe,CAAC,EAAEykB,GAAGxlB,EAAEC,EAAC,CAAE,EAAEe,EAAqC,OAAnChB,EAAE,aAAaM,EAAEN,EAAE,cAAce,EAASV,EAAC,CAAE,IAAK,GAAE,IAAK,GAAE,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAE,IAAK,GAAE+mB,GAAGpmB,EAAE8kB,GAAGC,EAAE,EAAE,MAAM,IAAK,GAAU,GAARQ,GAAGvlB,EAAEe,CAAC,GAAMA,EAAE,aAAaA,IAAIV,EAAEyjB,GAAG,IAAI7jB,EAAC,EAAG,GAAGI,GAAG,CAAC,GAAO8J,GAAGnK,EAAE,CAAC,IAAV,EAAY,MAAyB,GAAnBM,EAAEN,EAAE,gBAAmBM,EAAES,KAAKA,EAAE,CAACY,GAAC,EAAG3B,EAAE,aAAaA,EAAE,eAAeM,EAAE,KAAK,CAACN,EAAE,cAAcgV,GAAGoR,GAAG,KAAK,KAAKpmB,EAAE8kB,GAAGC,EAAE,EAAE1kB,CAAC,EAAE,KAAK,CAAC+lB,GAAGpmB,EAAE8kB,GAAGC,EAAE,EAAE,MAAM,IAAK,GAAU,GAARQ,GAAGvlB,EAAEe,CAAC,GAAMA,EAAE,WAChfA,EAAE,MAAqB,IAAfV,EAAEL,EAAE,WAAeM,EAAE,GAAG,EAAES,GAAG,CAAC,IAAII,EAAE,GAAGyI,GAAG7I,CAAC,EAAEK,EAAE,GAAGD,EAAEA,EAAEd,EAAEc,CAAC,EAAEA,EAAEb,IAAIA,EAAEa,GAAGJ,GAAG,CAACK,CAAC,CAAqG,GAApGL,EAAET,EAAES,EAAEd,EAAC,EAAGc,EAAEA,GAAG,IAAIA,EAAE,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKqjB,GAAGrjB,EAAE,IAAI,GAAGA,EAAK,GAAGA,EAAE,CAACf,EAAE,cAAcgV,GAAGoR,GAAG,KAAK,KAAKpmB,EAAE8kB,GAAGC,EAAE,EAAEhkB,CAAC,EAAE,KAAK,CAACqlB,GAAGpmB,EAAE8kB,GAAGC,EAAE,EAAE,MAAM,IAAK,GAAEqB,GAAGpmB,EAAE8kB,GAAGC,EAAE,EAAE,MAAM,QAAQ,MAAM,MAAM1lB,EAAE,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,OAAAmmB,GAAGxlB,EAAEC,GAAG,EAASD,EAAE,eAAegB,EAAE2kB,GAAG,KAAK,KAAK3lB,CAAC,EAAE,IAAI,CACrX,SAASkmB,GAAGlmB,EAAEK,EAAE,CAAC,IAAIW,EAAE6jB,GAAG,OAAA7kB,EAAE,QAAQ,cAAc,eAAe+lB,GAAG/lB,EAAEK,CAAC,EAAE,OAAO,KAAKL,EAAE6lB,GAAG7lB,EAAEK,CAAC,EAAML,IAAJ,IAAQK,EAAEykB,GAAGA,GAAG9jB,EAASX,IAAP,MAAU+hB,GAAG/hB,CAAC,GAAUL,CAAC,CAAC,SAASoiB,GAAGpiB,EAAE,CAAQ8kB,KAAP,KAAUA,GAAG9kB,EAAE8kB,GAAG,KAAK,MAAMA,GAAG9kB,CAAC,CAAC,CAC5L,SAASmmB,GAAGnmB,EAAE,CAAC,QAAQK,EAAEL,IAAI,CAAC,GAAGK,EAAE,MAAM,MAAM,CAAC,IAAIW,EAAEX,EAAE,YAAY,GAAUW,IAAP,OAAWA,EAAEA,EAAE,OAAcA,IAAP,MAAU,QAAQD,EAAE,EAAEA,EAAEC,EAAE,OAAOD,IAAI,CAAC,IAAIT,EAAEU,EAAED,CAAC,EAAEK,EAAEd,EAAE,YAAYA,EAAEA,EAAE,MAAM,GAAG,CAAC,GAAG,CAACoR,GAAGtQ,EAAC,EAAGd,CAAC,EAAE,MAAM,EAAE,MAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAW,GAAVU,EAAEX,EAAE,MAASA,EAAE,aAAa,OAAcW,IAAP,KAASA,EAAE,OAAOX,EAAEA,EAAEW,MAAM,CAAC,GAAGX,IAAIL,EAAE,MAAM,KAAYK,EAAE,UAAT,MAAkB,CAAC,GAAUA,EAAE,SAAT,MAAiBA,EAAE,SAASL,EAAE,MAAM,GAAGK,EAAEA,EAAE,MAAM,CAACA,EAAE,QAAQ,OAAOA,EAAE,OAAOA,EAAEA,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CACla,SAASklB,GAAGvlB,EAAEK,EAAE,CAAqD,IAApDA,GAAG,CAACukB,GAAGvkB,GAAG,CAACskB,GAAG3kB,EAAE,gBAAgBK,EAAEL,EAAE,aAAa,CAACK,EAAML,EAAEA,EAAE,gBAAgB,EAAEK,GAAG,CAAC,IAAIW,EAAE,GAAG4I,GAAGvJ,CAAC,EAAEU,EAAE,GAAGC,EAAEhB,EAAEgB,CAAC,EAAE,GAAGX,GAAG,CAACU,CAAC,CAAC,CAAC,SAAS0kB,GAAGzlB,EAAE,CAAC,GAAQY,EAAE,EAAG,MAAM,MAAMvB,EAAE,GAAG,CAAC,EAAEumB,GAAE,EAAG,IAAIvlB,EAAE8J,GAAGnK,EAAE,CAAC,EAAE,GAAQ,EAAAK,EAAE,GAAG,OAAOmlB,GAAGxlB,EAAEC,EAAC,CAAE,EAAE,KAAK,IAAIe,EAAE6kB,GAAG7lB,EAAEK,CAAC,EAAE,GAAOL,EAAE,MAAN,GAAegB,IAAJ,EAAM,CAAC,IAAID,EAAEuJ,GAAGtK,CAAC,EAAMe,IAAJ,IAAQV,EAAEU,EAAEC,EAAEklB,GAAGlmB,EAAEe,CAAC,EAAE,CAAC,GAAOC,IAAJ,EAAM,MAAMA,EAAE0jB,GAAGqB,GAAG/lB,EAAE,CAAC,EAAEulB,GAAGvlB,EAAEK,CAAC,EAAEmlB,GAAGxlB,EAAEC,EAAC,CAAE,EAAEe,EAAE,GAAOA,IAAJ,EAAM,MAAM,MAAM3B,EAAE,GAAG,CAAC,EAAE,OAAAW,EAAE,aAAaA,EAAE,QAAQ,UAAUA,EAAE,cAAcK,EAAE+lB,GAAGpmB,EAAE8kB,GAAGC,EAAE,EAAES,GAAGxlB,EAAEC,EAAC,CAAE,EAAS,IAAI,CACvd,SAASomB,GAAGrmB,EAAEK,EAAE,CAAC,IAAIW,EAAEJ,EAAEA,GAAG,EAAE,GAAG,CAAC,OAAOZ,EAAEK,CAAC,CAAC,QAAC,CAAQO,EAAEI,EAAMJ,IAAJ,IAAQyhB,GAAGpiB,EAAC,EAAG,IAAI0W,IAAII,GAAE,EAAG,CAAC,CAAC,SAASuP,GAAGtmB,EAAE,CAAQilB,KAAP,MAAeA,GAAG,MAAP,GAAiB,EAAArkB,EAAE,IAAIglB,GAAE,EAAG,IAAIvlB,EAAEO,EAAEA,GAAG,EAAE,IAAII,EAAEujB,GAAG,WAAWxjB,EAAEb,EAAE,GAAG,CAAC,GAAGqkB,GAAG,WAAW,KAAKrkB,EAAE,EAAEF,EAAE,OAAOA,EAAC,CAAE,QAAC,CAAQE,EAAEa,EAAEwjB,GAAG,WAAWvjB,EAAEJ,EAAEP,EAAO,EAAAO,EAAE,IAAImW,IAAI,CAAC,CAAC,SAASuL,IAAI,CAAC5B,GAAGD,GAAG,QAAQrgB,EAAEqgB,EAAE,CAAC,CAChT,SAASsF,GAAG/lB,EAAEK,EAAE,CAACL,EAAE,aAAa,KAAKA,EAAE,cAAc,EAAE,IAAIgB,EAAEhB,EAAE,cAAiD,GAA9BgB,IAAL,KAAShB,EAAE,cAAc,GAAGiV,GAAGjU,CAAC,GAAawjB,IAAP,KAAS,IAAIxjB,EAAEwjB,EAAE,OAAcxjB,IAAP,MAAU,CAAC,IAAID,EAAEC,EAAQ,OAAN4W,GAAG7W,CAAC,EAASA,EAAE,IAAG,CAAE,IAAK,GAAEA,EAAEA,EAAE,KAAK,kBAAyBA,GAAP,MAAsBsV,GAAE,EAAG,MAAM,IAAK,GAAE+E,GAAE,EAAGhb,EAAE6V,EAAE,EAAE7V,EAAEK,EAAC,EAAEgb,GAAE,EAAG,MAAM,IAAK,GAAEH,GAAGva,CAAC,EAAE,MAAM,IAAK,GAAEqa,GAAE,EAAG,MAAM,IAAK,IAAGhb,EAAES,CAAC,EAAE,MAAM,IAAK,IAAGT,EAAES,CAAC,EAAE,MAAM,IAAK,IAAG8Y,GAAG5Y,EAAE,KAAK,QAAQ,EAAE,MAAM,IAAK,IAAG,IAAK,IAAGuhB,GAAE,CAAE,CAACthB,EAAEA,EAAE,MAAM,CAAqE,GAApEU,EAAE1B,EAAEwkB,EAAExkB,EAAE+Y,GAAG/Y,EAAE,QAAQ,IAAI,EAAEykB,EAAE/D,GAAGrgB,EAAEwB,EAAE,EAAE6iB,GAAG,KAAKE,GAAGD,GAAG/J,GAAG,EAAEkK,GAAGD,GAAG,KAAe7K,KAAP,KAAU,CAAC,IAAI3Z,EAC1f,EAAEA,EAAE2Z,GAAG,OAAO3Z,IAAI,GAAGW,EAAEgZ,GAAG3Z,CAAC,EAAEU,EAAEC,EAAE,YAAmBD,IAAP,KAAS,CAACC,EAAE,YAAY,KAAK,IAAIV,EAAES,EAAE,KAAKK,EAAEJ,EAAE,QAAQ,GAAUI,IAAP,KAAS,CAAC,IAAID,EAAEC,EAAE,KAAKA,EAAE,KAAKd,EAAES,EAAE,KAAKI,CAAC,CAACH,EAAE,QAAQD,CAAC,CAACiZ,GAAG,IAAI,CAAC,OAAOha,CAAC,CAC3K,SAASimB,GAAGjmB,EAAEK,EAAE,CAAC,EAAE,CAAC,IAAIW,EAAEwjB,EAAE,GAAG,CAAoB,GAAnB9K,GAAE,EAAGgC,GAAG,QAAQY,GAAMT,GAAG,CAAC,QAAQ9a,EAAED,EAAE,cAAqBC,IAAP,MAAU,CAAC,IAAIT,EAAES,EAAE,MAAaT,IAAP,OAAWA,EAAE,QAAQ,MAAMS,EAAEA,EAAE,IAAI,CAAC8a,GAAG,EAAE,CAA4C,GAA3CD,GAAG,EAAEra,EAAED,EAAER,EAAE,KAAKgb,GAAG,GAAGC,GAAG,EAAEuI,GAAG,QAAQ,KAAetjB,IAAP,MAAiBA,EAAE,SAAT,KAAgB,CAACa,EAAE,EAAE6iB,GAAGrkB,EAAEmkB,EAAE,KAAK,KAAK,CAACxkB,EAAE,CAAC,IAAIoB,EAAEpB,EAAEmB,EAAEH,EAAE,OAAOE,EAAEF,EAAEC,EAAEZ,EAAqB,GAAnBA,EAAEokB,EAAEvjB,EAAE,OAAO,MAAgBD,IAAP,MAAqB,OAAOA,GAAlB,UAAkC,OAAOA,EAAE,MAAtB,WAA2B,CAAC,IAAI9B,EAAE8B,EAAEI,EAAEH,EAAE5B,EAAE+B,EAAE,IAAI,GAAQ,EAAAA,EAAE,KAAK,KAAS/B,IAAJ,GAAYA,IAAL,IAAaA,IAAL,IAAQ,CAAC,IAAIC,EAAE8B,EAAE,UAAU9B,GAAG8B,EAAE,YAAY9B,EAAE,YAAY8B,EAAE,cAAc9B,EAAE,cACxe8B,EAAE,MAAM9B,EAAE,QAAQ8B,EAAE,YAAY,KAAKA,EAAE,cAAc,KAAK,CAAC,IAAIxB,EAAEigB,GAAG3e,CAAC,EAAE,GAAUtB,IAAP,KAAS,CAACA,EAAE,OAAO,KAAKkgB,GAAGlgB,EAAEsB,EAAED,EAAEE,EAAEf,CAAC,EAAER,EAAE,KAAK,GAAG+f,GAAGxe,EAAEjC,EAAEkB,CAAC,EAAEA,EAAER,EAAEoB,EAAE9B,EAAE,IAAIC,EAAEiB,EAAE,YAAY,GAAUjB,IAAP,KAAS,CAAC,IAAII,EAAE,IAAI,IAAIA,EAAE,IAAIyB,CAAC,EAAEZ,EAAE,YAAYb,CAAC,MAAMJ,EAAE,IAAI6B,CAAC,EAAE,MAAMjB,CAAC,KAAK,CAAC,GAAQ,EAAAK,EAAE,GAAG,CAACuf,GAAGxe,EAAEjC,EAAEkB,CAAC,EAAEmhB,GAAE,EAAG,MAAMxhB,CAAC,CAACiB,EAAE,MAAM5B,EAAE,GAAG,CAAC,CAAC,CAAC,SAASqB,GAAGQ,EAAE,KAAK,EAAE,CAAC,IAAIP,EAAEmf,GAAG3e,CAAC,EAAE,GAAUR,IAAP,KAAS,CAAM,EAAAA,EAAE,MAAM,SAASA,EAAE,OAAO,KAAKof,GAAGpf,EAAEQ,EAAED,EAAEE,EAAEf,CAAC,EAAEoY,GAAG0G,GAAGle,EAAEC,CAAC,CAAC,EAAE,MAAMlB,CAAC,CAAC,CAACoB,EAAEH,EAAEke,GAAGle,EAAEC,CAAC,EAAMW,IAAJ,IAAQA,EAAE,GAAUgjB,KAAP,KAAUA,GAAG,CAACzjB,CAAC,EAAEyjB,GAAG,KAAKzjB,CAAC,EAAEA,EAAED,EAAE,EAAE,CAAC,OAAOC,EAAE,IAAG,CAAE,IAAK,GAAEA,EAAE,OAAO,MACpff,GAAG,CAACA,EAAEe,EAAE,OAAOf,EAAE,IAAIT,EAAE2f,GAAGne,EAAEH,EAAEZ,CAAC,EAAEqa,GAAGtZ,EAAExB,CAAC,EAAE,MAAMI,EAAE,IAAK,GAAEkB,EAAED,EAAE,IAAItB,EAAEyB,EAAE,KAAK3B,EAAE2B,EAAE,UAAU,GAAQ,EAAAA,EAAE,MAAM,OAAoB,OAAOzB,EAAE,0BAAtB,YAAuDF,IAAP,MAAuB,OAAOA,EAAE,mBAAtB,aAAiDkgB,KAAP,MAAW,CAACA,GAAG,IAAIlgB,CAAC,IAAI,CAAC2B,EAAE,OAAO,MAAMf,GAAG,CAACA,EAAEe,EAAE,OAAOf,EAAE,IAAIE,EAAEmf,GAAGte,EAAEF,EAAEb,CAAC,EAAEqa,GAAGtZ,EAAEb,CAAC,EAAE,MAAMP,CAAC,CAAC,CAACoB,EAAEA,EAAE,MAAM,OAAcA,IAAP,KAAS,CAACmlB,GAAGvlB,CAAC,CAAC,OAAOoT,EAAG,CAAC/T,EAAE+T,EAAGoQ,IAAIxjB,GAAUA,IAAP,OAAWwjB,EAAExjB,EAAEA,EAAE,QAAQ,QAAQ,CAAC,KAAK,OAAO,GAAE,CAAC,SAAS8kB,IAAI,CAAC,IAAI9lB,EAAEqkB,GAAG,QAAQ,OAAAA,GAAG,QAAQ/H,GAAiBtc,IAAP,KAASsc,GAAGtc,CAAC,CACrd,SAASwhB,IAAI,EAAQ3f,IAAJ,GAAWA,IAAJ,GAAWA,IAAJ,KAAMA,EAAE,GAASH,IAAP,MAAe,EAAAkZ,GAAG,YAAiB,EAAA+J,GAAG,YAAYY,GAAG7jB,EAAE+iB,CAAC,CAAC,CAAC,SAASoB,GAAG7lB,EAAEK,EAAE,CAAC,IAAIW,EAAEJ,EAAEA,GAAG,EAAE,IAAIG,EAAE+kB,GAAE,GAAMpkB,IAAI1B,GAAGykB,IAAIpkB,KAAE0kB,GAAG,KAAKgB,GAAG/lB,EAAEK,CAAC,GAAE,EAAG,IAAG,CAACmmB,GAAE,EAAG,KAAK,OAAOlmB,EAAE,CAAC2lB,GAAGjmB,EAAEM,CAAC,CAAC,OAAO,IAAyB,GAAtBoZ,GAAE,EAAG9Y,EAAEI,EAAEqjB,GAAG,QAAQtjB,EAAYyjB,IAAP,KAAS,MAAM,MAAMnlB,EAAE,GAAG,CAAC,EAAE,OAAAqC,EAAE,KAAK+iB,EAAE,EAAS5iB,CAAC,CAAC,SAAS2kB,IAAI,CAAC,KAAYhC,IAAP,MAAUiC,GAAGjC,CAAC,CAAC,CAAC,SAASwB,IAAI,CAAC,KAAYxB,IAAP,MAAU,CAACvb,GAAE,GAAIwd,GAAGjC,CAAC,CAAC,CAAC,SAASiC,GAAGzmB,EAAE,CAAC,IAAIK,EAAEqmB,GAAG1mB,EAAE,UAAUA,EAAE0gB,EAAE,EAAE1gB,EAAE,cAAcA,EAAE,aAAoBK,IAAP,KAASkmB,GAAGvmB,CAAC,EAAEwkB,EAAEnkB,EAAEikB,GAAG,QAAQ,IAAI,CAC1d,SAASiC,GAAGvmB,EAAE,CAAC,IAAIK,EAAEL,EAAE,EAAE,CAAC,IAAIgB,EAAEX,EAAE,UAAqB,GAAXL,EAAEK,EAAE,OAAeA,EAAE,MAAM,MAAkD,CAAW,GAAVW,EAAEuhB,GAAGvhB,EAAEX,CAAC,EAAYW,IAAP,KAAS,CAACA,EAAE,OAAO,MAAMwjB,EAAExjB,EAAE,MAAM,CAAC,GAAUhB,IAAP,KAASA,EAAE,OAAO,MAAMA,EAAE,aAAa,EAAEA,EAAE,UAAU,SAAS,CAAC6B,EAAE,EAAE2iB,EAAE,KAAK,MAAM,CAAC,SAA7KxjB,EAAEmhB,GAAGnhB,EAAEX,EAAEqgB,EAAE,EAAS1f,IAAP,KAAS,CAACwjB,EAAExjB,EAAE,MAAM,CAAyJ,GAAZX,EAAEA,EAAE,QAAkBA,IAAP,KAAS,CAACmkB,EAAEnkB,EAAE,MAAM,CAACmkB,EAAEnkB,EAAEL,CAAC,OAAcK,IAAP,MAAcwB,IAAJ,IAAQA,EAAE,EAAE,CAAC,SAASukB,GAAGpmB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEb,EAAEI,EAAEikB,GAAG,WAAW,GAAG,CAACA,GAAG,WAAW,KAAKrkB,EAAE,EAAEymB,GAAG3mB,EAAEK,EAAEW,EAAED,CAAC,CAAC,QAAC,CAAQwjB,GAAG,WAAWjkB,EAAEJ,EAAEa,CAAC,CAAC,OAAO,IAAI,CAChc,SAAS4lB,GAAG3mB,EAAEK,EAAEW,EAAED,EAAE,CAAC,GAAG6kB,GAAE,QAAgBX,KAAP,MAAW,GAAQrkB,EAAE,EAAG,MAAM,MAAMvB,EAAE,GAAG,CAAC,EAAE2B,EAAEhB,EAAE,aAAa,IAAIM,EAAEN,EAAE,cAAc,GAAUgB,IAAP,KAAS,OAAO,KAA2C,GAAtChB,EAAE,aAAa,KAAKA,EAAE,cAAc,EAAKgB,IAAIhB,EAAE,QAAQ,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAEW,EAAE,aAAa,KAAKA,EAAE,iBAAiB,EAAE,IAAIoB,EAAEJ,EAAE,MAAMA,EAAE,WAA8J,GAAnJ0J,GAAG1K,EAAEoB,CAAC,EAAEpB,IAAI0B,IAAI8iB,EAAE9iB,EAAE,KAAK+iB,EAAE,GAAQ,EAAAzjB,EAAE,aAAa,OAAY,EAAAA,EAAE,MAAM,OAAOgkB,KAAKA,GAAG,GAAGU,GAAGpc,GAAG,UAAU,CAAC,OAAAsc,GAAE,EAAU,IAAI,CAAC,GAAGxkB,GAAOJ,EAAE,MAAM,SAAb,EAA4BA,EAAE,aAAa,OAAQI,EAAE,CAACA,EAAEmjB,GAAG,WAAWA,GAAG,WAAW,KAChf,IAAIpjB,EAAEjB,EAAEA,EAAE,EAAE,IAAIgB,EAAEN,EAAEA,GAAG,EAAE0jB,GAAG,QAAQ,KAAKzB,GAAG7iB,EAAEgB,CAAC,EAAE4iB,GAAG5iB,EAAEhB,CAAC,EAAEiS,GAAG6C,EAAE,EAAEvI,GAAG,CAAC,CAACsI,GAAGC,GAAGD,GAAG,KAAK7U,EAAE,QAAQgB,EAAEgjB,GAAGhjB,CAAK,EAAEkI,GAAE,EAAGtI,EAAEM,EAAEhB,EAAEiB,EAAEojB,GAAG,WAAWnjB,CAAC,MAAMpB,EAAE,QAAQgB,EAAsF,GAApFgkB,KAAKA,GAAG,GAAGC,GAAGjlB,EAAEklB,GAAG5kB,GAAGc,EAAEpB,EAAE,aAAiBoB,IAAJ,IAAQue,GAAG,MAAMhW,GAAG3I,EAAE,SAAW,EAAEwkB,GAAGxlB,EAAEC,EAAC,CAAE,EAAYI,IAAP,KAAS,IAAIU,EAAEf,EAAE,mBAAmBgB,EAAE,EAAEA,EAAEX,EAAE,OAAOW,IAAIV,EAAED,EAAEW,CAAC,EAAED,EAAET,EAAE,MAAM,CAAC,eAAeA,EAAE,MAAM,OAAOA,EAAE,MAAM,CAAC,EAAE,GAAGkf,GAAG,MAAMA,GAAG,GAAGxf,EAAEyf,GAAGA,GAAG,KAAKzf,EAAE,OAAKklB,GAAG,GAAQllB,EAAE,MAAN,GAAW4lB,GAAE,EAAGxkB,EAAEpB,EAAE,aAAkBoB,EAAE,EAAGpB,IAAIolB,GAAGD,MAAMA,GAAG,EAAEC,GAAGplB,GAAGmlB,GAAG,EAAEpO,GAAE,EAAU,IAAI,CACre,SAAS6O,IAAI,CAAC,GAAUX,KAAP,KAAU,CAAC,IAAIjlB,EAAE4K,GAAGsa,EAAE,EAAE7kB,EAAEkkB,GAAG,WAAWvjB,EAAEd,EAAE,GAAG,CAAgC,GAA/BqkB,GAAG,WAAW,KAAKrkB,EAAE,GAAGF,EAAE,GAAGA,EAAYilB,KAAP,KAAU,IAAIlkB,EAAE,OAAO,CAAmB,GAAlBf,EAAEilB,GAAGA,GAAG,KAAKC,GAAG,EAAUtkB,EAAE,EAAG,MAAM,MAAMvB,EAAE,GAAG,CAAC,EAAE,IAAIiB,EAAEM,EAAO,IAALA,GAAG,EAAMmB,EAAE/B,EAAE,QAAe+B,IAAP,MAAU,CAAC,IAAIX,EAAEW,EAAEZ,EAAEC,EAAE,MAAM,GAAQW,EAAE,MAAM,GAAI,CAAC,IAAIb,EAAEE,EAAE,UAAU,GAAUF,IAAP,KAAS,CAAC,QAAQD,EAAE,EAAEA,EAAEC,EAAE,OAAOD,IAAI,CAAC,IAAI9B,EAAE+B,EAAED,CAAC,EAAE,IAAIc,EAAE5C,EAAS4C,IAAP,MAAU,CAAC,IAAIV,EAAEU,EAAE,OAAOV,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAGyhB,GAAG,EAAEzhB,EAAED,CAAC,CAAC,CAAC,IAAI9B,EAAE+B,EAAE,MAAM,GAAU/B,IAAP,KAASA,EAAE,OAAO+B,EAAEU,EAAEzC,MAAO,MAAYyC,IAAP,MAAU,CAACV,EAAEU,EAAE,IAAIxC,EAAE8B,EAAE,QAAQxB,EAAEwB,EAAE,OAAa,GAAN4hB,GAAG5hB,CAAC,EAAKA,IACnflC,EAAE,CAAC4C,EAAE,KAAK,KAAK,CAAC,GAAUxC,IAAP,KAAS,CAACA,EAAE,OAAOM,EAAEkC,EAAExC,EAAE,KAAK,CAACwC,EAAElC,CAAC,CAAC,CAAC,CAAC,IAAIT,EAAEgC,EAAE,UAAU,GAAUhC,IAAP,KAAS,CAAC,IAAII,EAAEJ,EAAE,MAAM,GAAUI,IAAP,KAAS,CAACJ,EAAE,MAAM,KAAK,EAAE,CAAC,IAAIuB,EAAEnB,EAAE,QAAQA,EAAE,QAAQ,KAAKA,EAAEmB,CAAC,OAAcnB,IAAP,KAAS,CAAC,CAACuC,EAAEX,CAAC,CAAC,CAAC,GAAQA,EAAE,aAAa,MAAcD,IAAP,KAASA,EAAE,OAAOC,EAAEW,EAAEZ,OAAOd,EAAE,KAAY0B,IAAP,MAAU,CAAK,GAAJX,EAAEW,EAAUX,EAAE,MAAM,KAAM,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG0hB,GAAG,EAAE1hB,EAAEA,EAAE,MAAM,CAAC,CAAC,IAAIxB,EAAEwB,EAAE,QAAQ,GAAUxB,IAAP,KAAS,CAACA,EAAE,OAAOwB,EAAE,OAAOW,EAAEnC,EAAE,MAAMS,CAAC,CAAC0B,EAAEX,EAAE,MAAM,CAAC,CAAC,IAAIzB,EAAEK,EAAE,QAAQ,IAAI+B,EAAEpC,EAASoC,IAAP,MAAU,CAACZ,EAAEY,EAAE,IAAItC,EAAE0B,EAAE,MAAM,GAAQA,EAAE,aAAa,MAC3e1B,IADkf,KAChfA,EAAE,OAAO0B,EAAEY,EAAEtC,OAAOY,EAAE,IAAIc,EAAExB,EAASoC,IAAP,MAAU,CAAK,GAAJb,EAAEa,EAAUb,EAAE,MAAM,KAAM,GAAG,CAAC,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAK,IAAG,IAAK,IAAG6hB,GAAG,EAAE7hB,CAAC,CAAC,CAAC,OAAOkT,EAAG,CAACpS,EAAEd,EAAEA,EAAE,OAAOkT,CAAE,CAAC,CAAC,GAAGlT,IAAIC,EAAE,CAACY,EAAE,KAAK,MAAM1B,CAAC,CAAC,IAAIE,EAAEW,EAAE,QAAQ,GAAUX,IAAP,KAAS,CAACA,EAAE,OAAOW,EAAE,OAAOa,EAAExB,EAAE,MAAMF,CAAC,CAAC0B,EAAEb,EAAE,MAAM,CAAC,CAAU,GAATN,EAAEN,EAAEyW,GAAE,EAAMrN,IAAiB,OAAOA,GAAG,uBAAvB,WAA6C,GAAG,CAACA,GAAG,sBAAsBD,GAAGzJ,CAAC,CAAC,MAAU,EAAEe,EAAE,EAAE,CAAC,OAAOA,CAAC,QAAC,CAAQb,EAAEc,EAAEujB,GAAG,WAAWlkB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,SAASumB,GAAG5mB,EAAEK,EAAEW,EAAE,CAACX,EAAE8e,GAAGne,EAAEX,CAAC,EAAEA,EAAEkf,GAAGvf,EAAEK,EAAE,CAAC,EAAEL,EAAEwa,GAAGxa,EAAEK,EAAE,CAAC,EAAEA,EAAEsB,GAAC,EAAU3B,IAAP,OAAWyK,GAAGzK,EAAE,EAAEK,CAAC,EAAEmlB,GAAGxlB,EAAEK,CAAC,EAAE,CACze,SAAS2B,EAAEhC,EAAEK,EAAEW,EAAE,CAAC,GAAOhB,EAAE,MAAN,EAAU4mB,GAAG5mB,EAAEA,EAAEgB,CAAC,MAAO,MAAYX,IAAP,MAAU,CAAC,GAAOA,EAAE,MAAN,EAAU,CAACumB,GAAGvmB,EAAEL,EAAEgB,CAAC,EAAE,KAAK,SAAaX,EAAE,MAAN,EAAU,CAAC,IAAIU,EAAEV,EAAE,UAAU,GAAgB,OAAOA,EAAE,KAAK,0BAA3B,YAAkE,OAAOU,EAAE,mBAAtB,aAAiD4e,KAAP,MAAW,CAACA,GAAG,IAAI5e,CAAC,GAAG,CAACf,EAAEmf,GAAGne,EAAEhB,CAAC,EAAEA,EAAE0f,GAAGrf,EAAEL,EAAE,CAAC,EAAEK,EAAEma,GAAGna,EAAEL,EAAE,CAAC,EAAEA,EAAE2B,GAAC,EAAUtB,IAAP,OAAWoK,GAAGpK,EAAE,EAAEL,CAAC,EAAEwlB,GAAGnlB,EAAEL,CAAC,GAAG,KAAK,CAAC,CAACK,EAAEA,EAAE,MAAM,CAAC,CACnV,SAASwf,GAAG7f,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAEf,EAAE,UAAiBe,IAAP,MAAUA,EAAE,OAAOV,CAAC,EAAEA,EAAEsB,KAAI3B,EAAE,aAAaA,EAAE,eAAegB,EAAEU,IAAI1B,IAAIykB,EAAEzjB,KAAKA,IAAQa,IAAJ,GAAWA,IAAJ,IAAQ4iB,EAAE,aAAaA,GAAG,IAAIxkB,IAAI6jB,GAAGiC,GAAG/lB,EAAE,CAAC,EAAE4kB,IAAI5jB,GAAGwkB,GAAGxlB,EAAEK,CAAC,CAAC,CAAC,SAASwmB,GAAG7mB,EAAEK,EAAE,CAAKA,IAAJ,IAAaL,EAAE,KAAK,GAAQK,EAAE4J,GAAGA,KAAK,EAAO,EAAAA,GAAG,aAAaA,GAAG,UAAzC5J,EAAE,GAAkD,IAAIW,EAAEW,GAAC,EAAG3B,EAAEma,GAAGna,EAAEK,CAAC,EAASL,IAAP,OAAWyK,GAAGzK,EAAEK,EAAEW,CAAC,EAAEwkB,GAAGxlB,EAAEgB,CAAC,EAAE,CAAC,SAASygB,GAAGzhB,EAAE,CAAC,IAAIK,EAAEL,EAAE,cAAcgB,EAAE,EAASX,IAAP,OAAWW,EAAEX,EAAE,WAAWwmB,GAAG7mB,EAAEgB,CAAC,CAAC,CACjZ,SAAS0iB,GAAG1jB,EAAEK,EAAE,CAAC,IAAIW,EAAE,EAAE,OAAOhB,EAAE,IAAG,CAAE,IAAK,IAAG,IAAIe,EAAEf,EAAE,UAAcM,EAAEN,EAAE,cAAqBM,IAAP,OAAWU,EAAEV,EAAE,WAAW,MAAM,IAAK,IAAGS,EAAEf,EAAE,UAAU,MAAM,QAAQ,MAAM,MAAMX,EAAE,GAAG,CAAC,CAAE,CAAQ0B,IAAP,MAAUA,EAAE,OAAOV,CAAC,EAAEwmB,GAAG7mB,EAAEgB,CAAC,CAAC,CAAC,IAAI0lB,GAClNA,GAAG,SAAS1mB,EAAEK,EAAEW,EAAE,CAAC,GAAUhB,IAAP,KAAS,GAAGA,EAAE,gBAAgBK,EAAE,cAAc4V,GAAG,QAAQ6D,GAAG,OAAO,CAAC,GAAQ,EAAA9Z,EAAE,MAAMgB,IAAS,EAAAX,EAAE,MAAM,KAAK,OAAOyZ,GAAG,GAAG+H,GAAG7hB,EAAEK,EAAEW,CAAC,EAAE8Y,GAAQ,GAAA9Z,EAAE,MAAM,OAAa,MAAM8Z,GAAG,GAAGpZ,GAAQL,EAAE,MAAM,SAAUqX,GAAGrX,EAAE8W,GAAG9W,EAAE,KAAK,EAAY,OAAVA,EAAE,MAAM,EAASA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAIU,EAAEV,EAAE,KAAKwgB,GAAG7gB,EAAEK,CAAC,EAAEL,EAAEK,EAAE,aAAa,IAAIC,EAAE6V,GAAG9V,EAAEI,GAAE,OAAO,EAAEoZ,GAAGxZ,EAAEW,CAAC,EAAEV,EAAE4b,GAAG,KAAK7b,EAAEU,EAAEf,EAAEM,EAAEU,CAAC,EAAE,IAAII,EAAEmb,GAAE,EAAG,OAAAlc,EAAE,OAAO,EAAa,OAAOC,GAAlB,UAA4BA,IAAP,MAAuB,OAAOA,EAAE,QAAtB,YAAuCA,EAAE,WAAX,QAAqBD,EAAE,IAAI,EAAEA,EAAE,cAAc,KAAKA,EAAE,YAC1e,KAAK+V,GAAGrV,CAAC,GAAGK,EAAE,GAAGoV,GAAGnW,CAAC,GAAGe,EAAE,GAAGf,EAAE,cAAqBC,EAAE,QAAT,MAAyBA,EAAE,QAAX,OAAiBA,EAAE,MAAM,KAAK+Z,GAAGha,CAAC,EAAEC,EAAE,QAAQwe,GAAGze,EAAE,UAAUC,EAAEA,EAAE,gBAAgBD,EAAE6e,GAAG7e,EAAEU,EAAEf,EAAEgB,CAAC,EAAEX,EAAEygB,GAAG,KAAKzgB,EAAEU,EAAE,GAAGK,EAAEJ,CAAC,IAAIX,EAAE,IAAI,EAAEK,GAAGU,GAAGuW,GAAGtX,CAAC,EAAE4f,GAAG,KAAK5f,EAAEC,EAAEU,CAAC,EAAEX,EAAEA,EAAE,OAAcA,EAAE,IAAK,IAAGU,EAAEV,EAAE,YAAYL,EAAE,CAAqF,OAApF6gB,GAAG7gB,EAAEK,CAAC,EAAEL,EAAEK,EAAE,aAAaC,EAAES,EAAE,MAAMA,EAAET,EAAES,EAAE,QAAQ,EAAEV,EAAE,KAAKU,EAAET,EAAED,EAAE,IAAIymB,GAAG/lB,CAAC,EAAEf,EAAE4e,GAAG7d,EAAEf,CAAC,EAASM,EAAC,CAAE,IAAK,GAAED,EAAEkgB,GAAG,KAAKlgB,EAAEU,EAAEf,EAAEgB,CAAC,EAAE,MAAMhB,EAAE,IAAK,GAAEK,EAAEugB,GAAG,KAAKvgB,EAAEU,EAAEf,EAAEgB,CAAC,EAAE,MAAMhB,EAAE,IAAK,IAAGK,EAAE6f,GAAG,KAAK7f,EAAEU,EAAEf,EAAEgB,CAAC,EAAE,MAAMhB,EAAE,IAAK,IAAGK,EAAE+f,GAAG,KAAK/f,EAAEU,EAAE6d,GAAG7d,EAAE,KAAKf,CAAC,EAAEgB,CAAC,EAAE,MAAMhB,CAAC,CAAC,MAAM,MAAMX,EAAE,IACvgB0B,EAAE,EAAE,CAAC,CAAE,CAAC,OAAOV,EAAE,IAAK,GAAE,OAAOU,EAAEV,EAAE,KAAKC,EAAED,EAAE,aAAaC,EAAED,EAAE,cAAcU,EAAET,EAAEse,GAAG7d,EAAET,CAAC,EAAEigB,GAAGvgB,EAAEK,EAAEU,EAAET,EAAEU,CAAC,EAAE,IAAK,GAAE,OAAOD,EAAEV,EAAE,KAAKC,EAAED,EAAE,aAAaC,EAAED,EAAE,cAAcU,EAAET,EAAEse,GAAG7d,EAAET,CAAC,EAAEsgB,GAAG5gB,EAAEK,EAAEU,EAAET,EAAEU,CAAC,EAAE,IAAK,GAAEhB,EAAE,CAAO,GAAN+gB,GAAG1gB,CAAC,EAAYL,IAAP,KAAS,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAE0B,EAAEV,EAAE,aAAae,EAAEf,EAAE,cAAcC,EAAEc,EAAE,QAAQkZ,GAAGta,EAAEK,CAAC,EAAEsa,GAAGta,EAAEU,EAAE,KAAKC,CAAC,EAAE,IAAIG,EAAEd,EAAE,cAA0B,GAAZU,EAAEI,EAAE,QAAWC,EAAE,aAAa,GAAGA,EAAE,CAAC,QAAQL,EAAE,aAAa,GAAG,MAAMI,EAAE,MAAM,0BAA0BA,EAAE,0BAA0B,YAAYA,EAAE,WAAW,EAAEd,EAAE,YAAY,UAChfe,EAAEf,EAAE,cAAce,EAAEf,EAAE,MAAM,IAAI,CAACC,EAAE6e,GAAG,MAAM9f,EAAE,GAAG,CAAC,EAAEgB,CAAC,EAAEA,EAAE2gB,GAAGhhB,EAAEK,EAAEU,EAAEC,EAAEV,CAAC,EAAE,MAAMN,CAAC,SAASe,IAAIT,EAAE,CAACA,EAAE6e,GAAG,MAAM9f,EAAE,GAAG,CAAC,EAAEgB,CAAC,EAAEA,EAAE2gB,GAAGhhB,EAAEK,EAAEU,EAAEC,EAAEV,CAAC,EAAE,MAAMN,CAAC,KAAM,KAAI8X,GAAGxC,GAAGjV,EAAE,UAAU,cAAc,UAAU,EAAEwX,GAAGxX,EAAEK,EAAE,GAAGqX,GAAG,KAAK/W,EAAEqY,GAAGhZ,EAAE,KAAKU,EAAEC,CAAC,EAAEX,EAAE,MAAMW,EAAEA,GAAGA,EAAE,MAAMA,EAAE,MAAM,GAAG,KAAKA,EAAEA,EAAE,YAAY,CAAM,GAALwX,GAAE,EAAMzX,IAAIT,EAAE,CAACD,EAAE8f,GAAGngB,EAAEK,EAAEW,CAAC,EAAE,MAAMhB,CAAC,CAACigB,GAAGjgB,EAAEK,EAAEU,EAAEC,CAAC,CAAC,CAACX,EAAEA,EAAE,KAAK,CAAC,OAAOA,EAAE,IAAK,GAAE,OAAOgb,GAAGhb,CAAC,EAASL,IAAP,MAAUoY,GAAG/X,CAAC,EAAEU,EAAEV,EAAE,KAAKC,EAAED,EAAE,aAAae,EAASpB,IAAP,KAASA,EAAE,cAAc,KAAKmB,EAAEb,EAAE,SAASyU,GAAGhU,EAAET,CAAC,EAAEa,EAAE,KAAYC,IAAP,MAAU2T,GAAGhU,EAAEK,CAAC,IAAIf,EAAE,OAAO,IACnfsgB,GAAG3gB,EAAEK,CAAC,EAAE4f,GAAGjgB,EAAEK,EAAEc,EAAEH,CAAC,EAAEX,EAAE,MAAM,IAAK,GAAE,OAAcL,IAAP,MAAUoY,GAAG/X,CAAC,EAAE,KAAK,IAAK,IAAG,OAAO8gB,GAAGnhB,EAAEK,EAAEW,CAAC,EAAE,IAAK,GAAE,OAAOma,GAAG9a,EAAEA,EAAE,UAAU,aAAa,EAAEU,EAAEV,EAAE,aAAoBL,IAAP,KAASK,EAAE,MAAM+Y,GAAG/Y,EAAE,KAAKU,EAAEC,CAAC,EAAEif,GAAGjgB,EAAEK,EAAEU,EAAEC,CAAC,EAAEX,EAAE,MAAM,IAAK,IAAG,OAAOU,EAAEV,EAAE,KAAKC,EAAED,EAAE,aAAaC,EAAED,EAAE,cAAcU,EAAET,EAAEse,GAAG7d,EAAET,CAAC,EAAE4f,GAAGlgB,EAAEK,EAAEU,EAAET,EAAEU,CAAC,EAAE,IAAK,GAAE,OAAOif,GAAGjgB,EAAEK,EAAEA,EAAE,aAAaW,CAAC,EAAEX,EAAE,MAAM,IAAK,GAAE,OAAO4f,GAAGjgB,EAAEK,EAAEA,EAAE,aAAa,SAASW,CAAC,EAAEX,EAAE,MAAM,IAAK,IAAG,OAAO4f,GAAGjgB,EAAEK,EAAEA,EAAE,aAAa,SAASW,CAAC,EAAEX,EAAE,MAAM,IAAK,IAAGL,EAAE,CACxZ,GADyZe,EAAEV,EAAE,KAAK,SAASC,EAAED,EAAE,aAAae,EAAEf,EAAE,cAClfc,EAAEb,EAAE,MAAME,EAAE8Y,GAAGvY,EAAE,aAAa,EAAEA,EAAE,cAAcI,EAAYC,IAAP,KAAS,GAAGsQ,GAAGtQ,EAAE,MAAMD,CAAC,GAAG,GAAGC,EAAE,WAAWd,EAAE,UAAU,CAAC2V,GAAG,QAAQ,CAAC5V,EAAE8f,GAAGngB,EAAEK,EAAEW,CAAC,EAAE,MAAMhB,CAAC,MAAO,KAAIoB,EAAEf,EAAE,MAAae,IAAP,OAAWA,EAAE,OAAOf,GAAUe,IAAP,MAAU,CAAC,IAAIF,EAAEE,EAAE,aAAa,GAAUF,IAAP,KAAS,CAACC,EAAEC,EAAE,MAAM,QAAQH,EAAEC,EAAE,aAAoBD,IAAP,MAAU,CAAC,GAAGA,EAAE,UAAUF,EAAE,CAAC,GAAOK,EAAE,MAAN,EAAU,CAACH,EAAEsZ,GAAG,GAAGvZ,EAAE,CAACA,CAAC,EAAEC,EAAE,IAAI,EAAE,IAAI9B,EAAEiC,EAAE,YAAY,GAAUjC,IAAP,KAAS,CAACA,EAAEA,EAAE,OAAO,IAAIkC,EAAElC,EAAE,QAAekC,IAAP,KAASJ,EAAE,KAAKA,GAAGA,EAAE,KAAKI,EAAE,KAAKA,EAAE,KAAKJ,GAAG9B,EAAE,QAAQ8B,CAAC,CAAC,CAACG,EAAE,OAAOJ,EAAEC,EAAEG,EAAE,UAAiBH,IAAP,OAAWA,EAAE,OAAOD,GAAG4Y,GAAGxY,EAAE,OAClfJ,EAAEX,CAAC,EAAEa,EAAE,OAAOF,EAAE,KAAK,CAACC,EAAEA,EAAE,IAAI,CAAC,SAAcG,EAAE,MAAP,GAAWD,EAAEC,EAAE,OAAOf,EAAE,KAAK,KAAKe,EAAE,cAAmBA,EAAE,MAAP,GAAW,CAAY,GAAXD,EAAEC,EAAE,OAAiBD,IAAP,KAAS,MAAM,MAAM9B,EAAE,GAAG,CAAC,EAAE8B,EAAE,OAAOH,EAAEE,EAAEC,EAAE,UAAiBD,IAAP,OAAWA,EAAE,OAAOF,GAAG4Y,GAAGzY,EAAEH,EAAEX,CAAC,EAAEc,EAAEC,EAAE,OAAO,MAAMD,EAAEC,EAAE,MAAM,GAAUD,IAAP,KAASA,EAAE,OAAOC,MAAO,KAAID,EAAEC,EAASD,IAAP,MAAU,CAAC,GAAGA,IAAId,EAAE,CAACc,EAAE,KAAK,KAAK,CAAa,GAAZC,EAAED,EAAE,QAAkBC,IAAP,KAAS,CAACA,EAAE,OAAOD,EAAE,OAAOA,EAAEC,EAAE,KAAK,CAACD,EAAEA,EAAE,MAAM,CAACC,EAAED,CAAC,CAAC8e,GAAGjgB,EAAEK,EAAEC,EAAE,SAASU,CAAC,EAAEX,EAAEA,EAAE,KAAK,CAAC,OAAOA,EAAE,IAAK,GAAE,OAAOC,EAAED,EAAE,KAAKU,EAAEV,EAAE,aAAa,SAASwZ,GAAGxZ,EAAEW,CAAC,EAAEV,EAAEyZ,GAAGzZ,CAAC,EAAES,EAAEA,EAAET,CAAC,EAAED,EAAE,OAAO,EAAE4f,GAAGjgB,EAAEK,EAAEU,EAAEC,CAAC,EACrfX,EAAE,MAAM,IAAK,IAAG,OAAOU,EAAEV,EAAE,KAAKC,EAAEse,GAAG7d,EAAEV,EAAE,YAAY,EAAEC,EAAEse,GAAG7d,EAAE,KAAKT,CAAC,EAAE8f,GAAGpgB,EAAEK,EAAEU,EAAET,EAAEU,CAAC,EAAE,IAAK,IAAG,OAAOsf,GAAGtgB,EAAEK,EAAEA,EAAE,KAAKA,EAAE,aAAaW,CAAC,EAAE,IAAK,IAAG,OAAOD,EAAEV,EAAE,KAAKC,EAAED,EAAE,aAAaC,EAAED,EAAE,cAAcU,EAAET,EAAEse,GAAG7d,EAAET,CAAC,EAAEugB,GAAG7gB,EAAEK,CAAC,EAAEA,EAAE,IAAI,EAAE+V,GAAGrV,CAAC,GAAGf,EAAE,GAAGwW,GAAGnW,CAAC,GAAGL,EAAE,GAAG6Z,GAAGxZ,EAAEW,CAAC,EAAEge,GAAG3e,EAAEU,EAAET,CAAC,EAAE4e,GAAG7e,EAAEU,EAAET,EAAEU,CAAC,EAAE8f,GAAG,KAAKzgB,EAAEU,EAAE,GAAGf,EAAEgB,CAAC,EAAE,IAAK,IAAG,OAAO4gB,GAAG5hB,EAAEK,EAAEW,CAAC,EAAE,IAAK,IAAG,OAAOwf,GAAGxgB,EAAEK,EAAEW,CAAC,CAAC,CAAC,MAAM,MAAM3B,EAAE,IAAIgB,EAAE,GAAG,CAAC,CAAE,EAAE,SAASqlB,GAAG1lB,EAAEK,EAAE,CAAC,OAAO0I,GAAG/I,EAAEK,CAAC,CAAC,CACjZ,SAAS0mB,GAAG/mB,EAAEK,EAAEW,EAAED,EAAE,CAAC,KAAK,IAAIf,EAAE,KAAK,IAAIgB,EAAE,KAAK,QAAQ,KAAK,MAAM,KAAK,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,YAAY,KAAK,KAAK,MAAM,EAAE,KAAK,IAAI,KAAK,KAAK,aAAaX,EAAE,KAAK,aAAa,KAAK,cAAc,KAAK,YAAY,KAAK,cAAc,KAAK,KAAK,KAAKU,EAAE,KAAK,aAAa,KAAK,MAAM,EAAE,KAAK,UAAU,KAAK,KAAK,WAAW,KAAK,MAAM,EAAE,KAAK,UAAU,IAAI,CAAC,SAASkX,GAAGjY,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAO,IAAIgmB,GAAG/mB,EAAEK,EAAEW,EAAED,CAAC,CAAC,CAAC,SAASsf,GAAGrgB,EAAE,CAAC,OAAAA,EAAEA,EAAE,UAAgB,EAAE,CAACA,GAAG,CAACA,EAAE,iBAAiB,CACpd,SAAS8mB,GAAG9mB,EAAE,CAAC,GAAgB,OAAOA,GAApB,WAAsB,OAAOqgB,GAAGrgB,CAAC,EAAE,EAAE,EAAE,GAAsBA,GAAP,KAAS,CAAc,GAAbA,EAAEA,EAAE,SAAYA,IAAImE,GAAG,MAAO,IAAG,GAAGnE,IAAIsE,GAAG,MAAO,GAAE,CAAC,MAAO,EAAC,CAC/I,SAASyU,GAAG/Y,EAAEK,EAAE,CAAC,IAAIW,EAAEhB,EAAE,UAAU,OAAOgB,IAAP,MAAUA,EAAEiX,GAAGjY,EAAE,IAAIK,EAAEL,EAAE,IAAIA,EAAE,IAAI,EAAEgB,EAAE,YAAYhB,EAAE,YAAYgB,EAAE,KAAKhB,EAAE,KAAKgB,EAAE,UAAUhB,EAAE,UAAUgB,EAAE,UAAUhB,EAAEA,EAAE,UAAUgB,IAAIA,EAAE,aAAaX,EAAEW,EAAE,KAAKhB,EAAE,KAAKgB,EAAE,MAAM,EAAEA,EAAE,aAAa,EAAEA,EAAE,UAAU,MAAMA,EAAE,MAAMhB,EAAE,MAAM,SAASgB,EAAE,WAAWhB,EAAE,WAAWgB,EAAE,MAAMhB,EAAE,MAAMgB,EAAE,MAAMhB,EAAE,MAAMgB,EAAE,cAAchB,EAAE,cAAcgB,EAAE,cAAchB,EAAE,cAAcgB,EAAE,YAAYhB,EAAE,YAAYK,EAAEL,EAAE,aAAagB,EAAE,aAAoBX,IAAP,KAAS,KAAK,CAAC,MAAMA,EAAE,MAAM,aAAaA,EAAE,YAAY,EAC3fW,EAAE,QAAQhB,EAAE,QAAQgB,EAAE,MAAMhB,EAAE,MAAMgB,EAAE,IAAIhB,EAAE,IAAWgB,CAAC,CACxD,SAASiY,GAAGjZ,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAE,CAAC,IAAID,EAAE,EAAM,GAAJJ,EAAEf,EAAkB,OAAOA,GAApB,WAAsBqgB,GAAGrgB,CAAC,IAAImB,EAAE,WAAsB,OAAOnB,GAAlB,SAAoBmB,EAAE,OAAOnB,EAAE,OAAOA,EAAC,CAAE,KAAK8D,GAAG,OAAOqV,GAAGnY,EAAE,SAASV,EAAEc,EAAEf,CAAC,EAAE,KAAK0D,GAAG5C,EAAE,EAAEb,GAAG,EAAE,MAAM,KAAK0D,GAAG,OAAOhE,EAAEiY,GAAG,GAAGjX,EAAEX,EAAEC,EAAE,CAAC,EAAEN,EAAE,YAAYgE,GAAGhE,EAAE,MAAMoB,EAAEpB,EAAE,KAAKoE,GAAG,OAAOpE,EAAEiY,GAAG,GAAGjX,EAAEX,EAAEC,CAAC,EAAEN,EAAE,YAAYoE,GAAGpE,EAAE,MAAMoB,EAAEpB,EAAE,KAAKqE,GAAG,OAAOrE,EAAEiY,GAAG,GAAGjX,EAAEX,EAAEC,CAAC,EAAEN,EAAE,YAAYqE,GAAGrE,EAAE,MAAMoB,EAAEpB,EAAE,KAAKwE,GAAG,OAAO4c,GAAGpgB,EAAEV,EAAEc,EAAEf,CAAC,EAAE,QAAQ,GAAc,OAAOL,GAAlB,UAA4BA,IAAP,KAAS,OAAOA,EAAE,SAAQ,CAAE,KAAKiE,GAAG9C,EAAE,GAAG,MAAMnB,EAAE,KAAKkE,GAAG/C,EAAE,EAAE,MAAMnB,EAAE,KAAKmE,GAAGhD,EAAE,GACpf,MAAMnB,EAAE,KAAKsE,GAAGnD,EAAE,GAAG,MAAMnB,EAAE,KAAKuE,GAAGpD,EAAE,GAAGJ,EAAE,KAAK,MAAMf,CAAC,CAAC,MAAM,MAAMX,EAAE,IAAUW,GAAN,KAAQA,EAAE,OAAOA,EAAE,EAAE,CAAC,CAAE,CAAC,OAAAK,EAAE4X,GAAG9W,EAAEH,EAAEX,EAAEC,CAAC,EAAED,EAAE,YAAYL,EAAEK,EAAE,KAAKU,EAAEV,EAAE,MAAMe,EAASf,CAAC,CAAC,SAAS8Y,GAAGnZ,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAAf,EAAEiY,GAAG,EAAEjY,EAAEe,EAAEV,CAAC,EAAEL,EAAE,MAAMgB,EAAShB,CAAC,CAAC,SAASohB,GAAGphB,EAAEK,EAAEW,EAAED,EAAE,CAAC,OAAAf,EAAEiY,GAAG,GAAGjY,EAAEe,EAAEV,CAAC,EAAEL,EAAE,YAAYwE,GAAGxE,EAAE,MAAMgB,EAAEhB,EAAE,UAAU,CAAC,SAAS,EAAE,EAASA,CAAC,CAAC,SAASgZ,GAAGhZ,EAAEK,EAAEW,EAAE,CAAC,OAAAhB,EAAEiY,GAAG,EAAEjY,EAAE,KAAKK,CAAC,EAAEL,EAAE,MAAMgB,EAAShB,CAAC,CAC5W,SAASkZ,GAAGlZ,EAAEK,EAAEW,EAAE,CAAC,OAAAX,EAAE4X,GAAG,EAASjY,EAAE,WAAT,KAAkBA,EAAE,SAAS,GAAGA,EAAE,IAAIK,CAAC,EAAEA,EAAE,MAAMW,EAAEX,EAAE,UAAU,CAAC,cAAcL,EAAE,cAAc,gBAAgB,KAAK,eAAeA,EAAE,cAAc,EAASK,CAAC,CACtL,SAAS2mB,GAAGhnB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,KAAK,IAAID,EAAE,KAAK,cAAcL,EAAE,KAAK,aAAa,KAAK,UAAU,KAAK,QAAQ,KAAK,gBAAgB,KAAK,KAAK,cAAc,GAAG,KAAK,aAAa,KAAK,eAAe,KAAK,QAAQ,KAAK,KAAK,iBAAiB,EAAE,KAAK,WAAWwK,GAAG,CAAC,EAAE,KAAK,gBAAgBA,GAAG,EAAE,EAAE,KAAK,eAAe,KAAK,cAAc,KAAK,iBAAiB,KAAK,aAAa,KAAK,YAAY,KAAK,eAAe,KAAK,aAAa,EAAE,KAAK,cAAcA,GAAG,CAAC,EAAE,KAAK,iBAAiBzJ,EAAE,KAAK,mBAAmBT,EAAE,KAAK,gCAC/e,IAAI,CAAC,SAAS2mB,GAAGjnB,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAED,EAAED,EAAE,CAAC,OAAAjB,EAAE,IAAIgnB,GAAGhnB,EAAEK,EAAEW,EAAEE,EAAED,CAAC,EAAMZ,IAAJ,GAAOA,EAAE,EAAOe,IAAL,KAASf,GAAG,IAAIA,EAAE,EAAEe,EAAE6W,GAAG,EAAE,KAAK,KAAK5X,CAAC,EAAEL,EAAE,QAAQoB,EAAEA,EAAE,UAAUpB,EAAEoB,EAAE,cAAc,CAAC,QAAQL,EAAE,aAAaC,EAAE,MAAM,KAAK,YAAY,KAAK,0BAA0B,IAAI,EAAEqZ,GAAGjZ,CAAC,EAASpB,CAAC,CAAC,SAASknB,GAAGlnB,EAAEK,EAAEW,EAAE,CAAC,IAAID,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS8C,GAAG,IAAU9C,GAAN,KAAQ,KAAK,GAAGA,EAAE,SAASf,EAAE,cAAcK,EAAE,eAAeW,CAAC,CAAC,CACpa,SAASmmB,GAAGnnB,EAAE,CAAC,GAAG,CAACA,EAAE,OAAOgW,GAAGhW,EAAEA,EAAE,gBAAgBA,EAAE,CAAC,GAAGyI,GAAGzI,CAAC,IAAIA,GAAOA,EAAE,MAAN,EAAU,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAE,IAAIgB,EAAEL,EAAE,EAAE,CAAC,OAAOK,EAAE,IAAG,CAAE,IAAK,GAAEA,EAAEA,EAAE,UAAU,QAAQ,MAAML,EAAE,IAAK,GAAE,GAAGoW,GAAG/V,EAAE,IAAI,EAAE,CAACA,EAAEA,EAAE,UAAU,0CAA0C,MAAML,CAAC,CAAC,CAACK,EAAEA,EAAE,MAAM,OAAcA,IAAP,MAAU,MAAM,MAAMhB,EAAE,GAAG,CAAC,CAAE,CAAC,GAAOW,EAAE,MAAN,EAAU,CAAC,IAAIgB,EAAEhB,EAAE,KAAK,GAAGoW,GAAGpV,CAAC,EAAE,OAAOuV,GAAGvW,EAAEgB,EAAEX,CAAC,CAAC,CAAC,OAAOA,CAAC,CACpW,SAAS+mB,GAAGpnB,EAAEK,EAAEW,EAAED,EAAET,EAAEc,EAAED,EAAED,EAAED,EAAE,CAAC,OAAAjB,EAAEinB,GAAGjmB,EAAED,EAAE,GAAGf,EAAEM,EAAEc,EAAED,EAAED,EAAED,CAAC,EAAEjB,EAAE,QAAQmnB,GAAG,IAAI,EAAEnmB,EAAEhB,EAAE,QAAQe,EAAEY,KAAIrB,EAAEke,GAAGxd,CAAC,EAAEI,EAAEmZ,GAAGxZ,EAAET,CAAC,EAAEc,EAAE,SAA4Bf,GAAI,KAAKma,GAAGxZ,EAAEI,EAAEd,CAAC,EAAEN,EAAE,QAAQ,MAAMM,EAAEmK,GAAGzK,EAAEM,EAAES,CAAC,EAAEykB,GAAGxlB,EAAEe,CAAC,EAASf,CAAC,CAAC,SAASqnB,GAAGrnB,EAAEK,EAAEW,EAAED,EAAE,CAAC,IAAIT,EAAED,EAAE,QAAQe,EAAEO,GAAC,EAAGR,EAAEqd,GAAGle,CAAC,EAAE,OAAAU,EAAEmmB,GAAGnmB,CAAC,EAASX,EAAE,UAAT,KAAiBA,EAAE,QAAQW,EAAEX,EAAE,eAAeW,EAAEX,EAAEka,GAAGnZ,EAAED,CAAC,EAAEd,EAAE,QAAQ,CAAC,QAAQL,CAAC,EAAEe,EAAWA,IAAT,OAAW,KAAKA,EAASA,IAAP,OAAWV,EAAE,SAASU,GAAGf,EAAEwa,GAAGla,EAAED,EAAEc,CAAC,EAASnB,IAAP,OAAWsd,GAAGtd,EAAEM,EAAEa,EAAEC,CAAC,EAAEqZ,GAAGza,EAAEM,EAAEa,CAAC,GAAUA,CAAC,CAC3b,SAASmmB,GAAGtnB,EAAE,CAAa,GAAZA,EAAEA,EAAE,QAAW,CAACA,EAAE,MAAM,OAAO,KAAK,OAAOA,EAAE,MAAM,KAAK,IAAK,GAAE,OAAOA,EAAE,MAAM,UAAU,QAAQ,OAAOA,EAAE,MAAM,SAAS,CAAC,CAAC,SAASunB,GAAGvnB,EAAEK,EAAE,CAAmB,GAAlBL,EAAEA,EAAE,cAAwBA,IAAP,MAAiBA,EAAE,aAAT,KAAoB,CAAC,IAAIgB,EAAEhB,EAAE,UAAUA,EAAE,UAAcgB,IAAJ,GAAOA,EAAEX,EAAEW,EAAEX,CAAC,CAAC,CAAC,SAASmnB,GAAGxnB,EAAEK,EAAE,CAACknB,GAAGvnB,EAAEK,CAAC,GAAGL,EAAEA,EAAE,YAAYunB,GAAGvnB,EAAEK,CAAC,CAAC,CAAC,SAASonB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAgB,OAAO,aAApB,WAAgC,YAAY,SAAS1nB,EAAE,CAAC,QAAQ,MAAMA,CAAC,CAAC,EAAE,SAAS2nB,GAAG3nB,EAAE,CAAC,KAAK,cAAcA,CAAC,CAC5b4nB,GAAG,UAAU,OAAOD,GAAG,UAAU,OAAO,SAAS3nB,EAAE,CAAC,IAAIK,EAAE,KAAK,cAAc,GAAUA,IAAP,KAAS,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAEgoB,GAAGrnB,EAAEK,EAAE,KAAK,IAAI,CAAC,EAAEunB,GAAG,UAAU,QAAQD,GAAG,UAAU,QAAQ,UAAU,CAAC,IAAI3nB,EAAE,KAAK,cAAc,GAAUA,IAAP,KAAS,CAAC,KAAK,cAAc,KAAK,IAAIK,EAAEL,EAAE,cAAcsmB,GAAG,UAAU,CAACe,GAAG,KAAKrnB,EAAE,KAAK,IAAI,CAAC,CAAC,EAAEK,EAAE4T,EAAE,EAAE,IAAI,CAAC,EAAE,SAAS2T,GAAG5nB,EAAE,CAAC,KAAK,cAAcA,CAAC,CAC9V4nB,GAAG,UAAU,2BAA2B,SAAS5nB,EAAE,CAAC,GAAGA,EAAE,CAAC,IAAIK,EAAE2K,GAAE,EAAGhL,EAAE,CAAC,UAAU,KAAK,OAAOA,EAAE,SAASK,CAAC,EAAE,QAAQW,EAAE,EAAEA,EAAEyK,GAAG,QAAYpL,IAAJ,GAAOA,EAAEoL,GAAGzK,CAAC,EAAE,SAASA,IAAI,CAACyK,GAAG,OAAOzK,EAAE,EAAEhB,CAAC,EAAMgB,IAAJ,GAAO8K,GAAG9L,CAAC,CAAC,CAAC,EAAE,SAAS6nB,GAAG7nB,EAAE,CAAC,MAAM,EAAE,CAACA,GAAOA,EAAE,WAAN,GAAoBA,EAAE,WAAN,GAAqBA,EAAE,WAAP,GAAgB,CAAC,SAAS8nB,GAAG9nB,EAAE,CAAC,MAAM,EAAE,CAACA,GAAOA,EAAE,WAAN,GAAoBA,EAAE,WAAN,GAAqBA,EAAE,WAAP,KAAsBA,EAAE,WAAN,GAAiDA,EAAE,YAAnC,gCAA8C,CAAC,SAAS+nB,IAAI,EACva,SAASC,GAAGhoB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,GAAGA,EAAE,CAAC,GAAgB,OAAOS,GAApB,WAAsB,CAAC,IAAIK,EAAEL,EAAEA,EAAE,UAAU,CAAC,IAAIf,EAAEsnB,GAAGnmB,CAAC,EAAEC,EAAE,KAAKpB,CAAC,CAAC,CAAC,CAAC,IAAImB,EAAEimB,GAAG/mB,EAAEU,EAAEf,EAAE,EAAE,KAAK,GAAG,GAAG,GAAG+nB,EAAE,EAAE,OAAA/nB,EAAE,oBAAoBmB,EAAEnB,EAAEiU,EAAE,EAAE9S,EAAE,QAAQ4S,GAAO/T,EAAE,WAAN,EAAeA,EAAE,WAAWA,CAAC,EAAEsmB,GAAE,EAAUnlB,CAAC,CAAC,KAAKb,EAAEN,EAAE,WAAWA,EAAE,YAAYM,CAAC,EAAE,GAAgB,OAAOS,GAApB,WAAsB,CAAC,IAAIG,EAAEH,EAAEA,EAAE,UAAU,CAAC,IAAIf,EAAEsnB,GAAGrmB,CAAC,EAAEC,EAAE,KAAKlB,CAAC,CAAC,CAAC,CAAC,IAAIiB,EAAEgmB,GAAGjnB,EAAE,EAAE,GAAG,KAAK,KAAK,GAAG,GAAG,GAAG+nB,EAAE,EAAE,OAAA/nB,EAAE,oBAAoBiB,EAAEjB,EAAEiU,EAAE,EAAEhT,EAAE,QAAQ8S,GAAO/T,EAAE,WAAN,EAAeA,EAAE,WAAWA,CAAC,EAAEsmB,GAAG,UAAU,CAACe,GAAGhnB,EAAEY,EAAED,EAAED,CAAC,CAAC,CAAC,EAASE,CAAC,CAC9d,SAASgnB,GAAGjoB,EAAEK,EAAEW,EAAED,EAAET,EAAE,CAAC,IAAIc,EAAEJ,EAAE,oBAAoB,GAAGI,EAAE,CAAC,IAAID,EAAEC,EAAE,GAAgB,OAAOd,GAApB,WAAsB,CAAC,IAAIY,EAAEZ,EAAEA,EAAE,UAAU,CAAC,IAAIN,EAAEsnB,GAAGnmB,CAAC,EAAED,EAAE,KAAKlB,CAAC,CAAC,CAAC,CAACqnB,GAAGhnB,EAAEc,EAAEnB,EAAEM,CAAC,CAAC,MAAMa,EAAE6mB,GAAGhnB,EAAEX,EAAEL,EAAEM,EAAES,CAAC,EAAE,OAAOumB,GAAGnmB,CAAC,CAAC,CAAC0J,GAAG,SAAS7K,EAAE,CAAC,OAAOA,EAAE,IAAG,CAAE,IAAK,GAAE,IAAIK,EAAEL,EAAE,UAAU,GAAGK,EAAE,QAAQ,cAAc,aAAa,CAAC,IAAIW,EAAEkJ,GAAG7J,EAAE,YAAY,EAAMW,IAAJ,IAAQ2J,GAAGtK,EAAEW,EAAE,CAAC,EAAEwkB,GAAGnlB,EAAEJ,EAAC,CAAE,EAAO,EAAAW,EAAE,KAAKyhB,GAAGpiB,EAAC,EAAG,IAAI8W,GAAE,GAAI,CAAC,MAAM,IAAK,IAAGuP,GAAG,UAAU,CAAC,IAAIjmB,EAAE8Z,GAAGna,EAAE,CAAC,EAAE,GAAUK,IAAP,KAAS,CAAC,IAAIW,EAAEW,GAAC,EAAG2b,GAAGjd,EAAEL,EAAE,EAAEgB,CAAC,CAAC,CAAC,CAAC,EAAEwmB,GAAGxnB,EAAE,CAAC,CAAC,CAAC,EAC/b8K,GAAG,SAAS9K,EAAE,CAAC,GAAQA,EAAE,MAAP,GAAW,CAAC,IAAIK,EAAE8Z,GAAGna,EAAE,SAAS,EAAE,GAAUK,IAAP,KAAS,CAAC,IAAIW,EAAEW,GAAC,EAAG2b,GAAGjd,EAAEL,EAAE,UAAUgB,CAAC,CAAC,CAACwmB,GAAGxnB,EAAE,SAAS,CAAC,CAAC,EAAE+K,GAAG,SAAS/K,EAAE,CAAC,GAAQA,EAAE,MAAP,GAAW,CAAC,IAAIK,EAAEme,GAAGxe,CAAC,EAAEgB,EAAEmZ,GAAGna,EAAEK,CAAC,EAAE,GAAUW,IAAP,KAAS,CAAC,IAAID,EAAEY,GAAC,EAAG2b,GAAGtc,EAAEhB,EAAEK,EAAEU,CAAC,CAAC,CAACymB,GAAGxnB,EAAEK,CAAC,CAAC,CAAC,EAAE2K,GAAG,UAAU,CAAC,OAAO9K,CAAC,EAAE+K,GAAG,SAASjL,EAAEK,EAAE,CAAC,IAAIW,EAAEd,EAAE,GAAG,CAAC,OAAOA,EAAEF,EAAEK,EAAC,CAAE,QAAC,CAAQH,EAAEc,CAAC,CAAC,EAClSkG,GAAG,SAASlH,EAAEK,EAAEW,EAAE,CAAC,OAAOX,EAAC,CAAE,IAAK,QAAyB,GAAjBsF,GAAG3F,EAAEgB,CAAC,EAAEX,EAAEW,EAAE,KAAkBA,EAAE,OAAZ,SAAwBX,GAAN,KAAQ,CAAC,IAAIW,EAAEhB,EAAEgB,EAAE,YAAYA,EAAEA,EAAE,WAAsF,IAA3EA,EAAEA,EAAE,iBAAiB,cAAc,KAAK,UAAU,GAAGX,CAAC,EAAE,iBAAiB,EAAMA,EAAE,EAAEA,EAAEW,EAAE,OAAOX,IAAI,CAAC,IAAIU,EAAEC,EAAEX,CAAC,EAAE,GAAGU,IAAIf,GAAGe,EAAE,OAAOf,EAAE,KAAK,CAAC,IAAIM,EAAEiH,GAAGxG,CAAC,EAAE,GAAG,CAACT,EAAE,MAAM,MAAMjB,EAAE,EAAE,CAAC,EAAEiG,GAAGvE,CAAC,EAAE4E,GAAG5E,EAAET,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAK,WAAW4F,GAAGlG,EAAEgB,CAAC,EAAE,MAAM,IAAK,SAASX,EAAEW,EAAE,MAAYX,GAAN,MAAS0F,GAAG/F,EAAE,CAAC,CAACgB,EAAE,SAASX,EAAE,EAAE,CAAC,CAAC,EAAEqH,GAAG2e,GAAG1e,GAAG2e,GACpa,IAAI4B,GAAG,CAAC,sBAAsB,GAAG,OAAO,CAAC5gB,GAAGuJ,GAAGtJ,GAAGC,GAAGC,GAAG4e,EAAE,CAAC,EAAE8B,GAAG,CAAC,wBAAwBpc,GAAG,WAAW,EAAE,QAAQ,SAAS,oBAAoB,WAAW,EACrJqc,GAAG,CAAC,WAAWD,GAAG,WAAW,QAAQA,GAAG,QAAQ,oBAAoBA,GAAG,oBAAoB,eAAeA,GAAG,eAAe,kBAAkB,KAAK,4BAA4B,KAAK,4BAA4B,KAAK,cAAc,KAAK,wBAAwB,KAAK,wBAAwB,KAAK,gBAAgB,KAAK,mBAAmB,KAAK,eAAe,KAAK,qBAAqBxkB,GAAG,uBAAuB,wBAAwB,SAAS3D,EAAE,CAAC,OAAAA,EAAE6I,GAAG7I,CAAC,EAAgBA,IAAP,KAAS,KAAKA,EAAE,SAAS,EAAE,wBAAwBmoB,GAAG,yBAC/fV,GAAG,4BAA4B,KAAK,gBAAgB,KAAK,aAAa,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,kBAAkB,iCAAiC,EAAE,GAAiB,OAAO,+BAArB,IAAoD,CAAC,IAAIY,GAAG,+BAA+B,GAAG,CAACA,GAAG,YAAYA,GAAG,cAAc,GAAG,CAAC5e,GAAG4e,GAAG,OAAOD,EAAE,EAAE1e,GAAG2e,EAAE,MAAS,EAAE,CAACC,GAAA,mDAA2DJ,GAC/YI,GAAA,aAAqB,SAAStoB,EAAEK,EAAE,CAAC,IAAIW,EAAE,EAAE,UAAU,QAAiB,UAAU,CAAC,IAApB,OAAsB,UAAU,CAAC,EAAE,KAAK,GAAG,CAAC6mB,GAAGxnB,CAAC,EAAE,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAE,OAAO6nB,GAAGlnB,EAAEK,EAAE,KAAKW,CAAC,CAAC,EAAEsnB,GAAA,WAAmB,SAAStoB,EAAEK,EAAE,CAAC,GAAG,CAACwnB,GAAG7nB,CAAC,EAAE,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAE,IAAI2B,EAAE,GAAGD,EAAE,GAAGT,EAAEonB,GAAG,OAAOrnB,GAAP,OAA4BA,EAAE,sBAAP,KAA6BW,EAAE,IAAaX,EAAE,mBAAX,SAA8BU,EAAEV,EAAE,kBAA2BA,EAAE,qBAAX,SAAgCC,EAAED,EAAE,qBAAqBA,EAAE4mB,GAAGjnB,EAAE,EAAE,GAAG,KAAK,KAAKgB,EAAE,GAAGD,EAAET,CAAC,EAAEN,EAAEiU,EAAE,EAAE5T,EAAE,QAAQ0T,GAAO/T,EAAE,WAAN,EAAeA,EAAE,WAAWA,CAAC,EAAS,IAAI2nB,GAAGtnB,CAAC,CAAC,EACrfioB,GAAA,YAAoB,SAAStoB,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAO,KAAK,GAAOA,EAAE,WAAN,EAAe,OAAOA,EAAE,IAAIK,EAAEL,EAAE,gBAAgB,GAAYK,IAAT,OAAY,MAAgB,OAAOL,EAAE,QAAtB,WAAmC,MAAMX,EAAE,GAAG,CAAC,GAAEW,EAAE,OAAO,KAAKA,CAAC,EAAE,KAAK,GAAG,EAAQ,MAAMX,EAAE,IAAIW,CAAC,CAAC,GAAG,OAAAA,EAAE6I,GAAGxI,CAAC,EAAEL,EAASA,IAAP,KAAS,KAAKA,EAAE,UAAiBA,CAAC,EAAEsoB,GAAA,UAAkB,SAAStoB,EAAE,CAAC,OAAOsmB,GAAGtmB,CAAC,CAAC,EAAEsoB,GAAA,QAAgB,SAAStoB,EAAEK,EAAEW,EAAE,CAAC,GAAG,CAAC8mB,GAAGznB,CAAC,EAAE,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAE,OAAO4oB,GAAG,KAAKjoB,EAAEK,EAAE,GAAGW,CAAC,CAAC,EAC/YsnB,GAAA,YAAoB,SAAStoB,EAAEK,EAAEW,EAAE,CAAC,GAAG,CAAC6mB,GAAG7nB,CAAC,EAAE,MAAM,MAAMX,EAAE,GAAG,CAAC,EAAE,IAAI0B,EAAQC,GAAN,MAASA,EAAE,iBAAiB,KAAKV,EAAE,GAAGc,EAAE,GAAGD,EAAEumB,GAAyO,GAA/N1mB,GAAP,OAA4BA,EAAE,sBAAP,KAA6BV,EAAE,IAAaU,EAAE,mBAAX,SAA8BI,EAAEJ,EAAE,kBAA2BA,EAAE,qBAAX,SAAgCG,EAAEH,EAAE,qBAAqBX,EAAE+mB,GAAG/mB,EAAE,KAAKL,EAAE,EAAQgB,GAAI,KAAKV,EAAE,GAAGc,EAAED,CAAC,EAAEnB,EAAEiU,EAAE,EAAE5T,EAAE,QAAQ0T,GAAG/T,CAAC,EAAKe,EAAE,IAAIf,EAAE,EAAEA,EAAEe,EAAE,OAAOf,IAAIgB,EAAED,EAAEf,CAAC,EAAEM,EAAEU,EAAE,YAAYV,EAAEA,EAAEU,EAAE,OAAO,EAAQX,EAAE,iCAAR,KAAwCA,EAAE,gCAAgC,CAACW,EAAEV,CAAC,EAAED,EAAE,gCAAgC,KAAKW,EACvhBV,CAAC,EAAE,OAAO,IAAIsnB,GAAGvnB,CAAC,CAAC,EAAEioB,GAAA,OAAe,SAAStoB,EAAEK,EAAEW,EAAE,CAAC,GAAG,CAAC8mB,GAAGznB,CAAC,EAAE,MAAM,MAAMhB,EAAE,GAAG,CAAC,EAAE,OAAO4oB,GAAG,KAAKjoB,EAAEK,EAAE,GAAGW,CAAC,CAAC,EAAEsnB,GAAA,uBAA+B,SAAStoB,EAAE,CAAC,GAAG,CAAC8nB,GAAG9nB,CAAC,EAAE,MAAM,MAAMX,EAAE,EAAE,CAAC,EAAE,OAAOW,EAAE,qBAAqBsmB,GAAG,UAAU,CAAC2B,GAAG,KAAK,KAAKjoB,EAAE,GAAG,UAAU,CAACA,EAAE,oBAAoB,KAAKA,EAAEiU,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAEqU,GAAA,wBAAgCjC,GAC/UiC,GAAA,oCAA4C,SAAStoB,EAAEK,EAAEW,EAAED,EAAE,CAAC,GAAG,CAAC+mB,GAAG9mB,CAAC,EAAE,MAAM,MAAM3B,EAAE,GAAG,CAAC,EAAE,GAASW,GAAN,MAAkBA,EAAE,kBAAX,OAA2B,MAAM,MAAMX,EAAE,EAAE,CAAC,EAAE,OAAO4oB,GAAGjoB,EAAEK,EAAEW,EAAE,GAAGD,CAAC,CAAC,EAAEunB,GAAA,QAAgB,kCC/T7L,SAASC,IAAW,CAElB,GACE,SAAO,+BAAmC,KAC1C,OAAO,+BAA+B,UAAa,YAcrD,GAAI,CAEF,+BAA+B,SAASA,EAAQ,QACzCC,EAAK,CAGZ,QAAQ,MAAMA,CAAG,EAErB,CAKED,GAAA,EACAE,GAAA,QAAiBrmB,wBChCff,GAAIe,GAENsmB,GAAqBrnB,GAAE,WACDA,GAAE,ylCCanB,MAAMsnB,WAAsBC,GAAM,SAGvC,CACQ,MAA4B,CAAE,SAAU,GAAO,MAAO,MAE/D,OAAO,yBAAyBC,EAAkC,CACjE,MAAO,CAAE,SAAU,GAAM,MAAAA,CAAA,CAC1B,CAES,kBAAkBA,EAAcC,EAA6B,CAGrE,QAAQ,MAAM,4BAA6BD,EAAOC,EAAK,cAAc,CACtE,CAEQ,aAAe,IAAY,CAClC,OAAO,SAAS,QACjB,EAES,QAAoB,CAC5B,OAAI,KAAK,MAAM,SAEbC,OAAC,OAAI,UAAU,iBACd,UAAAC,MAAC,MAAG,gCAAoB,QACvB,KAAG,cAAK,MAAM,OAAO,SAAW,uBAAuB,QACvD,UAAO,KAAK,SAAS,QAAS,KAAK,aAAc,4BAElD,GACD,EAGK,KAAK,MAAM,QACnB,CACD,CCxCO,SAASC,GAAO,CACtB,KAAAC,EACA,OAAAC,EACA,YAAAC,CACD,EAAoC,CACnC,OACCJ,MAAC,OAAI,UAAU,UAAU,KAAK,UAC5B,SAAAE,EAAK,IAAKG,GACVL,MAAC,UAEA,KAAK,SACL,KAAK,MACL,gBAAeG,IAAWE,EAAI,GAC9B,UAAWF,IAAWE,EAAI,GAAK,SAAW,GAC1C,QAAS,IAAMD,EAAYC,EAAI,EAAE,EAEhC,SAAAA,EAAI,OAPAA,EAAI,GASV,EACF,CAEF,CC7BO,SAASC,IAAqC,CACpD,OAAON,MAAC,OAAI,UAAU,kBAAkB,oBAAQ,CACjD,CCwBO,SAASO,GACfC,EACAC,EAAyB,GACP,CAClB,KAAM,CAAE,aAAAC,EAAe,GAAMD,EACvB,CAACE,EAAMC,CAAO,EAAIC,YAAmB,IAAI,EACzC,CAAChB,EAAOiB,CAAQ,EAAID,YAAuB,IAAI,EAC/C,CAACE,EAASC,CAAU,EAAIH,YAAS,EAAI,EACrC,CAACI,EAAeC,CAAgB,EAAIL,YAAwB,IAAI,EAChEM,EAAaC,UAAO,EAAI,EAExBC,EAAUC,eAAY,SAAY,CACvCN,EAAW,EAAI,EACfF,EAAS,IAAI,EACb,GAAI,CACH,MAAMS,EAAS,MAAMf,EAAA,EACjBW,EAAW,UACdP,EAAQW,CAAM,EACdL,EAAiB,KAAK,KAAK,EAE7B,OAAS1B,EAAK,CACT2B,EAAW,SACdL,EAAStB,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CAAC,CAE9D,SACK2B,EAAW,SACdH,EAAW,EAAK,CAElB,CACD,EAAG,CAACR,CAAO,CAAC,EAEZgB,oBAAU,KACTL,EAAW,QAAU,GACrBE,EAAA,EACO,IAAM,CACZF,EAAW,QAAU,EACtB,GACE,CAACE,CAAO,CAAC,EAEZG,aAAU,IAAM,CACf,GAAId,GAAgB,EAAG,OACvB,MAAMe,EAAQ,YAAYJ,EAASX,CAAY,EAC/C,MAAO,IAAM,cAAce,CAAK,CACjC,EAAG,CAACJ,EAASX,CAAY,CAAC,EAEnB,CAAE,KAAAC,EAAM,MAAAd,EAAO,QAAAkB,EAAS,QAASM,EAAS,cAAAJ,CAAA,CAClD,CCwSO,MAAMS,GAAY,CAExB,SAAU,CAET,KAAM,eAEP,EAUA,MAAO,CAEN,KAAM,YAGP,EA8BA,QAAS,CAER,KAAM,cAEP,EAYA,aAAc,CAEb,KAAM,iBAEP,EAGA,aAAc,CAEb,KAAM,iBAGP,EAGA,WAAY,CAEX,KAAM,kBAEP,EAGA,KAAM,CAEL,KAAM,WAEP,EAGA,aAAc,CAEb,KAAM,mBAEP,EAGA,SAAU,CAET,KAAM,eAEP,EAGA,kBAAmB,CAElB,KAAM,0BAGP,EAOA,OAAQ,CAEP,KAAM,aAGP,EAGA,MAAO,CAEN,KAAM,YAGP,EAGA,kBAAmB,CAElB,KAAM,iCAGP,EAGA,YAAa,CAEZ,KAAM,oBAGP,EAGA,eAAgB,CAEf,KAAM,mBAGP,EAGA,KAAM,CAEL,KAAM,WAGP,EAWA,cAAe,CAEd,KAAM,+BAEP,CACD,ECngBO,MAAMC,WAAiB,KAAM,CAC1B,OACT,YAAYC,EAAgBC,EAAiB,CAC5C,MAAM,iBAAiBD,CAAM,KAAKC,CAAO,EAAE,EAC3C,KAAK,KAAO,WACZ,KAAK,OAASD,CACf,CACD,CAGA,eAAeE,GAAWC,EAA0B,CAEnD,MAAMC,EAAM,MAAM,MAAMD,CAAI,EAC5B,GAAI,CAACC,EAAI,GACR,MAAM,IAAIL,GACTK,EAAI,OACJ,MAAMA,EAAI,OAAO,MAAM,IAAMA,EAAI,UAAU,GAG7C,OAAOA,EAAI,MACZ,CAGA,eAAeC,GAAWF,EAAcG,EAA2B,CAElE,MAAMF,EAAM,MAAM,MAAMD,EAAM,CAC7B,OAAQ,MACR,QAAS,CAAE,eAAgB,oBAC3B,KAAM,KAAK,UAAUG,CAAI,EACzB,EACD,GAAI,CAACF,EAAI,GACR,MAAM,IAAIL,GACTK,EAAI,OACJ,MAAMA,EAAI,OAAO,MAAM,IAAMA,EAAI,UAAU,GAG7C,OAAOA,EAAI,MACZ,CAGA,eAAeG,GAAYJ,EAAcG,EAA2B,CAEnE,MAAMF,EAAM,MAAM,MAAMD,EAAM,CAC7B,OAAQ,OACR,QAAS,CAAE,eAAgB,oBAC3B,KAAM,KAAK,UAAUG,CAAI,EACzB,EACD,GAAI,CAACF,EAAI,GACR,MAAM,IAAIL,GACTK,EAAI,OACJ,MAAMA,EAAI,OAAO,MAAM,IAAMA,EAAI,UAAU,GAG7C,OAAOA,EAAI,MACZ,CAGA,SAASI,GACRC,EACS,CACT,MAAMC,EAAK,IAAI,gBACf,SAAW,CAACrqB,EAAGvB,CAAC,IAAK,OAAO,QAAQ2rB,CAAM,EAClB3rB,GAAM,QAAS,IAAIuB,EAAG,OAAOvB,CAAC,CAAC,EAEvD,MAAM6rB,EAAKD,EAAG,WACd,OAAOC,EAAK,IAAIA,CAAE,GAAK,EACxB,CAIO,SAASC,IAA2C,CAC1D,OAAOV,GAA0BJ,GAAU,SAAS,IAAI,CACzD,CAMO,SAASe,IAEd,CACD,OAAOX,GACNJ,GAAU,MAAM,KAElB,CAgBO,SAASgB,IAAyC,CACxD,OAAOZ,GAAyBJ,GAAU,QAAQ,IAAI,CACvD,CAEO,SAASiB,IAA6C,CAC5D,OAAOb,GAA2BJ,GAAU,aAAa,IAAI,CAC9D,CAEO,SAASkB,GACfC,EAC6B,CAC7B,OAAOZ,GAA2BP,GAAU,aAAa,KAAMmB,CAAK,CACrE,CAEO,SAASC,GACfT,EAA0B,GACA,CAC1B,OAAOP,GACN,GAAGJ,GAAU,WAAW,IAAI,GAAGU,GAAM,CAAE,OAAQC,EAAO,OAAQ,MAAOA,EAAO,MAAO,CAAC,GAEtF,CAEO,SAASU,GAAUV,EAAoB,GAA2B,CACxE,OAAOP,GACN,GAAGJ,GAAU,KAAK,IAAI,GAAGU,GAAM,CAAE,QAASC,EAAO,QAAS,CAAC,GAE7D,CAEO,SAASW,IAA+C,CAC9D,OAAOlB,GAA0BJ,GAAU,aAAa,IAAI,CAC7D,CAEO,SAASuB,IAA2C,CAC1D,OAAOnB,GAA0BJ,GAAU,SAAS,IAAI,CACzD,CAEO,SAASwB,GACfC,EACqC,CACrC,OAAOrB,GACN,GAAGJ,GAAU,kBAAkB,IAAI,GAAGU,GAAM,CAAE,QAAAe,CAAA,CAAS,CAAC,GAE1D,CAEO,SAASC,IAAuC,CACtD,OAAOtB,GAAwBJ,GAAU,OAAO,IAAI,CACrD,CAIO,SAAS2B,IAAqC,CACpD,OAAOvB,GAAuBJ,GAAU,MAAM,IAAI,CACnD,CAEO,SAAS4B,GACfC,EACqC,CACrC,OAAOzB,GACN,GAAGJ,GAAU,kBAAkB,KAAK,QAAQ,UAAW,mBAAmB6B,CAAc,CAAC,CAAC,GAE5F,CAEO,SAASC,IAAmD,CAClE,OAAO1B,GAA+BJ,GAAU,YAAY,IAAI,CACjE,CAEO,SAAS+B,GACfF,EACAG,EACmB,CACnB,OAAOvB,GAAkBT,GAAU,eAAe,KAAM,CACvD,eAAA6B,EACA,gBAAAG,CAAA,CACA,CACF,CAEO,SAASC,GACfJ,EACAK,EACwB,CACxB,OAAOzB,GAAuBT,GAAU,KAAK,KAAM,CAClD,eAAA6B,EACA,UAAAK,CAAA,CACA,CACF,CAYO,SAASC,GACfC,EACiC,CACjC,OAAOhC,GACNJ,GAAU,cAAc,KAAK,QAC5B,WACA,mBAAmBoC,CAAO,EAC3B,CAEF,CCrOA,MAAMC,GAAcnE,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,2BAAoB,2CAAC,EAC3DC,GAAWrE,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,wBAAiB,qBAAC,EACrDE,GAAYtE,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,yBAAkB,yCAAC,EACvDG,GAAYvE,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,yBAAkB,qBAAC,EACvDI,GAAaxE,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,0BAAmB,qBAAC,EACzDK,GAAWzE,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,wBAAiB,yCAAC,EACrDM,GAAU1E,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,uBAAgB,yCAAC,EACnDO,GAAkB3E,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,+BAAwB,yCAAC,EACnEQ,GAAc5E,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,2BAAoB,yCAAC,EAC3DS,GAAY7E,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,yBAAkB,qBAAC,EACvDU,GAAW9E,GAAM,KAAK,IAAAoE,GAAA,IAAM,OAAO,wBAAiB,qBAAC,EAerDW,GAA4C,CACjD,CAAE,GAAI,WAAY,MAAO,YACzB,CAAE,GAAI,QAAS,MAAO,SACtB,CAAE,GAAI,SAAU,MAAO,UACvB,CAAE,GAAI,SAAU,MAAO,UACvB,CAAE,GAAI,UAAW,MAAO,WACxB,CAAE,GAAI,QAAS,MAAO,SACtB,CAAE,GAAI,OAAQ,MAAO,QACrB,CAAE,GAAI,eAAgB,MAAO,gBAC7B,CAAE,GAAI,WAAY,MAAO,YACzB,CAAE,GAAI,SAAU,MAAO,UACvB,CAAE,GAAI,QAAS,MAAO,QACvB,EAEA,SAAwBC,IAA0B,CACjD,KAAM,CAACC,EAAWC,CAAY,EAAIjE,YAAgB,UAAU,EACtD,CACL,KAAMkE,EACN,QAAAhE,EACA,MAAAlB,CAAA,EACGU,GACHe,eAAY,IAAMkB,GAAA,EAAiB,EAAE,EACrC,CAEC,aAAc,IACf,EAGKwC,EAAOD,GAAU,MAAQ,UACzBE,EAAUF,GAAU,OAAO,MAAQ,GAEzC,OACC/E,MAACL,GAAA,CACA,SAAAI,OAAC,OAAI,UAAU,gBACd,UAAAC,MAAC,UAAO,UAAU,mBACjB,SAAAD,OAAC,MAAG,mCAEHC,MAAC,QAAK,UAAU,OAAQ,SAAAgF,EAAK,EAC5BC,GAAWjF,MAAC,QAAK,UAAU,eAAgB,SAAAiF,CAAA,CAAQ,GACrD,EACD,QACChF,GAAA,CAAO,KAAM0E,GAAM,OAAQE,EAAW,YAAaC,EAAc,EAClE9E,MAAC,QAAK,UAAU,oBACf,SAAAD,OAACH,GAAM,SAAN,CAAe,SAAUI,MAACM,GAAA,EAAe,EACxC,UAAAuE,IAAc,YACd7E,MAAC+D,GAAA,CACA,SAAAgB,EACA,QAAAhE,EACA,MAAAlB,CAAA,GAGDgF,IAAc,SAAW7E,MAACiE,GAAA,EAAS,EACnCY,IAAc,UAAY7E,MAACkE,GAAA,EAAU,EACrCW,IAAc,UAAY7E,MAACmE,GAAA,EAAU,EACrCU,IAAc,WAAa7E,MAACoE,GAAA,EAAW,EACvCS,IAAc,SAAW7E,MAACqE,GAAA,EAAS,EACnCQ,IAAc,QAAU7E,MAACsE,GAAA,EAAQ,EACjCO,IAAc,gBAAkB7E,MAACuE,GAAA,EAAgB,EACjDM,IAAc,YAAc7E,MAACwE,GAAA,EAAY,EACzCK,IAAc,UAAY7E,MAACyE,GAAA,EAAU,EACrCI,IAAc,SAAW7E,MAAC0E,GAAA,EAAS,GACrC,EACD,GACD,EACD,CAEF,CCrFA,MAAMQ,GAAS,SAAS,eAAe,MAAM,EAC7C,GAAI,CAACA,GACJ,MAAM,IAAI,MAAM,yDAAyD,EAG1ExF,GAAWwF,EAAM,EAAE,OAClBlF,MAACmF,cAAA,CACA,SAAAnF,MAAC4E,GAAA,EAAI,EACN,CACD","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","err","reactDomModule","createRoot","ErrorBoundary","React","error","info","jsxs","jsx","TabBar","tabs","active","onTabChange","tab","LoadingSpinner","useApi","fetchFn","options","pollInterval","data","setData","useState","setError","loading","setLoading","lastFetchedAt","setLastFetchedAt","mountedRef","useRef","doFetch","useCallback","result","useEffect","timer","ENDPOINTS","ApiError","status","message","getJson","path","res","putJson","body","postJson","query","params","sp","qs","fetchSnapshot","fetchIndex","fetchServers","fetchGameState","putGameState","patch","fetchGameScores","fetchPerf","fetchAchievements","fetchSessions","fetchSessionTimeseries","minutes","fetchTopics","fetchTurns","fetchConversationTurns","conversationId","fetchTurnIntents","postTurnIntent","targetTurnIndex","postFork","turnIndex","fetchTopicMemories","topicId","OverviewTab","__vitePreload","ReposTab","EventsTab","ConfigTab","MetricsTab","CacheTab","GameTab","AchievementsTab","SessionsTab","TopicsTab","TurnsTab","TABS","App","activeTab","setActiveTab","snapshot","tier","version","rootEl","StrictMode"],"ignoreList":[0,1,2,3,4,5,6,7,8],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../src/components/ErrorBoundary.tsx","../../src/components/TabBar.tsx","../../src/components/LoadingSpinner.tsx","../../src/hooks/useApi.ts","../../../dashboard-server/api-contracts/endpoints.ts","../../src/api/client.ts","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 {\n\toverride state: ErrorBoundaryState = { hasError: false, error: null };\n\n\tstatic getDerivedStateFromError(error: Error): ErrorBoundaryState {\n\t\treturn { hasError: true, error };\n\t}\n\n\toverride componentDidCatch(error: Error, info: React.ErrorInfo): void {\n\t\t// Keep the error visible in the console for debugging; no network reporting\n\t\t// (PREVENT-PI-004 — dashboard is fully local).\n\t\tconsole.error(\"[dashboard] render error:\", error, info.componentStack);\n\t}\n\n\tprivate handleReload = (): void => {\n\t\twindow.location.reload();\n\t};\n\n\toverride render(): ReactNode {\n\t\tif (this.state.hasError) {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t

    Something went wrong

    \n\t\t\t\t\t

    {this.state.error?.message ?? \"Unknown render error\"}

    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\t\treturn this.props.children;\n\t}\n}\n","/**\n * dashboard-client/src/components/TabBar.tsx — tab navigation.\n */\n\nimport type { TabId } from \"../App\";\n\nexport interface TabBarProps {\n\ttabs: Array<{ id: TabId; label: string }>;\n\tactive: TabId;\n\tonTabChange: (id: TabId) => void;\n}\n\nexport function TabBar({\n\ttabs,\n\tactive,\n\tonTabChange,\n}: TabBarProps): React.ReactElement {\n\treturn (\n\t\t\n\t);\n}\n","/**\n * dashboard-client/src/components/LoadingSpinner.tsx — loading state.\n */\n\nexport function LoadingSpinner(): React.ReactElement {\n\treturn
    Loading…
    ;\n}\n","/**\n * dashboard-client/src/hooks/useApi.ts — Generic data fetching hook.\n *\n * Provides typed fetch with retry, stale detection, and error handling.\n * SPRINT-B1: basic fetch. SPRINT-D1: retry + stale.\n */\n\nimport { useState, useEffect, useCallback, useRef } from \"react\";\n\nexport interface UseApiResult {\n\tdata: T | null;\n\terror: Error | null;\n\tloading: boolean;\n\trefetch: () => void;\n\tlastFetchedAt: number | null;\n}\n\nexport interface UseApiOptions {\n\t/** Polling interval in ms. 0 = no polling. */\n\tpollInterval?: number;\n\t/** Max retry attempts on failure. */\n\tmaxRetries?: number;\n\t/** Base retry delay in ms. */\n\tretryBaseMs?: number;\n}\n\n// SPRINT-D1-REMAINING: integrate retryWithBackoff from utils/retry.ts.\n// SPRINT-D1-REMAINING: integrate staleness detection from utils/staleness.ts.\n// SPRINT-T1-REMAINING: add Authorization header when auth token present.\n\nexport function useApi(\n\tfetchFn: () => Promise,\n\toptions: UseApiOptions = {},\n): UseApiResult {\n\tconst { pollInterval = 0 } = options;\n\tconst [data, setData] = useState(null);\n\tconst [error, setError] = useState(null);\n\tconst [loading, setLoading] = useState(true);\n\tconst [lastFetchedAt, setLastFetchedAt] = useState(null);\n\tconst mountedRef = useRef(true);\n\n\tconst doFetch = useCallback(async () => {\n\t\tsetLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst result = await fetchFn();\n\t\t\tif (mountedRef.current) {\n\t\t\t\tsetData(result);\n\t\t\t\tsetLastFetchedAt(Date.now());\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tif (mountedRef.current) {\n\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\t\t}\n\t\t} finally {\n\t\t\tif (mountedRef.current) {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t}\n\t}, [fetchFn]);\n\n\tuseEffect(() => {\n\t\tmountedRef.current = true;\n\t\tdoFetch();\n\t\treturn () => {\n\t\t\tmountedRef.current = false;\n\t\t};\n\t}, [doFetch]);\n\n\tuseEffect(() => {\n\t\tif (pollInterval <= 0) return;\n\t\tconst timer = setInterval(doFetch, pollInterval);\n\t\treturn () => clearInterval(timer);\n\t}, [doFetch, pollInterval]);\n\n\treturn { data, error, loading, refetch: doFetch, lastFetchedAt };\n}\n","/**\n * api-contracts/endpoints.ts — Central registry of all dashboard API endpoints.\n *\n * Single source of truth for all 13 dashboard API routes. Each entry is an\n * `EndpointDef` (or `SseEndpointDef` for SSE) instance with method, path,\n * description, and typed request/response references.\n *\n * Sprint A1 — PREVENT-PI-004: zero network code (type definitions only).\n * PREVENT-011: no `any` type — all types are explicit.\n */\n\nimport type { EndpointDef } from \"./core.js\";\nimport type { SnapshotResponse } from \"./snapshot.js\";\nimport type { IndexesIndexRow, IndexesSummaryResponse } from \"./multi-repo.js\";\nimport type { GameStateResponse } from \"./game.js\";\nimport type { SseEvent } from \"./index.js\";\nimport type {\n\tTurnsResponse,\n\tConversationTurnsResponse,\n\tRewindIntentsResponse,\n\tForkRequest,\n\tForkResponse,\n\tPostIntentRequest,\n\tPruneRequest,\n\tPruneTurnsResponse,\n\tTopicMemoriesResponse,\n} from \"./turns.js\";\n\nimport type {\n\tGameScoreRow,\n\tGameScoresQuery,\n\tAchievementRow,\n\tSessionsResponse,\n\tSessionTimeseriesQuery,\n\tSessionTimeseriesResponse,\n\tGameStatePatch,\n\tSseEndpointDef,\n\tTopicsResponse,\n} from \"./game-types.js\";\n\nexport type {\n\tGameScoreRow,\n\tGameScoresQuery,\n\tAchievementRow,\n\tActiveSession,\n\tSessionsResponse,\n\tSessionDataPoint,\n\tSessionSeries,\n\tSessionTimeseriesQuery,\n\tSessionTimeseriesResponse,\n\tGameStatePatch,\n\tSseEndpointDef,\n\tTopicRow,\n\tTopicAssignmentRow,\n\tTopicsResponse,\n\tTopicDetailResponse,\n} from \"./game-types.js\";\n\n// ─── New Response Types (inline) ───────────────────────────────────────────\n\n/**\n * Response for GET /api/version. Returns the dashboard server version string\n * so the launcher can detect stale servers from older builds.\n */\nexport interface VersionResponse {\n\t/** Semver-style version string of the running dashboard server. */\n\treadonly version: string;\n}\n\n/**\n * Aggregated summary of the multi-repo index (subset of IndexesSummaryResponse).\n * Used by GET /api/summary for lightweight header tiles.\n */\nexport type IndexSummary = Pick<\n\tIndexesSummaryResponse,\n\t| \"totalRepos\"\n\t| \"totalCheckpoints\"\n\t| \"totalTokensSaved\"\n\t| \"totalCompressedOriginalBytes\"\n>;\n\n/**\n * Fallback response for GET /api/index when the multi-repo index is unavailable\n * (no index.sqlite file or read error). All fields are null/empty.\n */\nexport interface IndexFallbackResponse {\n\t/** Always null — no index data available. */\n\treadonly updatedAt: null;\n\t/** Always null — no summary available. */\n\treadonly summary: null;\n\t/** Always an empty array — no repos registered. */\n\treadonly repos: IndexesIndexRow[];\n}\n\n/**\n * Query parameters for GET /api/repos. The `active` parameter filters to repos\n * seen within the last N hours (format: \"h\", e.g. \"24h\").\n */\nexport interface ReposQuery {\n\t/** Active-window filter in format \"h\" (e.g. \"24h\"). Optional. */\n\treadonly active?: string;\n}\n\n/**\n * Response for GET /api/repos. Returns the registry list with an optional\n * active-window filter applied.\n */\nexport interface ReposResponse {\n\t/** ISO timestamp of the last index update, or null if unavailable. */\n\treadonly updatedAt: string | null;\n\t/** Array of repo index rows. */\n\treadonly repos: IndexesIndexRow[];\n\t/** Number of repos in the response (after filtering). */\n\treadonly count: number;\n}\n\n/**\n * Response for GET /api/summary. Lightweight header tiles without the full\n * repo list (keeps payload small for embed scenarios).\n */\nexport interface SummaryResponse {\n\t/** ISO timestamp of the last index update, or null if unavailable. */\n\treadonly updatedAt: string | null;\n\t/** Aggregate index summary, or null if no index exists. */\n\treadonly summary: IndexSummary | null;\n\t/** Number of repos active within the last 24 hours. */\n\treadonly activeRepos: number;\n\t/** Total number of repos in the registry. */\n\treadonly totalRepos: number;\n}\n\n// ─── Drift Report Types ─────────────────────────────────────────────────────\n\n/** Severity level for a drift signal. */\nexport type DriftSeverity = \"warn\" | \"info\";\n\n/**\n * A single drift signal for a repo.\n */\nexport interface DriftSignal {\n\t/** The kind of drift detected. */\n\treadonly kind: \"stale\" | \"compaction_lag\" | \"model_churn\";\n\t/** Severity level of the signal. */\n\treadonly severity: DriftSeverity;\n\t/** Human-readable detail describing the drift. */\n\treadonly detail: string;\n}\n\n/**\n * Drift classification for a single repo.\n */\nexport interface RepoDrift {\n\t/** Absolute path to the repo root. */\n\treadonly repoRoot: string;\n\t/** Display name of the repo. */\n\treadonly displayName: string;\n\t/** Unix timestamp (seconds) of the last dashboard activity. */\n\treadonly lastSeen: number;\n\t/** Unix timestamp (seconds) of the last compaction, or null if never. */\n\treadonly lastCompactedAt: number | null;\n\t/** Unix timestamp (seconds) of the last model capture, or null. */\n\treadonly modelCapturedAt: number | null;\n\t/** Array of drift signals detected for this repo. */\n\treadonly signals: DriftSignal[];\n\t/** Highest severity across signals; \"ok\" if none. */\n\treadonly status: \"ok\" | \"warn\";\n}\n\n/**\n * Response for GET /api/drift. Cross-repo drift report over the machine-wide\n * repo_registry, flagging stale repos, compaction lag, and model churn.\n */\nexport interface DriftReportResponse {\n\t/** Unix timestamp (seconds) when the report was generated. */\n\treadonly generatedAt: number;\n\t/** Aggregate counts by status/signal. */\n\treadonly totals: {\n\t\t/** Repos with no drift signals. */\n\t\treadonly ok: number;\n\t\t/** Repos with at least one warning signal. */\n\t\treadonly warn: number;\n\t\t/** Repos with the \"stale\" signal. */\n\t\treadonly stale: number;\n\t\t/** Repos with the \"compaction_lag\" signal. */\n\t\treadonly compactionLag: number;\n\t\t/** Repos with the \"model_churn\" signal. */\n\t\treadonly modelChurn: number;\n\t};\n\t/** Per-repo drift classifications. */\n\treadonly repos: RepoDrift[];\n}\n\n// ─── Servers Types ──────────────────────────────────────────────────────────\n\n/**\n * A single server entry in the GET /api/servers response. Represents a\n * recently-active repo with its live dashboard snapshot data.\n */\nexport interface ServerEntry {\n\t/** Absolute path to the repo root. */\n\treadonly repoRoot: string;\n\t/** Display name of the repo. */\n\treadonly displayName: string;\n\t/** Model name, or null if not set. */\n\treadonly model: string | null;\n\t/** Provider display name, or null if not set. */\n\treadonly provider: string | null;\n\t/** Unix timestamp (seconds) of the last dashboard activity. */\n\treadonly lastSeen: number;\n\t/** Unix timestamp (seconds) of the last compaction, or null. */\n\treadonly lastCompactedAt: number | null;\n\t/** Current compaction tier, or null if no live snapshot. Present when a live dashboard.json exists. */\n\treadonly tier?: string | null;\n\t/** Current context pressure percentage (0–100), or null. Present when a live snapshot has context data. */\n\treadonly contextPct?: number | null;\n\t/** Current session state string, or null. Present when a live snapshot has session data. */\n\treadonly state?: string | null;\n\t/** Cache hit counters from the live snapshot, or null. Present when a live snapshot has cacheHits. */\n\treadonly cacheHits?: {\n\t\treadonly session: number;\n\t\treadonly total: number;\n\t\treadonly sessionTokensSaved: number;\n\t\treadonly totalTokensSaved: number;\n\t} | null;\n\t/** Compaction counters from the live snapshot, or null. Present when a live snapshot has compacts. */\n\treadonly compacts?: {\n\t\treadonly session: number;\n\t\treadonly total: number;\n\t} | null;\n\t/** Time saved counters from the live snapshot, or null. Present when a live snapshot has timeSaved. */\n\treadonly timeSaved?: {\n\t\treadonly compact: {\n\t\t\treadonly sessionSec: number;\n\t\t\treadonly totalSec: number;\n\t\t};\n\t\treadonly cacheHit: {\n\t\t\treadonly sessionSec: number;\n\t\t\treadonly totalSec: number;\n\t\t};\n\t} | null;\n\t/** ISO timestamp of the live snapshot, or null. Present when a live snapshot has updatedAt. */\n\treadonly updatedAt?: string | null;\n}\n\n/**\n * Response for GET /api/servers. Lists recently-active repo servers with\n * live snapshot data.\n */\nexport interface ServersResponse {\n\t/** ISO timestamp when the response was generated. */\n\treadonly updatedAt: string;\n\t/** Array of server entries, sorted by lastSeen descending. */\n\treadonly servers: ServerEntry[];\n}\n\n// ─── Perf Types ─────────────────────────────────────────────────────────────\n\n/** Percentile statistics for a latency metric (in milliseconds). */\nexport interface PerfPercentile {\n\t/** 50th percentile (median) in milliseconds. */\n\treadonly p50: number;\n\t/** 95th percentile in milliseconds. */\n\treadonly p95: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Average statistics for a rate metric. */\nexport interface PerfAverage {\n\t/** Average value across all samples in the window. */\n\treadonly avg: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Latest-value statistics for a gauge metric. */\nexport interface PerfLatest {\n\t/** Most recent value in the window. */\n\treadonly latest: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Average + latest statistics for cache hit percentage. */\nexport interface PerfCacheHit {\n\t/** Average cache hit percentage (0–100). */\n\treadonly avg: number;\n\t/** Most recent cache hit percentage (0–100). */\n\treadonly latest: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Diagnostic counters from the live dashboard snapshot. */\nexport interface PerfDiag {\n\t/** Number of fast-gate context trim fires. */\n\treadonly ctxFastGate: number;\n\t/** Number of live trim fires. */\n\treadonly liveTrimFires: number;\n\t/** Number of live trim replays. */\n\treadonly liveTrimReplays: number;\n}\n\n/**\n * Query parameters for GET /api/perf. The `minutes` parameter controls the\n * rolling window size.\n */\nexport interface PerfQuery {\n\t/** Rolling window size in minutes (default: 30, max: 1440). Optional. */\n\treadonly minutes?: number;\n}\n\n/**\n * Response for GET /api/perf. Rolling-window aggregates over perf_samples\n * with per-kind p50/p95, latest rss/heap, cpu counters, and diagnostic data.\n */\nexport interface PerfResponse {\n\t/** ISO timestamp when the response was generated. */\n\treadonly updatedAt: string;\n\t/** Rolling window size in minutes. */\n\treadonly windowMinutes: number;\n\t/** Total number of perf samples in the window. */\n\treadonly sampleCount: number;\n\t/** Turn latency statistics in milliseconds. */\n\treadonly turn_latency_ms: PerfPercentile;\n\t/** Provider latency statistics in milliseconds. */\n\treadonly provider_latency_ms: PerfPercentile;\n\t/** Tokens-per-second statistics. */\n\treadonly tps: PerfAverage;\n\t/** Cache hit percentage statistics. */\n\treadonly cache_hit_pct: PerfCacheHit;\n\t/** Database recompute duration statistics in milliseconds. */\n\treadonly db_recompute_ms: PerfPercentile;\n\t/** Disk write duration statistics in milliseconds. */\n\treadonly disk_write_ms: PerfPercentile;\n\t/** RSS memory usage in MB (latest value). */\n\treadonly rss_mb: PerfLatest;\n\t/** Heap memory usage in MB (latest value). */\n\treadonly heap_mb: PerfLatest;\n\t/** CPU user time in milliseconds (latest value). */\n\treadonly cpu_user_ms: PerfLatest;\n\t/** CPU system time in milliseconds (latest value). */\n\treadonly cpu_sys_ms: PerfLatest;\n\t/** Diagnostic counters from the live snapshot, or null if unavailable. */\n\treadonly diag: PerfDiag | null;\n}\n\n// ─── Game Score & Achievement Types ─────────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── Sessions Memory Graph (S39) ─────────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── Game State Patch (PUT request body) ────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── SSE Endpoint Definition ────────────────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── ENDPOINTS Registry ─────────────────────────────────────────────────────\n\n/**\n * Central registry of all 13 dashboard API endpoints. Each entry is an\n * `EndpointDef` or `SseEndpointDef` instance serving as the single source of\n * truth for route paths, methods, descriptions, and typed request/response\n * contracts.\n *\n * Usage:\n * import { ENDPOINTS } from './api-contracts';\n * ENDPOINTS.snapshot.path // '/api/snapshot'\n * ENDPOINTS.snapshot.method // 'GET'\n */\nexport const ENDPOINTS = {\n\t/** GET /api/snapshot — Full session, store, compression, and context snapshot. */\n\tsnapshot: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/snapshot\",\n\t\tdescription: \"Full session, store, compression, and context snapshot.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, SnapshotResponse>,\n\n\t/** GET /api/version — Dashboard server version string. */\n\tversion: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/version\",\n\t\tdescription: \"Dashboard server version for stale-server detection.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, VersionResponse>,\n\n\t/** GET /api/index — Multi-repo aggregate index (or fallback when unavailable). */\n\tindex: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/index\",\n\t\tdescription:\n\t\t\t\"Machine-wide multi-repo registry with checkpoints, tokens, and model info.\",\n\t} as const satisfies EndpointDef<\n\t\t\"GET\",\n\t\tundefined,\n\t\tIndexesSummaryResponse | IndexFallbackResponse\n\t>,\n\n\t/** GET /api/repos — Registry list with optional active-window filter. */\n\trepos: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/repos\",\n\t\tdescription: \"Repo registry list, optionally filtered by recent activity.\",\n\t} as const satisfies EndpointDef<\"GET\", ReposQuery, ReposResponse>,\n\n\t/** GET /api/summary — Lightweight header tiles without the full repo list. */\n\tsummary: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/summary\",\n\t\tdescription:\n\t\t\t\"Aggregate summary with active/total repo counts (no repo list).\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, SummaryResponse>,\n\n\t/** GET /api/drift — Cross-repo drift report. */\n\tdrift: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/drift\",\n\t\tdescription:\n\t\t\t\"Cross-repo drift report flagging stale repos, compaction lag, and model churn.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, DriftReportResponse>,\n\n\t/** GET /api/servers — Recently-active repo servers with live snapshot data. */\n\tservers: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/servers\",\n\t\tdescription: \"Recently-active repo servers with live snapshot data.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, ServersResponse>,\n\n\t/** GET /api/events — SSE stream of dashboard events. */\n\tevents: {\n\t\ttype: \"sse\",\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/events\",\n\t\tdescription: \"Server-Sent Events stream of all dashboard events.\",\n\t\tevent: \"data\",\n\t} as const satisfies SseEndpointDef,\n\n\t/** GET /api/game-state — Current game-mode settings. */\n\tgetGameState: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/game-state\",\n\t\tdescription: \"Current game-mode configuration and active ritual state.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, GameStateResponse>,\n\n\t/** PUT /api/game-state — Apply a partial patch to game-mode settings. */\n\tputGameState: {\n\t\tmethod: \"PUT\",\n\t\tpath: \"/api/game-state\",\n\t\tdescription:\n\t\t\t\"Apply a partial patch to game-mode settings and return the updated state.\",\n\t} as const satisfies EndpointDef<\"PUT\", GameStatePatch, GameStateResponse>,\n\n\t/** GET /api/game-scores — High-score leaderboard for a metric. */\n\tgameScores: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/game-scores\",\n\t\tdescription: \"High-score leaderboard for a game metric.\",\n\t} as const satisfies EndpointDef<\"GET\", GameScoresQuery, GameScoreRow[]>,\n\n\t/** GET /api/perf — Rolling-window performance aggregates. */\n\tperf: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/perf\",\n\t\tdescription: \"Rolling-window performance aggregates over perf_samples.\",\n\t} as const satisfies EndpointDef<\"GET\", PerfQuery, PerfResponse>,\n\n\t/** GET /api/achievements — Achievement tiles with unlock state. */\n\tachievements: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/achievements\",\n\t\tdescription: \"All achievement rows with unlock state.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, AchievementRow[]>,\n\n\t/** GET /api/sessions — Active sessions with latest token usage (S39). */\n\tsessions: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/sessions\",\n\t\tdescription: \"Active pi sessions with latest token usage + heartbeat.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, SessionsResponse>,\n\n\t/** GET /api/sessions/timeseries — Stacked per-session token timeseries (S39). */\n\tsessionTimeseries: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/sessions/timeseries\",\n\t\tdescription:\n\t\t\t\"Recharts-ready per-session token timeseries for the stacked memory graph.\",\n\t} as const satisfies EndpointDef<\n\t\t\"GET\",\n\t\tSessionTimeseriesQuery,\n\t\tSessionTimeseriesResponse\n\t>,\n\n\t/** GET /api/topics — Auto-categorizing wiki topics (S51). */\n\ttopics: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/topics\",\n\t\tdescription:\n\t\t\t\"Auto-categorized wiki topics from k-means + TF-IDF over real embeddings.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, TopicsResponse>,\n\n\t/** GET /api/turns — Turn-by-turn memory tracking + recall (S52). */\n\tturns: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/turns\",\n\t\tdescription:\n\t\t\t\"Per-conversation turn list with recall + epoch provenance (turn-by-turn memory tracking).\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, TurnsResponse>,\n\n\t/** GET /api/turns/conversation/:convId — per-turn detail + recall hits. */\n\tconversationTurns: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/turns/conversation/:convId\",\n\t\tdescription:\n\t\t\t\"Per-turn metrics + injected-checkpoint recall provenance for one conversation.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, ConversationTurnsResponse>,\n\n\t/** GET /api/turns/intents — pending rewind intents (S52A). */\n\tturnIntents: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/turns/intents\",\n\t\tdescription:\n\t\t\t\"Pending rewind intents queued by the dashboard for the host to consume.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, RewindIntentsResponse>,\n\n\t/** POST /api/turns/intent — post a rewind intent. */\n\tpostTurnIntent: {\n\t\tmethod: \"POST\",\n\t\tpath: \"/api/turns/intent\",\n\t\tdescription:\n\t\t\t\"Queue a rewind-to-turn-N intent for the host to apply at before_agent_start.\",\n\t} as const satisfies EndpointDef<\"POST\", PostIntentRequest, unknown>,\n\n\t/** POST /api/fork — fork a conversation at a turn. */\n\tfork: {\n\t\tmethod: \"POST\",\n\t\tpath: \"/api/fork\",\n\t\tdescription:\n\t\t\t\"Branch a child conversation off a parent turn + return the recall set to rehydrate.\",\n\t} as const satisfies EndpointDef<\"POST\", ForkRequest, ForkResponse>,\n\n\t/** POST /api/turns/prune — admin prune (capability-gated). */\n\tpruneTurns: {\n\t\tmethod: \"POST\",\n\t\tpath: \"/api/turns/prune\",\n\t\tdescription:\n\t\t\t\"Prune old turns (admin capability — dashboard uses asAdmin()).\",\n\t} as const satisfies EndpointDef<\"POST\", PruneRequest, PruneTurnsResponse>,\n\n\t/** GET /api/topics/:topicId/memories — wiki topic drill-down (S52). */\n\ttopicMemories: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/topics/:topicId/memories\",\n\t\tdescription: \"Member memories assigned to a wiki topic (drill-down).\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, TopicMemoriesResponse>,\n} as const;\n","/**\n * dashboard-client/src/api/client.ts — typed fetch wrappers using A1 contracts.\n *\n * PREVENT-PI-004: every request targets a relative path (loopback-only —\n * the dashboard server is the same origin that serves this static bundle).\n * No absolute URLs, no external hosts.\n *\n * Uses the ENDPOINTS registry from A1 as the single source of truth for\n * paths + methods. Response types come from the api-contracts domain modules.\n */\n\nimport { ENDPOINTS } from \"@contracts\";\nimport type {\n\tSnapshotResponse,\n\tVersionResponse,\n\tIndexesSummaryResponse,\n\tIndexFallbackResponse,\n\tReposResponse,\n\tSummaryResponse,\n\tDriftReportResponse,\n\tServersResponse,\n\tGameStateResponse,\n\tGameStatePatch,\n\tGameScoreRow,\n\tGameScoresQuery,\n\tPerfResponse,\n\tPerfQuery,\n\tAchievementRow,\n\tSessionsResponse,\n\tSessionTimeseriesResponse,\n\tTopicsResponse,\n\tTurnsResponse,\n\tConversationTurnsResponse,\n\tRewindIntentsResponse,\n\tForkResponse,\n\tPruneTurnsResponse,\n\tTopicMemoriesResponse,\n} from \"@contracts\";\n\n/** Error thrown when a dashboard API response is not 2xx. */\nexport class ApiError extends Error {\n\treadonly status: number;\n\tconstructor(status: number, message: string) {\n\t\tsuper(`dashboard API ${status}: ${message}`);\n\t\tthis.name = \"ApiError\";\n\t\tthis.status = status;\n\t}\n}\n\n/** Internal: typed GET that throws ApiError on non-2xx. */\nasync function getJson(path: string): Promise {\n\t// guardrails-allow PREVENT-PI-004: relative-path fetch to same-origin dashboard server (loopback-only, static bundle served by the same Node HTTP server).\n\tconst res = await fetch(path);\n\tif (!res.ok) {\n\t\tthrow new ApiError(\n\t\t\tres.status,\n\t\t\tawait res.text().catch(() => res.statusText),\n\t\t);\n\t}\n\treturn res.json() as Promise;\n}\n\n/** Internal: typed PUT that throws ApiError on non-2xx. */\nasync function putJson(path: string, body: unknown): Promise {\n\t// guardrails-allow PREVENT-PI-004: relative-path fetch to same-origin dashboard server (loopback-only).\n\tconst res = await fetch(path, {\n\t\tmethod: \"PUT\",\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\tbody: JSON.stringify(body),\n\t});\n\tif (!res.ok) {\n\t\tthrow new ApiError(\n\t\t\tres.status,\n\t\t\tawait res.text().catch(() => res.statusText),\n\t\t);\n\t}\n\treturn res.json() as Promise;\n}\n\n/** Internal: typed POST that throws ApiError on non-2xx. */\nasync function postJson(path: string, body: unknown): Promise {\n\t// guardrails-allow PREVENT-PI-004: relative-path fetch to same-origin dashboard server (loopback-only, static bundle served by the same Node HTTP server).\n\tconst res = await fetch(path, {\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\tbody: JSON.stringify(body),\n\t});\n\tif (!res.ok) {\n\t\tthrow new ApiError(\n\t\t\tres.status,\n\t\t\tawait res.text().catch(() => res.statusText),\n\t\t);\n\t}\n\treturn res.json() as Promise;\n}\n\n/** Build a query string from a record, skipping undefined/null values. */\nfunction query(\n\tparams: Record,\n): string {\n\tconst sp = new URLSearchParams();\n\tfor (const [k, v] of Object.entries(params)) {\n\t\tif (v !== undefined && v !== null) sp.set(k, String(v));\n\t}\n\tconst qs = sp.toString();\n\treturn qs ? `?${qs}` : \"\";\n}\n\n// ─── Endpoint wrappers ──────────────────────────────────────────────────────\n\nexport function fetchSnapshot(): Promise {\n\treturn getJson(ENDPOINTS.snapshot.path);\n}\n\nexport function fetchVersion(): Promise {\n\treturn getJson(ENDPOINTS.version.path);\n}\n\nexport function fetchIndex(): Promise<\n\tIndexesSummaryResponse | IndexFallbackResponse\n> {\n\treturn getJson(\n\t\tENDPOINTS.index.path,\n\t);\n}\n\nexport function fetchRepos(activeHours?: number): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.repos.path}${query({ active: activeHours ? `${activeHours}h` : undefined })}`,\n\t);\n}\n\nexport function fetchSummary(): Promise {\n\treturn getJson(ENDPOINTS.summary.path);\n}\n\nexport function fetchDrift(): Promise {\n\treturn getJson(ENDPOINTS.drift.path);\n}\n\nexport function fetchServers(): Promise {\n\treturn getJson(ENDPOINTS.servers.path);\n}\n\nexport function fetchGameState(): Promise {\n\treturn getJson(ENDPOINTS.getGameState.path);\n}\n\nexport function putGameState(\n\tpatch: GameStatePatch,\n): Promise {\n\treturn putJson(ENDPOINTS.putGameState.path, patch);\n}\n\nexport function fetchGameScores(\n\tparams: GameScoresQuery = {},\n): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.gameScores.path}${query({ metric: params.metric, limit: params.limit })}`,\n\t);\n}\n\nexport function fetchPerf(params: PerfQuery = {}): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.perf.path}${query({ minutes: params.minutes })}`,\n\t);\n}\n\nexport function fetchAchievements(): Promise {\n\treturn getJson(ENDPOINTS.achievements.path);\n}\n\nexport function fetchSessions(): Promise {\n\treturn getJson(ENDPOINTS.sessions.path);\n}\n\nexport function fetchSessionTimeseries(\n\tminutes: number,\n): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.sessionTimeseries.path}${query({ minutes })}`,\n\t);\n}\n\nexport function fetchTopics(): Promise {\n\treturn getJson(ENDPOINTS.topics.path);\n}\n\n// ── S52: turn-by-turn memory tracking + recall + rewind ───────────────\n\nexport function fetchTurns(): Promise {\n\treturn getJson(ENDPOINTS.turns.path);\n}\n\nexport function fetchConversationTurns(\n\tconversationId: string,\n): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.conversationTurns.path.replace(\":convId\", encodeURIComponent(conversationId))}`,\n\t);\n}\n\nexport function fetchTurnIntents(): Promise {\n\treturn getJson(ENDPOINTS.turnIntents.path);\n}\n\nexport function postTurnIntent(\n\tconversationId: string,\n\ttargetTurnIndex: number,\n): Promise {\n\treturn postJson(ENDPOINTS.postTurnIntent.path, {\n\t\tconversationId,\n\t\ttargetTurnIndex,\n\t});\n}\n\nexport function postFork(\n\tconversationId: string,\n\tturnIndex: number,\n): Promise {\n\treturn postJson(ENDPOINTS.fork.path, {\n\t\tconversationId,\n\t\tturnIndex,\n\t});\n}\n\nexport function postPruneTurns(\n\tmaxTurnAgeMs: number,\n\tkeepMinPerConversation = 50,\n): Promise {\n\treturn postJson(ENDPOINTS.pruneTurns.path, {\n\t\tmaxTurnAgeMs,\n\t\tkeepMinPerConversation,\n\t});\n}\n\nexport function fetchTopicMemories(\n\ttopicId: string,\n): Promise {\n\treturn getJson(\n\t\tENDPOINTS.topicMemories.path.replace(\n\t\t\t\":topicId\",\n\t\t\tencodeURIComponent(topicId),\n\t\t),\n\t);\n}\n","/**\n * dashboard-client/src/App.tsx — Dashboard shell layout.\n *\n * SPRINT-B1: React scaffold with tab routing, header, error boundary.\n * SPRINT-C1+: tabs wired progressively with real content.\n */\n\nimport React, { useState, useCallback } from \"react\";\nimport { ErrorBoundary } from \"./components/ErrorBoundary\";\nimport { TabBar } from \"./components/TabBar\";\nimport { LoadingSpinner } from \"./components/LoadingSpinner\";\nimport { useApi } from \"./hooks/useApi\";\nimport { fetchSnapshot } from \"./api/client\";\nimport type { SnapshotResponse } from \"@contracts\";\n\n// Tab components — lazy-loaded. C1 fills Overview + Events; C2/C3 fill the rest.\nconst OverviewTab = React.lazy(() => import(\"./tabs/OverviewTab\"));\nconst ReposTab = React.lazy(() => import(\"./tabs/ReposTab\"));\nconst EventsTab = React.lazy(() => import(\"./tabs/EventsTab\"));\nconst ConfigTab = React.lazy(() => import(\"./tabs/ConfigTab\"));\nconst MetricsTab = React.lazy(() => import(\"./tabs/MetricsTab\"));\nconst CacheTab = React.lazy(() => import(\"./tabs/CacheTab\"));\nconst GameTab = React.lazy(() => import(\"./tabs/GameTab\"));\nconst AchievementsTab = React.lazy(() => import(\"./tabs/AchievementsTab\"));\nconst SessionsTab = React.lazy(() => import(\"./tabs/SessionsTab\"));\nconst TopicsTab = React.lazy(() => import(\"./tabs/TopicsTab\"));\nconst TurnsTab = React.lazy(() => import(\"./tabs/TurnsTab\"));\n\nexport type TabId =\n\t| \"overview\"\n\t| \"repos\"\n\t| \"events\"\n\t| \"config\"\n\t| \"metrics\"\n\t| \"cache\"\n\t| \"game\"\n\t| \"achievements\"\n\t| \"sessions\"\n\t| \"topics\"\n\t| \"turns\";\n\nconst TABS: Array<{ id: TabId; label: string }> = [\n\t{ id: \"overview\", label: \"Overview\" },\n\t{ id: \"repos\", label: \"Repos\" },\n\t{ id: \"events\", label: \"Events\" },\n\t{ id: \"config\", label: \"Config\" },\n\t{ id: \"metrics\", label: \"Metrics\" },\n\t{ id: \"cache\", label: \"Cache\" },\n\t{ id: \"game\", label: \"Game\" },\n\t{ id: \"achievements\", label: \"Achievements\" },\n\t{ id: \"sessions\", label: \"Sessions\" },\n\t{ id: \"topics\", label: \"Topics\" },\n\t{ id: \"turns\", label: \"Turns\" },\n];\n\nexport default function App(): React.ReactElement {\n\tconst [activeTab, setActiveTab] = useState(\"overview\");\n\tconst {\n\t\tdata: snapshot,\n\t\tloading,\n\t\terror,\n\t} = useApi(\n\t\tuseCallback(() => fetchSnapshot(), []),\n\t\t{\n\t\t\t// Poll every 5s so Overview stays live without SSE. D1 will add retry/stale.\n\t\t\tpollInterval: 5000,\n\t\t},\n\t);\n\n\tconst tier = snapshot?.tier ?? \"unknown\";\n\tconst version = snapshot?.model?.name ?? \"\";\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\tmega-compact dashboard\n\t\t\t\t\t\t{tier}\n\t\t\t\t\t\t{version && {version}}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t}>\n\t\t\t\t\t\t{activeTab === \"overview\" && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === \"repos\" && }\n\t\t\t\t\t\t{activeTab === \"events\" && }\n\t\t\t\t\t\t{activeTab === \"config\" && }\n\t\t\t\t\t\t{activeTab === \"metrics\" && }\n\t\t\t\t\t\t{activeTab === \"cache\" && }\n\t\t\t\t\t\t{activeTab === \"game\" && }\n\t\t\t\t\t\t{activeTab === \"achievements\" && }\n\t\t\t\t\t\t{activeTab === \"sessions\" && }\n\t\t\t\t\t\t{activeTab === \"topics\" && }\n\t\t\t\t\t\t{activeTab === \"turns\" && }\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/main.tsx — React entry point.\n *\n * Mounts into #root. Loaded by index.html.\n */\n\nimport { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport App from \"./App\";\nimport \"./styles/base.css\";\nimport \"./styles/overview-events.css\";\nimport \"./styles/repos-metrics.css\";\nimport \"./styles/repos-extra.css\";\nimport \"./styles/overview-extra.css\";\nimport \"./styles/config.css\";\nimport \"./styles/metrics-extra.css\";\nimport \"./styles/game-achievements.css\";\nimport \"./styles/sessions.css\";\nimport \"./styles/repostack.css\";\nimport \"./styles/session-gauges.css\";\nimport \"./styles/turns.css\";\n\nconst rootEl = document.getElementById(\"root\");\nif (!rootEl) {\n\tthrow new Error(\"dashboard-client: #root element not found in index.html\");\n}\n\ncreateRoot(rootEl).render(\n\t\n\t\t\n\t,\n);\n"],"file":"assets/index-CqLN7STl.js"} \ No newline at end of file +{"version":3,"mappings":"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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","err","reactDomModule","createRoot","ErrorBoundary","React","error","info","jsxs","jsx","TabBar","tabs","active","onTabChange","tab","LoadingSpinner","useApi","fetchFn","options","pollInterval","data","setData","useState","setError","loading","setLoading","lastFetchedAt","setLastFetchedAt","mountedRef","useRef","doFetch","useCallback","result","useEffect","timer","ENDPOINTS","ApiError","status","message","getJson","path","res","putJson","body","postJson","query","params","sp","qs","fetchSnapshot","fetchIndex","fetchServers","fetchGameState","putGameState","patch","fetchGameScores","fetchPerf","fetchProviderCacheStats","fetchAchievements","fetchSessions","fetchSessionTimeseries","minutes","fetchTopics","fetchTurns","fetchConversationTurns","conversationId","fetchTurnIntents","postTurnIntent","targetTurnIndex","postFork","turnIndex","fetchTopicMemories","topicId","OverviewTab","__vitePreload","ReposTab","EventsTab","ConfigTab","MetricsTab","CacheTab","GameTab","AchievementsTab","SessionsTab","TopicsTab","TurnsTab","TABS","App","activeTab","setActiveTab","snapshot","tier","version","rootEl","StrictMode"],"ignoreList":[0,1,2,3,4,5,6,7,8],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../src/components/ErrorBoundary.tsx","../../src/components/TabBar.tsx","../../src/components/LoadingSpinner.tsx","../../src/hooks/useApi.ts","../../../dashboard-server/api-contracts/endpoints.ts","../../src/api/client.ts","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 {\n\toverride state: ErrorBoundaryState = { hasError: false, error: null };\n\n\tstatic getDerivedStateFromError(error: Error): ErrorBoundaryState {\n\t\treturn { hasError: true, error };\n\t}\n\n\toverride componentDidCatch(error: Error, info: React.ErrorInfo): void {\n\t\t// Keep the error visible in the console for debugging; no network reporting\n\t\t// (PREVENT-PI-004 — dashboard is fully local).\n\t\tconsole.error(\"[dashboard] render error:\", error, info.componentStack);\n\t}\n\n\tprivate handleReload = (): void => {\n\t\twindow.location.reload();\n\t};\n\n\toverride render(): ReactNode {\n\t\tif (this.state.hasError) {\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t

    Something went wrong

    \n\t\t\t\t\t

    {this.state.error?.message ?? \"Unknown render error\"}

    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\t\treturn this.props.children;\n\t}\n}\n","/**\n * dashboard-client/src/components/TabBar.tsx — tab navigation.\n */\n\nimport type { TabId } from \"../App\";\n\nexport interface TabBarProps {\n\ttabs: Array<{ id: TabId; label: string }>;\n\tactive: TabId;\n\tonTabChange: (id: TabId) => void;\n}\n\nexport function TabBar({\n\ttabs,\n\tactive,\n\tonTabChange,\n}: TabBarProps): React.ReactElement {\n\treturn (\n\t\t\n\t);\n}\n","/**\n * dashboard-client/src/components/LoadingSpinner.tsx — loading state.\n */\n\nexport function LoadingSpinner(): React.ReactElement {\n\treturn
    Loading…
    ;\n}\n","/**\n * dashboard-client/src/hooks/useApi.ts — Generic data fetching hook.\n *\n * Provides typed fetch with retry, stale detection, and error handling.\n * SPRINT-B1: basic fetch. SPRINT-D1: retry + stale.\n */\n\nimport { useState, useEffect, useCallback, useRef } from \"react\";\n\nexport interface UseApiResult {\n\tdata: T | null;\n\terror: Error | null;\n\tloading: boolean;\n\trefetch: () => void;\n\tlastFetchedAt: number | null;\n}\n\nexport interface UseApiOptions {\n\t/** Polling interval in ms. 0 = no polling. */\n\tpollInterval?: number;\n\t/** Max retry attempts on failure. */\n\tmaxRetries?: number;\n\t/** Base retry delay in ms. */\n\tretryBaseMs?: number;\n}\n\n// SPRINT-D1-REMAINING: integrate retryWithBackoff from utils/retry.ts.\n// SPRINT-D1-REMAINING: integrate staleness detection from utils/staleness.ts.\n// SPRINT-T1-REMAINING: add Authorization header when auth token present.\n\nexport function useApi(\n\tfetchFn: () => Promise,\n\toptions: UseApiOptions = {},\n): UseApiResult {\n\tconst { pollInterval = 0 } = options;\n\tconst [data, setData] = useState(null);\n\tconst [error, setError] = useState(null);\n\tconst [loading, setLoading] = useState(true);\n\tconst [lastFetchedAt, setLastFetchedAt] = useState(null);\n\tconst mountedRef = useRef(true);\n\n\tconst doFetch = useCallback(async () => {\n\t\tsetLoading(true);\n\t\tsetError(null);\n\t\ttry {\n\t\t\tconst result = await fetchFn();\n\t\t\tif (mountedRef.current) {\n\t\t\t\tsetData(result);\n\t\t\t\tsetLastFetchedAt(Date.now());\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tif (mountedRef.current) {\n\t\t\t\tsetError(err instanceof Error ? err : new Error(String(err)));\n\t\t\t}\n\t\t} finally {\n\t\t\tif (mountedRef.current) {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t}\n\t}, [fetchFn]);\n\n\tuseEffect(() => {\n\t\tmountedRef.current = true;\n\t\tdoFetch();\n\t\treturn () => {\n\t\t\tmountedRef.current = false;\n\t\t};\n\t}, [doFetch]);\n\n\tuseEffect(() => {\n\t\tif (pollInterval <= 0) return;\n\t\tconst timer = setInterval(doFetch, pollInterval);\n\t\treturn () => clearInterval(timer);\n\t}, [doFetch, pollInterval]);\n\n\treturn { data, error, loading, refetch: doFetch, lastFetchedAt };\n}\n","/**\n * api-contracts/endpoints.ts — Central registry of all dashboard API endpoints.\n *\n * Single source of truth for all 13 dashboard API routes. Each entry is an\n * `EndpointDef` (or `SseEndpointDef` for SSE) instance with method, path,\n * description, and typed request/response references.\n *\n * Sprint A1 — PREVENT-PI-004: zero network code (type definitions only).\n * PREVENT-011: no `any` type — all types are explicit.\n */\n\nimport type { EndpointDef } from \"./core.js\";\nimport type { SnapshotResponse } from \"./snapshot.js\";\nimport type {\n\tProviderCacheQuery,\n\tProviderCacheStatsResponse,\n} from \"./cache.js\";\nimport type { IndexesIndexRow, IndexesSummaryResponse } from \"./multi-repo.js\";\nimport type { GameStateResponse } from \"./game.js\";\nimport type { SseEvent } from \"./index.js\";\nimport type {\n\tTurnsResponse,\n\tConversationTurnsResponse,\n\tRewindIntentsResponse,\n\tForkRequest,\n\tForkResponse,\n\tPostIntentRequest,\n\tPruneRequest,\n\tPruneTurnsResponse,\n\tTopicMemoriesResponse,\n} from \"./turns.js\";\n\nimport type {\n\tGameScoreRow,\n\tGameScoresQuery,\n\tAchievementRow,\n\tSessionsResponse,\n\tSessionTimeseriesQuery,\n\tSessionTimeseriesResponse,\n\tGameStatePatch,\n\tSseEndpointDef,\n\tTopicsResponse,\n} from \"./game-types.js\";\n\nexport type {\n\tGameScoreRow,\n\tGameScoresQuery,\n\tAchievementRow,\n\tActiveSession,\n\tSessionsResponse,\n\tSessionDataPoint,\n\tSessionSeries,\n\tSessionTimeseriesQuery,\n\tSessionTimeseriesResponse,\n\tGameStatePatch,\n\tSseEndpointDef,\n\tTopicRow,\n\tTopicAssignmentRow,\n\tTopicsResponse,\n\tTopicDetailResponse,\n} from \"./game-types.js\";\n\n// ─── New Response Types (inline) ───────────────────────────────────────────\n\n/**\n * Response for GET /api/version. Returns the dashboard server version string\n * so the launcher can detect stale servers from older builds.\n */\nexport interface VersionResponse {\n\t/** Semver-style version string of the running dashboard server. */\n\treadonly version: string;\n}\n\n/**\n * Aggregated summary of the multi-repo index (subset of IndexesSummaryResponse).\n * Used by GET /api/summary for lightweight header tiles.\n */\nexport type IndexSummary = Pick<\n\tIndexesSummaryResponse,\n\t| \"totalRepos\"\n\t| \"totalCheckpoints\"\n\t| \"totalTokensSaved\"\n\t| \"totalCompressedOriginalBytes\"\n>;\n\n/**\n * Fallback response for GET /api/index when the multi-repo index is unavailable\n * (no index.sqlite file or read error). All fields are null/empty.\n */\nexport interface IndexFallbackResponse {\n\t/** Always null — no index data available. */\n\treadonly updatedAt: null;\n\t/** Always null — no summary available. */\n\treadonly summary: null;\n\t/** Always an empty array — no repos registered. */\n\treadonly repos: IndexesIndexRow[];\n}\n\n/**\n * Query parameters for GET /api/repos. The `active` parameter filters to repos\n * seen within the last N hours (format: \"h\", e.g. \"24h\").\n */\nexport interface ReposQuery {\n\t/** Active-window filter in format \"h\" (e.g. \"24h\"). Optional. */\n\treadonly active?: string;\n}\n\n/**\n * Response for GET /api/repos. Returns the registry list with an optional\n * active-window filter applied.\n */\nexport interface ReposResponse {\n\t/** ISO timestamp of the last index update, or null if unavailable. */\n\treadonly updatedAt: string | null;\n\t/** Array of repo index rows. */\n\treadonly repos: IndexesIndexRow[];\n\t/** Number of repos in the response (after filtering). */\n\treadonly count: number;\n}\n\n/**\n * Response for GET /api/summary. Lightweight header tiles without the full\n * repo list (keeps payload small for embed scenarios).\n */\nexport interface SummaryResponse {\n\t/** ISO timestamp of the last index update, or null if unavailable. */\n\treadonly updatedAt: string | null;\n\t/** Aggregate index summary, or null if no index exists. */\n\treadonly summary: IndexSummary | null;\n\t/** Number of repos active within the last 24 hours. */\n\treadonly activeRepos: number;\n\t/** Total number of repos in the registry. */\n\treadonly totalRepos: number;\n}\n\n// ─── Drift Report Types ─────────────────────────────────────────────────────\n\n/** Severity level for a drift signal. */\nexport type DriftSeverity = \"warn\" | \"info\";\n\n/**\n * A single drift signal for a repo.\n */\nexport interface DriftSignal {\n\t/** The kind of drift detected. */\n\treadonly kind: \"stale\" | \"compaction_lag\" | \"model_churn\";\n\t/** Severity level of the signal. */\n\treadonly severity: DriftSeverity;\n\t/** Human-readable detail describing the drift. */\n\treadonly detail: string;\n}\n\n/**\n * Drift classification for a single repo.\n */\nexport interface RepoDrift {\n\t/** Absolute path to the repo root. */\n\treadonly repoRoot: string;\n\t/** Display name of the repo. */\n\treadonly displayName: string;\n\t/** Unix timestamp (seconds) of the last dashboard activity. */\n\treadonly lastSeen: number;\n\t/** Unix timestamp (seconds) of the last compaction, or null if never. */\n\treadonly lastCompactedAt: number | null;\n\t/** Unix timestamp (seconds) of the last model capture, or null. */\n\treadonly modelCapturedAt: number | null;\n\t/** Array of drift signals detected for this repo. */\n\treadonly signals: DriftSignal[];\n\t/** Highest severity across signals; \"ok\" if none. */\n\treadonly status: \"ok\" | \"warn\";\n}\n\n/**\n * Response for GET /api/drift. Cross-repo drift report over the machine-wide\n * repo_registry, flagging stale repos, compaction lag, and model churn.\n */\nexport interface DriftReportResponse {\n\t/** Unix timestamp (seconds) when the report was generated. */\n\treadonly generatedAt: number;\n\t/** Aggregate counts by status/signal. */\n\treadonly totals: {\n\t\t/** Repos with no drift signals. */\n\t\treadonly ok: number;\n\t\t/** Repos with at least one warning signal. */\n\t\treadonly warn: number;\n\t\t/** Repos with the \"stale\" signal. */\n\t\treadonly stale: number;\n\t\t/** Repos with the \"compaction_lag\" signal. */\n\t\treadonly compactionLag: number;\n\t\t/** Repos with the \"model_churn\" signal. */\n\t\treadonly modelChurn: number;\n\t};\n\t/** Per-repo drift classifications. */\n\treadonly repos: RepoDrift[];\n}\n\n// ─── Servers Types ──────────────────────────────────────────────────────────\n\n/**\n * A single server entry in the GET /api/servers response. Represents a\n * recently-active repo with its live dashboard snapshot data.\n */\nexport interface ServerEntry {\n\t/** Absolute path to the repo root. */\n\treadonly repoRoot: string;\n\t/** Display name of the repo. */\n\treadonly displayName: string;\n\t/** Model name, or null if not set. */\n\treadonly model: string | null;\n\t/** Provider display name, or null if not set. */\n\treadonly provider: string | null;\n\t/** Unix timestamp (seconds) of the last dashboard activity. */\n\treadonly lastSeen: number;\n\t/** Unix timestamp (seconds) of the last compaction, or null. */\n\treadonly lastCompactedAt: number | null;\n\t/** Current compaction tier, or null if no live snapshot. Present when a live dashboard.json exists. */\n\treadonly tier?: string | null;\n\t/** Current context pressure percentage (0–100), or null. Present when a live snapshot has context data. */\n\treadonly contextPct?: number | null;\n\t/** Current session state string, or null. Present when a live snapshot has session data. */\n\treadonly state?: string | null;\n\t/** Cache hit counters from the live snapshot, or null. Present when a live snapshot has cacheHits. */\n\treadonly cacheHits?: {\n\t\treadonly session: number;\n\t\treadonly total: number;\n\t\treadonly sessionTokensSaved: number;\n\t\treadonly totalTokensSaved: number;\n\t} | null;\n\t/** Compaction counters from the live snapshot, or null. Present when a live snapshot has compacts. */\n\treadonly compacts?: {\n\t\treadonly session: number;\n\t\treadonly total: number;\n\t} | null;\n\t/** Time saved counters from the live snapshot, or null. Present when a live snapshot has timeSaved. */\n\treadonly timeSaved?: {\n\t\treadonly compact: {\n\t\t\treadonly sessionSec: number;\n\t\t\treadonly totalSec: number;\n\t\t};\n\t\treadonly cacheHit: {\n\t\t\treadonly sessionSec: number;\n\t\t\treadonly totalSec: number;\n\t\t};\n\t} | null;\n\t/** ISO timestamp of the live snapshot, or null. Present when a live snapshot has updatedAt. */\n\treadonly updatedAt?: string | null;\n}\n\n/**\n * Response for GET /api/servers. Lists recently-active repo servers with\n * live snapshot data.\n */\nexport interface ServersResponse {\n\t/** ISO timestamp when the response was generated. */\n\treadonly updatedAt: string;\n\t/** Array of server entries, sorted by lastSeen descending. */\n\treadonly servers: ServerEntry[];\n}\n\n// ─── Perf Types ─────────────────────────────────────────────────────────────\n\n/** Percentile statistics for a latency metric (in milliseconds). */\nexport interface PerfPercentile {\n\t/** 50th percentile (median) in milliseconds. */\n\treadonly p50: number;\n\t/** 95th percentile in milliseconds. */\n\treadonly p95: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Average statistics for a rate metric. */\nexport interface PerfAverage {\n\t/** Average value across all samples in the window. */\n\treadonly avg: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Latest-value statistics for a gauge metric. */\nexport interface PerfLatest {\n\t/** Most recent value in the window. */\n\treadonly latest: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Average + latest statistics for cache hit percentage. */\nexport interface PerfCacheHit {\n\t/** Average cache hit percentage (0–100). */\n\treadonly avg: number;\n\t/** Most recent cache hit percentage (0–100). */\n\treadonly latest: number;\n\t/** Number of samples in the window. */\n\treadonly n: number;\n}\n\n/** Diagnostic counters from the live dashboard snapshot. */\nexport interface PerfDiag {\n\t/** Number of fast-gate context trim fires. */\n\treadonly ctxFastGate: number;\n\t/** Number of live trim fires. */\n\treadonly liveTrimFires: number;\n\t/** Number of live trim replays. */\n\treadonly liveTrimReplays: number;\n}\n\n/**\n * Query parameters for GET /api/perf. The `minutes` parameter controls the\n * rolling window size.\n */\nexport interface PerfQuery {\n\t/** Rolling window size in minutes (default: 30, max: 1440). Optional. */\n\treadonly minutes?: number;\n}\n\n/**\n * Response for GET /api/perf. Rolling-window aggregates over perf_samples\n * with per-kind p50/p95, latest rss/heap, cpu counters, and diagnostic data.\n */\nexport interface PerfResponse {\n\t/** ISO timestamp when the response was generated. */\n\treadonly updatedAt: string;\n\t/** Rolling window size in minutes. */\n\treadonly windowMinutes: number;\n\t/** Total number of perf samples in the window. */\n\treadonly sampleCount: number;\n\t/** Turn latency statistics in milliseconds. */\n\treadonly turn_latency_ms: PerfPercentile;\n\t/** Provider latency statistics in milliseconds. */\n\treadonly provider_latency_ms: PerfPercentile;\n\t/** Tokens-per-second statistics. */\n\treadonly tps: PerfAverage;\n\t/** Cache hit percentage statistics. */\n\treadonly cache_hit_pct: PerfCacheHit;\n\t/** Database recompute duration statistics in milliseconds. */\n\treadonly db_recompute_ms: PerfPercentile;\n\t/** Disk write duration statistics in milliseconds. */\n\treadonly disk_write_ms: PerfPercentile;\n\t/** RSS memory usage in MB (latest value). */\n\treadonly rss_mb: PerfLatest;\n\t/** Heap memory usage in MB (latest value). */\n\treadonly heap_mb: PerfLatest;\n\t/** CPU user time in milliseconds (latest value). */\n\treadonly cpu_user_ms: PerfLatest;\n\t/** CPU system time in milliseconds (latest value). */\n\treadonly cpu_sys_ms: PerfLatest;\n\t/** Diagnostic counters from the live snapshot, or null if unavailable. */\n\treadonly diag: PerfDiag | null;\n}\n\n// ─── Game Score & Achievement Types ─────────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── Sessions Memory Graph (S39) ─────────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── Game State Patch (PUT request body) ────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── SSE Endpoint Definition ────────────────────────────────────────────────\n// (moved to game-types.ts; re-exported for backwards compatibility)\n\n// ─── ENDPOINTS Registry ─────────────────────────────────────────────────────\n\n/**\n * Central registry of all 13 dashboard API endpoints. Each entry is an\n * `EndpointDef` or `SseEndpointDef` instance serving as the single source of\n * truth for route paths, methods, descriptions, and typed request/response\n * contracts.\n *\n * Usage:\n * import { ENDPOINTS } from './api-contracts';\n * ENDPOINTS.snapshot.path // '/api/snapshot'\n * ENDPOINTS.snapshot.method // 'GET'\n */\nexport const ENDPOINTS = {\n\t/** GET /api/snapshot — Full session, store, compression, and context snapshot. */\n\tsnapshot: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/snapshot\",\n\t\tdescription: \"Full session, store, compression, and context snapshot.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, SnapshotResponse>,\n\n\t/** GET /api/version — Dashboard server version string. */\n\tversion: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/version\",\n\t\tdescription: \"Dashboard server version for stale-server detection.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, VersionResponse>,\n\n\t/** GET /api/index — Multi-repo aggregate index (or fallback when unavailable). */\n\tindex: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/index\",\n\t\tdescription:\n\t\t\t\"Machine-wide multi-repo registry with checkpoints, tokens, and model info.\",\n\t} as const satisfies EndpointDef<\n\t\t\"GET\",\n\t\tundefined,\n\t\tIndexesSummaryResponse | IndexFallbackResponse\n\t>,\n\n\t/** GET /api/repos — Registry list with optional active-window filter. */\n\trepos: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/repos\",\n\t\tdescription: \"Repo registry list, optionally filtered by recent activity.\",\n\t} as const satisfies EndpointDef<\"GET\", ReposQuery, ReposResponse>,\n\n\t/** GET /api/summary — Lightweight header tiles without the full repo list. */\n\tsummary: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/summary\",\n\t\tdescription:\n\t\t\t\"Aggregate summary with active/total repo counts (no repo list).\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, SummaryResponse>,\n\n\t/** GET /api/drift — Cross-repo drift report. */\n\tdrift: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/drift\",\n\t\tdescription:\n\t\t\t\"Cross-repo drift report flagging stale repos, compaction lag, and model churn.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, DriftReportResponse>,\n\n\t/** GET /api/servers — Recently-active repo servers with live snapshot data. */\n\tservers: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/servers\",\n\t\tdescription: \"Recently-active repo servers with live snapshot data.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, ServersResponse>,\n\n\t/** GET /api/events — SSE stream of dashboard events. */\n\tevents: {\n\t\ttype: \"sse\",\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/events\",\n\t\tdescription: \"Server-Sent Events stream of all dashboard events.\",\n\t\tevent: \"data\",\n\t} as const satisfies SseEndpointDef,\n\n\t/** GET /api/game-state — Current game-mode settings. */\n\tgetGameState: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/game-state\",\n\t\tdescription: \"Current game-mode configuration and active ritual state.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, GameStateResponse>,\n\n\t/** PUT /api/game-state — Apply a partial patch to game-mode settings. */\n\tputGameState: {\n\t\tmethod: \"PUT\",\n\t\tpath: \"/api/game-state\",\n\t\tdescription:\n\t\t\t\"Apply a partial patch to game-mode settings and return the updated state.\",\n\t} as const satisfies EndpointDef<\"PUT\", GameStatePatch, GameStateResponse>,\n\n\t/** GET /api/game-scores — High-score leaderboard for a metric. */\n\tgameScores: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/game-scores\",\n\t\tdescription: \"High-score leaderboard for a game metric.\",\n\t} as const satisfies EndpointDef<\"GET\", GameScoresQuery, GameScoreRow[]>,\n\n\t/** GET /api/perf — Rolling-window performance aggregates. */\n\tperf: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/perf\",\n\t\tdescription: \"Rolling-window performance aggregates over perf_samples.\",\n\t} as const satisfies EndpointDef<\"GET\", PerfQuery, PerfResponse>,\n\n\t/** GET /api/provider-cache — Provider prompt-cache lifetime/windowed stats (S53A). */\n\tproviderCache: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/provider-cache\",\n\t\tdescription:\n\t\t\t\"Provider prompt-cache aggregates (hit %, token totals) over perf_samples; all-time unless `minutes` is given.\",\n\t} as const satisfies EndpointDef<\n\t\t\"GET\",\n\t\tProviderCacheQuery,\n\t\tProviderCacheStatsResponse\n\t>,\n\n\t/** GET /api/achievements — Achievement tiles with unlock state. */\n\tachievements: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/achievements\",\n\t\tdescription: \"All achievement rows with unlock state.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, AchievementRow[]>,\n\n\t/** GET /api/sessions — Active sessions with latest token usage (S39). */\n\tsessions: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/sessions\",\n\t\tdescription: \"Active pi sessions with latest token usage + heartbeat.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, SessionsResponse>,\n\n\t/** GET /api/sessions/timeseries — Stacked per-session token timeseries (S39). */\n\tsessionTimeseries: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/sessions/timeseries\",\n\t\tdescription:\n\t\t\t\"Recharts-ready per-session token timeseries for the stacked memory graph.\",\n\t} as const satisfies EndpointDef<\n\t\t\"GET\",\n\t\tSessionTimeseriesQuery,\n\t\tSessionTimeseriesResponse\n\t>,\n\n\t/** GET /api/topics — Auto-categorizing wiki topics (S51). */\n\ttopics: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/topics\",\n\t\tdescription:\n\t\t\t\"Auto-categorized wiki topics from k-means + TF-IDF over real embeddings.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, TopicsResponse>,\n\n\t/** GET /api/turns — Turn-by-turn memory tracking + recall (S52). */\n\tturns: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/turns\",\n\t\tdescription:\n\t\t\t\"Per-conversation turn list with recall + epoch provenance (turn-by-turn memory tracking).\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, TurnsResponse>,\n\n\t/** GET /api/turns/conversation/:convId — per-turn detail + recall hits. */\n\tconversationTurns: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/turns/conversation/:convId\",\n\t\tdescription:\n\t\t\t\"Per-turn metrics + injected-checkpoint recall provenance for one conversation.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, ConversationTurnsResponse>,\n\n\t/** GET /api/turns/intents — pending rewind intents (S52A). */\n\tturnIntents: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/turns/intents\",\n\t\tdescription:\n\t\t\t\"Pending rewind intents queued by the dashboard for the host to consume.\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, RewindIntentsResponse>,\n\n\t/** POST /api/turns/intent — post a rewind intent. */\n\tpostTurnIntent: {\n\t\tmethod: \"POST\",\n\t\tpath: \"/api/turns/intent\",\n\t\tdescription:\n\t\t\t\"Queue a rewind-to-turn-N intent for the host to apply at before_agent_start.\",\n\t} as const satisfies EndpointDef<\"POST\", PostIntentRequest, unknown>,\n\n\t/** POST /api/fork — fork a conversation at a turn. */\n\tfork: {\n\t\tmethod: \"POST\",\n\t\tpath: \"/api/fork\",\n\t\tdescription:\n\t\t\t\"Branch a child conversation off a parent turn + return the recall set to rehydrate.\",\n\t} as const satisfies EndpointDef<\"POST\", ForkRequest, ForkResponse>,\n\n\t/** POST /api/turns/prune — admin prune (capability-gated). */\n\tpruneTurns: {\n\t\tmethod: \"POST\",\n\t\tpath: \"/api/turns/prune\",\n\t\tdescription:\n\t\t\t\"Prune old turns (admin capability — dashboard uses asAdmin()).\",\n\t} as const satisfies EndpointDef<\"POST\", PruneRequest, PruneTurnsResponse>,\n\n\t/** GET /api/topics/:topicId/memories — wiki topic drill-down (S52). */\n\ttopicMemories: {\n\t\tmethod: \"GET\",\n\t\tpath: \"/api/topics/:topicId/memories\",\n\t\tdescription: \"Member memories assigned to a wiki topic (drill-down).\",\n\t} as const satisfies EndpointDef<\"GET\", undefined, TopicMemoriesResponse>,\n} as const;\n","/**\n * dashboard-client/src/api/client.ts — typed fetch wrappers using A1 contracts.\n *\n * PREVENT-PI-004: every request targets a relative path (loopback-only —\n * the dashboard server is the same origin that serves this static bundle).\n * No absolute URLs, no external hosts.\n *\n * Uses the ENDPOINTS registry from A1 as the single source of truth for\n * paths + methods. Response types come from the api-contracts domain modules.\n */\n\nimport { ENDPOINTS } from \"@contracts\";\nimport type {\n\tSnapshotResponse,\n\tVersionResponse,\n\tIndexesSummaryResponse,\n\tIndexFallbackResponse,\n\tReposResponse,\n\tSummaryResponse,\n\tDriftReportResponse,\n\tServersResponse,\n\tGameStateResponse,\n\tGameStatePatch,\n\tGameScoreRow,\n\tGameScoresQuery,\n\tPerfResponse,\n\tPerfQuery,\n\tAchievementRow,\n\tSessionsResponse,\n\tSessionTimeseriesResponse,\n\tTopicsResponse,\n\tTurnsResponse,\n\tConversationTurnsResponse,\n\tRewindIntentsResponse,\n\tForkResponse,\n\tPruneTurnsResponse,\n\tTopicMemoriesResponse,\n\tProviderCacheQuery,\n\tProviderCacheStatsResponse,\n} from \"@contracts\";\n\n/** Error thrown when a dashboard API response is not 2xx. */\nexport class ApiError extends Error {\n\treadonly status: number;\n\tconstructor(status: number, message: string) {\n\t\tsuper(`dashboard API ${status}: ${message}`);\n\t\tthis.name = \"ApiError\";\n\t\tthis.status = status;\n\t}\n}\n\n/** Internal: typed GET that throws ApiError on non-2xx. */\nasync function getJson(path: string): Promise {\n\t// guardrails-allow PREVENT-PI-004: relative-path fetch to same-origin dashboard server (loopback-only, static bundle served by the same Node HTTP server).\n\tconst res = await fetch(path);\n\tif (!res.ok) {\n\t\tthrow new ApiError(\n\t\t\tres.status,\n\t\t\tawait res.text().catch(() => res.statusText),\n\t\t);\n\t}\n\treturn res.json() as Promise;\n}\n\n/** Internal: typed PUT that throws ApiError on non-2xx. */\nasync function putJson(path: string, body: unknown): Promise {\n\t// guardrails-allow PREVENT-PI-004: relative-path fetch to same-origin dashboard server (loopback-only).\n\tconst res = await fetch(path, {\n\t\tmethod: \"PUT\",\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\tbody: JSON.stringify(body),\n\t});\n\tif (!res.ok) {\n\t\tthrow new ApiError(\n\t\t\tres.status,\n\t\t\tawait res.text().catch(() => res.statusText),\n\t\t);\n\t}\n\treturn res.json() as Promise;\n}\n\n/** Internal: typed POST that throws ApiError on non-2xx. */\nasync function postJson(path: string, body: unknown): Promise {\n\t// guardrails-allow PREVENT-PI-004: relative-path fetch to same-origin dashboard server (loopback-only, static bundle served by the same Node HTTP server).\n\tconst res = await fetch(path, {\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\tbody: JSON.stringify(body),\n\t});\n\tif (!res.ok) {\n\t\tthrow new ApiError(\n\t\t\tres.status,\n\t\t\tawait res.text().catch(() => res.statusText),\n\t\t);\n\t}\n\treturn res.json() as Promise;\n}\n\n/** Build a query string from a record, skipping undefined/null values. */\nfunction query(\n\tparams: Record,\n): string {\n\tconst sp = new URLSearchParams();\n\tfor (const [k, v] of Object.entries(params)) {\n\t\tif (v !== undefined && v !== null) sp.set(k, String(v));\n\t}\n\tconst qs = sp.toString();\n\treturn qs ? `?${qs}` : \"\";\n}\n\n// ─── Endpoint wrappers ──────────────────────────────────────────────────────\n\nexport function fetchSnapshot(): Promise {\n\treturn getJson(ENDPOINTS.snapshot.path);\n}\n\nexport function fetchVersion(): Promise {\n\treturn getJson(ENDPOINTS.version.path);\n}\n\nexport function fetchIndex(): Promise<\n\tIndexesSummaryResponse | IndexFallbackResponse\n> {\n\treturn getJson(\n\t\tENDPOINTS.index.path,\n\t);\n}\n\nexport function fetchRepos(activeHours?: number): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.repos.path}${query({ active: activeHours ? `${activeHours}h` : undefined })}`,\n\t);\n}\n\nexport function fetchSummary(): Promise {\n\treturn getJson(ENDPOINTS.summary.path);\n}\n\nexport function fetchDrift(): Promise {\n\treturn getJson(ENDPOINTS.drift.path);\n}\n\nexport function fetchServers(): Promise {\n\treturn getJson(ENDPOINTS.servers.path);\n}\n\nexport function fetchGameState(): Promise {\n\treturn getJson(ENDPOINTS.getGameState.path);\n}\n\nexport function putGameState(\n\tpatch: GameStatePatch,\n): Promise {\n\treturn putJson(ENDPOINTS.putGameState.path, patch);\n}\n\nexport function fetchGameScores(\n\tparams: GameScoresQuery = {},\n): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.gameScores.path}${query({ metric: params.metric, limit: params.limit })}`,\n\t);\n}\n\nexport function fetchPerf(params: PerfQuery = {}): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.perf.path}${query({ minutes: params.minutes })}`,\n\t);\n}\n\n/** S53A — provider prompt-cache aggregates (Cache tab). Omit minutes for all-time. */\nexport function fetchProviderCacheStats(\n\tparams: ProviderCacheQuery = {},\n): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.providerCache.path}${query({ minutes: params.minutes })}`,\n\t);\n}\n\nexport function fetchAchievements(): Promise {\n\treturn getJson(ENDPOINTS.achievements.path);\n}\n\nexport function fetchSessions(): Promise {\n\treturn getJson(ENDPOINTS.sessions.path);\n}\n\nexport function fetchSessionTimeseries(\n\tminutes: number,\n): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.sessionTimeseries.path}${query({ minutes })}`,\n\t);\n}\n\nexport function fetchTopics(): Promise {\n\treturn getJson(ENDPOINTS.topics.path);\n}\n\n// ── S52: turn-by-turn memory tracking + recall + rewind ───────────────\n\nexport function fetchTurns(): Promise {\n\treturn getJson(ENDPOINTS.turns.path);\n}\n\nexport function fetchConversationTurns(\n\tconversationId: string,\n): Promise {\n\treturn getJson(\n\t\t`${ENDPOINTS.conversationTurns.path.replace(\":convId\", encodeURIComponent(conversationId))}`,\n\t);\n}\n\nexport function fetchTurnIntents(): Promise {\n\treturn getJson(ENDPOINTS.turnIntents.path);\n}\n\nexport function postTurnIntent(\n\tconversationId: string,\n\ttargetTurnIndex: number,\n): Promise {\n\treturn postJson(ENDPOINTS.postTurnIntent.path, {\n\t\tconversationId,\n\t\ttargetTurnIndex,\n\t});\n}\n\nexport function postFork(\n\tconversationId: string,\n\tturnIndex: number,\n): Promise {\n\treturn postJson(ENDPOINTS.fork.path, {\n\t\tconversationId,\n\t\tturnIndex,\n\t});\n}\n\nexport function postPruneTurns(\n\tmaxTurnAgeMs: number,\n\tkeepMinPerConversation = 50,\n): Promise {\n\treturn postJson(ENDPOINTS.pruneTurns.path, {\n\t\tmaxTurnAgeMs,\n\t\tkeepMinPerConversation,\n\t});\n}\n\nexport function fetchTopicMemories(\n\ttopicId: string,\n): Promise {\n\treturn getJson(\n\t\tENDPOINTS.topicMemories.path.replace(\n\t\t\t\":topicId\",\n\t\t\tencodeURIComponent(topicId),\n\t\t),\n\t);\n}\n","/**\n * dashboard-client/src/App.tsx — Dashboard shell layout.\n *\n * SPRINT-B1: React scaffold with tab routing, header, error boundary.\n * SPRINT-C1+: tabs wired progressively with real content.\n */\n\nimport React, { useState, useCallback } from \"react\";\nimport { ErrorBoundary } from \"./components/ErrorBoundary\";\nimport { TabBar } from \"./components/TabBar\";\nimport { LoadingSpinner } from \"./components/LoadingSpinner\";\nimport { useApi } from \"./hooks/useApi\";\nimport { fetchSnapshot } from \"./api/client\";\nimport type { SnapshotResponse } from \"@contracts\";\n\n// Tab components — lazy-loaded. C1 fills Overview + Events; C2/C3 fill the rest.\nconst OverviewTab = React.lazy(() => import(\"./tabs/OverviewTab\"));\nconst ReposTab = React.lazy(() => import(\"./tabs/ReposTab\"));\nconst EventsTab = React.lazy(() => import(\"./tabs/EventsTab\"));\nconst ConfigTab = React.lazy(() => import(\"./tabs/ConfigTab\"));\nconst MetricsTab = React.lazy(() => import(\"./tabs/MetricsTab\"));\nconst CacheTab = React.lazy(() => import(\"./tabs/CacheTab\"));\nconst GameTab = React.lazy(() => import(\"./tabs/GameTab\"));\nconst AchievementsTab = React.lazy(() => import(\"./tabs/AchievementsTab\"));\nconst SessionsTab = React.lazy(() => import(\"./tabs/SessionsTab\"));\nconst TopicsTab = React.lazy(() => import(\"./tabs/TopicsTab\"));\nconst TurnsTab = React.lazy(() => import(\"./tabs/TurnsTab\"));\n\nexport type TabId =\n\t| \"overview\"\n\t| \"repos\"\n\t| \"events\"\n\t| \"config\"\n\t| \"metrics\"\n\t| \"cache\"\n\t| \"game\"\n\t| \"achievements\"\n\t| \"sessions\"\n\t| \"topics\"\n\t| \"turns\";\n\nconst TABS: Array<{ id: TabId; label: string }> = [\n\t{ id: \"overview\", label: \"Overview\" },\n\t{ id: \"repos\", label: \"Repos\" },\n\t{ id: \"events\", label: \"Events\" },\n\t{ id: \"config\", label: \"Config\" },\n\t{ id: \"metrics\", label: \"Metrics\" },\n\t{ id: \"cache\", label: \"Cache\" },\n\t{ id: \"game\", label: \"Game\" },\n\t{ id: \"achievements\", label: \"Achievements\" },\n\t{ id: \"sessions\", label: \"Sessions\" },\n\t{ id: \"topics\", label: \"Topics\" },\n\t{ id: \"turns\", label: \"Turns\" },\n];\n\nexport default function App(): React.ReactElement {\n\tconst [activeTab, setActiveTab] = useState(\"overview\");\n\tconst {\n\t\tdata: snapshot,\n\t\tloading,\n\t\terror,\n\t} = useApi(\n\t\tuseCallback(() => fetchSnapshot(), []),\n\t\t{\n\t\t\t// Poll every 5s so Overview stays live without SSE. D1 will add retry/stale.\n\t\t\tpollInterval: 5000,\n\t\t},\n\t);\n\n\tconst tier = snapshot?.tier ?? \"unknown\";\n\tconst version = snapshot?.model?.name ?? \"\";\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\tmega-compact dashboard\n\t\t\t\t\t\t{tier}\n\t\t\t\t\t\t{version && {version}}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t}>\n\t\t\t\t\t\t{activeTab === \"overview\" && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{activeTab === \"repos\" && }\n\t\t\t\t\t\t{activeTab === \"events\" && }\n\t\t\t\t\t\t{activeTab === \"config\" && }\n\t\t\t\t\t\t{activeTab === \"metrics\" && }\n\t\t\t\t\t\t{activeTab === \"cache\" && }\n\t\t\t\t\t\t{activeTab === \"game\" && }\n\t\t\t\t\t\t{activeTab === \"achievements\" && }\n\t\t\t\t\t\t{activeTab === \"sessions\" && }\n\t\t\t\t\t\t{activeTab === \"topics\" && }\n\t\t\t\t\t\t{activeTab === \"turns\" && }\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n}\n","/**\n * dashboard-client/src/main.tsx — React entry point.\n *\n * Mounts into #root. Loaded by index.html.\n */\n\nimport { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport App from \"./App\";\nimport \"./styles/base.css\";\nimport \"./styles/overview-events.css\";\nimport \"./styles/repos-metrics.css\";\nimport \"./styles/repos-extra.css\";\nimport \"./styles/overview-extra.css\";\nimport \"./styles/config.css\";\nimport \"./styles/metrics-extra.css\";\nimport \"./styles/game-achievements.css\";\nimport \"./styles/sessions.css\";\nimport \"./styles/repostack.css\";\nimport \"./styles/session-gauges.css\";\nimport \"./styles/turns.css\";\n\nconst rootEl = document.getElementById(\"root\");\nif (!rootEl) {\n\tthrow new Error(\"dashboard-client: #root element not found in index.html\");\n}\n\ncreateRoot(rootEl).render(\n\t\n\t\t\n\t,\n);\n"],"file":"assets/index-CqpO7WrQ.js"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/assets/useSSE-CXrQSbVY.js b/extensions/dashboard-client/dist/assets/useSSE-BfmZMOWC.js similarity index 86% rename from extensions/dashboard-client/dist/assets/useSSE-CXrQSbVY.js rename to extensions/dashboard-client/dist/assets/useSSE-BfmZMOWC.js index bce49c9..f718be3 100644 --- a/extensions/dashboard-client/dist/assets/useSSE-CXrQSbVY.js +++ b/extensions/dashboard-client/dist/assets/useSSE-BfmZMOWC.js @@ -1,2 +1,2 @@ -import{r as e}from"./index-CqLN7STl.js";function R(i={}){const{maxEvents:c=500,maxReconnects:l=5}=i,[f,v]=e.useState([]),[E,n]=e.useState("connecting"),[S,p]=e.useState(0),[m,d]=e.useState(null),o=e.useRef(0),s=e.useRef(null),r=e.useCallback(()=>{s.current&&s.current.close(),n("connecting");const t=new EventSource("/api/events");s.current=t,t.onopen=()=>{n("connected"),o.current=0},t.onmessage=g=>{try{const x=JSON.parse(g.data);v(u=>{const a=[...u,x];return a.length>c?a.slice(-c):a}),p(u=>u+1),d(Date.now())}catch{}},t.onerror=()=>{t.close(),o.current(r(),()=>{s.current?.close()}),[r]),{events:f,status:E,eventCount:S,lastEventAt:m}}export{R as u}; -//# sourceMappingURL=useSSE-CXrQSbVY.js.map +import{r as e}from"./index-CqpO7WrQ.js";function R(i={}){const{maxEvents:c=500,maxReconnects:l=5}=i,[f,v]=e.useState([]),[E,n]=e.useState("connecting"),[S,p]=e.useState(0),[m,d]=e.useState(null),o=e.useRef(0),s=e.useRef(null),r=e.useCallback(()=>{s.current&&s.current.close(),n("connecting");const t=new EventSource("/api/events");s.current=t,t.onopen=()=>{n("connected"),o.current=0},t.onmessage=g=>{try{const x=JSON.parse(g.data);v(u=>{const a=[...u,x];return a.length>c?a.slice(-c):a}),p(u=>u+1),d(Date.now())}catch{}},t.onerror=()=>{t.close(),o.current(r(),()=>{s.current?.close()}),[r]),{events:f,status:E,eventCount:S,lastEventAt:m}}export{R as u}; +//# sourceMappingURL=useSSE-BfmZMOWC.js.map diff --git a/extensions/dashboard-client/dist/assets/useSSE-CXrQSbVY.js.map b/extensions/dashboard-client/dist/assets/useSSE-BfmZMOWC.js.map similarity index 98% rename from extensions/dashboard-client/dist/assets/useSSE-CXrQSbVY.js.map rename to extensions/dashboard-client/dist/assets/useSSE-BfmZMOWC.js.map index 84f47fa..293fe19 100644 --- a/extensions/dashboard-client/dist/assets/useSSE-CXrQSbVY.js.map +++ b/extensions/dashboard-client/dist/assets/useSSE-BfmZMOWC.js.map @@ -1 +1 @@ -{"version":3,"file":"useSSE-CXrQSbVY.js","sources":["../../src/hooks/useSSE.ts"],"sourcesContent":["/**\n * dashboard-client/src/hooks/useSSE.ts — Server-Sent Events hook.\n *\n * Connects to /api/events, provides real-time event stream.\n * SPRINT-B1: basic connection. SPRINT-D1: reconnect with backoff.\n */\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport type { SseEvent } from '../../../dashboard-server/api-contracts';\n\nexport type SseStatus = 'connecting' | 'connected' | 'disconnected' | 'error';\n\nexport interface UseSSEResult {\n events: SseEvent[];\n status: SseStatus;\n eventCount: number;\n lastEventAt: number | null;\n}\n\nexport interface UseSSEOptions {\n /** Max events to keep in memory (ring buffer). */\n maxEvents?: number;\n /** Max reconnect attempts before giving up. */\n maxReconnects?: number;\n}\n\n// SPRINT-D1-REMAINING: exponential backoff (1s → 2s → 4s → max 30s).\n// SPRINT-D1-REMAINING: after 5 failures, set status='disconnected'.\n\nexport function useSSE(options: UseSSEOptions = {}): UseSSEResult {\n const { maxEvents = 500, maxReconnects = 5 } = options;\n const [events, setEvents] = useState([]);\n const [status, setStatus] = useState('connecting');\n const [eventCount, setEventCount] = useState(0);\n const [lastEventAt, setLastEventAt] = useState(null);\n const reconnectCount = useRef(0);\n const sourceRef = useRef(null);\n\n const connect = useCallback(() => {\n if (sourceRef.current) {\n sourceRef.current.close();\n }\n setStatus('connecting');\n const source = new EventSource('/api/events');\n sourceRef.current = source;\n\n source.onopen = () => {\n setStatus('connected');\n reconnectCount.current = 0;\n };\n\n source.onmessage = (event) => {\n try {\n const parsed = JSON.parse(event.data) as SseEvent;\n setEvents(prev => {\n const next = [...prev, parsed];\n return next.length > maxEvents ? next.slice(-maxEvents) : next;\n });\n setEventCount(c => c + 1);\n setLastEventAt(Date.now());\n } catch {\n // non-fatal: skip malformed events\n }\n };\n\n source.onerror = () => {\n source.close();\n if (reconnectCount.current < maxReconnects) {\n reconnectCount.current += 1;\n setStatus('connecting');\n // SPRINT-D1: use exponential backoff instead of fixed delay\n setTimeout(connect, 1000);\n } else {\n setStatus('disconnected');\n }\n };\n }, [maxEvents, maxReconnects]);\n\n useEffect(() => {\n connect();\n return () => {\n sourceRef.current?.close();\n };\n }, [connect]);\n\n return { events, status, eventCount, lastEventAt };\n}\n"],"names":["useSSE","options","maxEvents","maxReconnects","events","setEvents","useState","status","setStatus","eventCount","setEventCount","lastEventAt","setLastEventAt","reconnectCount","useRef","sourceRef","connect","useCallback","source","event","parsed","prev","next","c","useEffect"],"mappings":"wCA6BO,SAASA,EAAOC,EAAyB,GAAkB,CAChE,KAAM,CAAE,UAAAC,EAAY,IAAK,cAAAC,EAAgB,GAAMF,EACzC,CAACG,EAAQC,CAAS,EAAIC,EAAAA,SAAqB,CAAA,CAAE,EAC7C,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAAoB,YAAY,EACtD,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAS,CAAC,EACxC,CAACK,EAAaC,CAAc,EAAIN,EAAAA,SAAwB,IAAI,EAC5DO,EAAiBC,EAAAA,OAAO,CAAC,EACzBC,EAAYD,EAAAA,OAA2B,IAAI,EAE3CE,EAAUC,EAAAA,YAAY,IAAM,CAC5BF,EAAU,SACZA,EAAU,QAAQ,MAAA,EAEpBP,EAAU,YAAY,EACtB,MAAMU,EAAS,IAAI,YAAY,aAAa,EAC5CH,EAAU,QAAUG,EAEpBA,EAAO,OAAS,IAAM,CACpBV,EAAU,WAAW,EACrBK,EAAe,QAAU,CAC3B,EAEAK,EAAO,UAAaC,GAAU,CAC5B,GAAI,CACF,MAAMC,EAAS,KAAK,MAAMD,EAAM,IAAI,EACpCd,EAAUgB,GAAQ,CAChB,MAAMC,EAAO,CAAC,GAAGD,EAAMD,CAAM,EAC7B,OAAOE,EAAK,OAASpB,EAAYoB,EAAK,MAAM,CAACpB,CAAS,EAAIoB,CAC5D,CAAC,EACDZ,EAAca,GAAKA,EAAI,CAAC,EACxBX,EAAe,KAAK,KAAK,CAC3B,MAAQ,CAER,CACF,EAEAM,EAAO,QAAU,IAAM,CACrBA,EAAO,MAAA,EACHL,EAAe,QAAUV,GAC3BU,EAAe,SAAW,EAC1BL,EAAU,YAAY,EAEtB,WAAWQ,EAAS,GAAI,GAExBR,EAAU,cAAc,CAE5B,CACF,EAAG,CAACN,EAAWC,CAAa,CAAC,EAE7BqB,OAAAA,EAAAA,UAAU,KACRR,EAAA,EACO,IAAM,CACXD,EAAU,SAAS,MAAA,CACrB,GACC,CAACC,CAAO,CAAC,EAEL,CAAE,OAAAZ,EAAQ,OAAAG,EAAQ,WAAAE,EAAY,YAAAE,CAAA,CACvC"} \ No newline at end of file +{"version":3,"file":"useSSE-BfmZMOWC.js","sources":["../../src/hooks/useSSE.ts"],"sourcesContent":["/**\n * dashboard-client/src/hooks/useSSE.ts — Server-Sent Events hook.\n *\n * Connects to /api/events, provides real-time event stream.\n * SPRINT-B1: basic connection. SPRINT-D1: reconnect with backoff.\n */\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport type { SseEvent } from '../../../dashboard-server/api-contracts';\n\nexport type SseStatus = 'connecting' | 'connected' | 'disconnected' | 'error';\n\nexport interface UseSSEResult {\n events: SseEvent[];\n status: SseStatus;\n eventCount: number;\n lastEventAt: number | null;\n}\n\nexport interface UseSSEOptions {\n /** Max events to keep in memory (ring buffer). */\n maxEvents?: number;\n /** Max reconnect attempts before giving up. */\n maxReconnects?: number;\n}\n\n// SPRINT-D1-REMAINING: exponential backoff (1s → 2s → 4s → max 30s).\n// SPRINT-D1-REMAINING: after 5 failures, set status='disconnected'.\n\nexport function useSSE(options: UseSSEOptions = {}): UseSSEResult {\n const { maxEvents = 500, maxReconnects = 5 } = options;\n const [events, setEvents] = useState([]);\n const [status, setStatus] = useState('connecting');\n const [eventCount, setEventCount] = useState(0);\n const [lastEventAt, setLastEventAt] = useState(null);\n const reconnectCount = useRef(0);\n const sourceRef = useRef(null);\n\n const connect = useCallback(() => {\n if (sourceRef.current) {\n sourceRef.current.close();\n }\n setStatus('connecting');\n const source = new EventSource('/api/events');\n sourceRef.current = source;\n\n source.onopen = () => {\n setStatus('connected');\n reconnectCount.current = 0;\n };\n\n source.onmessage = (event) => {\n try {\n const parsed = JSON.parse(event.data) as SseEvent;\n setEvents(prev => {\n const next = [...prev, parsed];\n return next.length > maxEvents ? next.slice(-maxEvents) : next;\n });\n setEventCount(c => c + 1);\n setLastEventAt(Date.now());\n } catch {\n // non-fatal: skip malformed events\n }\n };\n\n source.onerror = () => {\n source.close();\n if (reconnectCount.current < maxReconnects) {\n reconnectCount.current += 1;\n setStatus('connecting');\n // SPRINT-D1: use exponential backoff instead of fixed delay\n setTimeout(connect, 1000);\n } else {\n setStatus('disconnected');\n }\n };\n }, [maxEvents, maxReconnects]);\n\n useEffect(() => {\n connect();\n return () => {\n sourceRef.current?.close();\n };\n }, [connect]);\n\n return { events, status, eventCount, lastEventAt };\n}\n"],"names":["useSSE","options","maxEvents","maxReconnects","events","setEvents","useState","status","setStatus","eventCount","setEventCount","lastEventAt","setLastEventAt","reconnectCount","useRef","sourceRef","connect","useCallback","source","event","parsed","prev","next","c","useEffect"],"mappings":"wCA6BO,SAASA,EAAOC,EAAyB,GAAkB,CAChE,KAAM,CAAE,UAAAC,EAAY,IAAK,cAAAC,EAAgB,GAAMF,EACzC,CAACG,EAAQC,CAAS,EAAIC,EAAAA,SAAqB,CAAA,CAAE,EAC7C,CAACC,EAAQC,CAAS,EAAIF,EAAAA,SAAoB,YAAY,EACtD,CAACG,EAAYC,CAAa,EAAIJ,EAAAA,SAAS,CAAC,EACxC,CAACK,EAAaC,CAAc,EAAIN,EAAAA,SAAwB,IAAI,EAC5DO,EAAiBC,EAAAA,OAAO,CAAC,EACzBC,EAAYD,EAAAA,OAA2B,IAAI,EAE3CE,EAAUC,EAAAA,YAAY,IAAM,CAC5BF,EAAU,SACZA,EAAU,QAAQ,MAAA,EAEpBP,EAAU,YAAY,EACtB,MAAMU,EAAS,IAAI,YAAY,aAAa,EAC5CH,EAAU,QAAUG,EAEpBA,EAAO,OAAS,IAAM,CACpBV,EAAU,WAAW,EACrBK,EAAe,QAAU,CAC3B,EAEAK,EAAO,UAAaC,GAAU,CAC5B,GAAI,CACF,MAAMC,EAAS,KAAK,MAAMD,EAAM,IAAI,EACpCd,EAAUgB,GAAQ,CAChB,MAAMC,EAAO,CAAC,GAAGD,EAAMD,CAAM,EAC7B,OAAOE,EAAK,OAASpB,EAAYoB,EAAK,MAAM,CAACpB,CAAS,EAAIoB,CAC5D,CAAC,EACDZ,EAAca,GAAKA,EAAI,CAAC,EACxBX,EAAe,KAAK,KAAK,CAC3B,MAAQ,CAER,CACF,EAEAM,EAAO,QAAU,IAAM,CACrBA,EAAO,MAAA,EACHL,EAAe,QAAUV,GAC3BU,EAAe,SAAW,EAC1BL,EAAU,YAAY,EAEtB,WAAWQ,EAAS,GAAI,GAExBR,EAAU,cAAc,CAE5B,CACF,EAAG,CAACN,EAAWC,CAAa,CAAC,EAE7BqB,OAAAA,EAAAA,UAAU,KACRR,EAAA,EACO,IAAM,CACXD,EAAU,SAAS,MAAA,CACrB,GACC,CAACC,CAAO,CAAC,EAEL,CAAE,OAAAZ,EAAQ,OAAAG,EAAQ,WAAAE,EAAY,YAAAE,CAAA,CACvC"} \ No newline at end of file diff --git a/extensions/dashboard-client/dist/index.html b/extensions/dashboard-client/dist/index.html index 6820d17..bd1b8ab 100644 --- a/extensions/dashboard-client/dist/index.html +++ b/extensions/dashboard-client/dist/index.html @@ -4,7 +4,7 @@ mega-compact dashboard - + diff --git a/extensions/dashboard-client/src/api/client.ts b/extensions/dashboard-client/src/api/client.ts index bc174d7..18b60ab 100644 --- a/extensions/dashboard-client/src/api/client.ts +++ b/extensions/dashboard-client/src/api/client.ts @@ -35,6 +35,9 @@ import type { ForkResponse, PruneTurnsResponse, TopicMemoriesResponse, + ProviderCacheQuery, + ProviderCacheStatsResponse, + MemoryStatusResponse, } from "@contracts"; /** Error thrown when a dashboard API response is not 2xx. */ @@ -166,6 +169,20 @@ export function fetchPerf(params: PerfQuery = {}): Promise { ); } +/** S53A — provider prompt-cache aggregates (Cache tab). Omit minutes for all-time. */ +export function fetchProviderCacheStats( + params: ProviderCacheQuery = {}, +): Promise { + return getJson( + `${ENDPOINTS.providerCache.path}${query({ minutes: params.minutes })}`, + ); +} + +/** S53B — durable-memory effectiveness aggregates. */ +export function fetchMemoryStatus(): Promise { + return getJson(ENDPOINTS.memoryStatus.path); +} + export function fetchAchievements(): Promise { return getJson(ENDPOINTS.achievements.path); } diff --git a/extensions/dashboard-client/src/components/MemoryEffectivenessCard.tsx b/extensions/dashboard-client/src/components/MemoryEffectivenessCard.tsx new file mode 100644 index 0000000..8effde9 --- /dev/null +++ b/extensions/dashboard-client/src/components/MemoryEffectivenessCard.tsx @@ -0,0 +1,110 @@ +/** + * dashboard-client/src/components/MemoryEffectivenessCard.tsx — Memory + * Effectiveness card (S53B). + * + * First dashboard surface for the durable-memory RAG: how many memories are + * stored, how many recall actually served in the last 30 days (from the + * memory-source turn_recall provenance recorded from S53B onward), average + * recall score, and the top-stable memories (the candidates that survive + * prompt-cache striping in S54/S55). + */ + +import type React from "react"; +import type { MemoryStatusResponse } from "@contracts"; + +export interface MemoryEffectivenessCardProps { + status: MemoryStatusResponse; +} + +function StatRow({ + label, + value, + title, +}: { + label: string; + value: string; + title?: string; +}): React.ReactElement { + return ( +
    + + {label} + + {value} +
    + ); +} + +export function MemoryEffectivenessCard( + props: MemoryEffectivenessCardProps, +): React.ReactElement { + const { status: s } = props; + const empty = s.totals.memories === 0; + return ( +
    +

    🧠 Memory Effectiveness

    + {empty ? ( +
    + + No durable memories stored yet. Memories accumulate as turns are + reviewed (auto-review cadence is pressure-scaled, S24). + +
    + ) : ( + <> + + + + + + + {s.topStable.length > 0 && ( +
    + {s.topStable.slice(0, 5).map((m) => ( +
    + + #{m.id} {m.kind} + {m.category ? ` · ${m.category}` : ""} + + + {(m.stability * 100).toFixed(0)}% stable · {m.events30d}× + +
    + ))} +
    + )} + + )} +
    + ); +} diff --git a/extensions/dashboard-client/src/components/ProviderCacheCard.tsx b/extensions/dashboard-client/src/components/ProviderCacheCard.tsx new file mode 100644 index 0000000..509b24e --- /dev/null +++ b/extensions/dashboard-client/src/components/ProviderCacheCard.tsx @@ -0,0 +1,143 @@ +/** + * dashboard-client/src/components/ProviderCacheCard.tsx — Provider Prompt + * Cache card (S53A/S53C). + * + * The data the Cache tab was missing: the LLM provider's prompt-cache stats + * (hit %, tokens read/written through the cache, fresh input), aggregated + * from perf_samples via GET /api/provider-cache. Distinct from the + * CacheHitsCard, which shows mega-compact's internal dedup cache. + * + * The $ estimate mirrors src/pricing.ts (Anthropic-style multipliers: + * cache read = 10% of input rate, cache write = 125%) using the live model's + * input rate from the snapshot. Keep the two implementations in sync. + */ + +import type React from "react"; +import type { ProviderCacheStatsResponse } from "@contracts"; + +export interface ProviderCacheCardProps { + /** Aggregate stats payload from /api/provider-cache. */ + stats: ProviderCacheStatsResponse; + /** + * Active model's full input rate in USD/token (snapshot.model.inputRate), + * used for the savings estimate. Null/undefined → "$ saved" shows "—". + */ + inputRatePerToken?: number | null; +} + +// Mirror of src/pricing.ts (dashboard-client cannot import outside its vite +// root). PROVIDER_CACHE_READ_MULT = 0.1, PROVIDER_CACHE_WRITE_MULT = 1.25. +function estimateSavedUsd( + stats: ProviderCacheStatsResponse, + inputRatePerToken: number | null | undefined, +): number | null { + if (inputRatePerToken == null) return null; + if (!Number.isFinite(inputRatePerToken) || inputRatePerToken <= 0) + return null; + const rate = inputRatePerToken; + const freshInput = Math.max(stats.totalInput - stats.totalCacheRead, 0); + const withoutCache = stats.totalInput * rate; + const withCache = + freshInput * rate + + stats.totalCacheRead * rate * 0.1 + + stats.totalCacheWrite * rate * 1.25; + return Math.max(withoutCache - withCache, 0); +} + +function fmtTokens(n: number): string { + if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(2)}M`; + if (n >= 1_000) return `${(n / 1_000).toFixed(1)}K`; + return `${Math.round(n)}`; +} + +function StatRow({ + label, + value, + title, +}: { + label: string; + value: string; + title?: string; +}): React.ReactElement { + return ( +
    + + {label} + + {value} +
    + ); +} + +export function ProviderCacheCard( + props: ProviderCacheCardProps, +): React.ReactElement { + const { stats } = props; + const savedUsd = estimateSavedUsd(stats, props.inputRatePerToken); + const windowLabel = + stats.windowMinutes != null + ? `last ${stats.windowMinutes} min` + : "all-time"; + const empty = stats.sampleCount === 0; + + return ( +
    +

    ⚡ Provider Prompt Cache

    + {empty ? ( +
    + + No provider cache samples yet ({windowLabel}). Samples appear after + turns with cache-enabled models. + +
    + ) : ( + <> + + + + + + + + {stats.prefixBreaks.length > 0 && ( + <> +
    + Prefix breaks ({windowLabel}) +
    + {stats.prefixBreaks.map((b) => ( +
    + {b.cause} + {b.count} +
    + ))} + + )} + + )} +
    + ); +} diff --git a/extensions/dashboard-client/src/tabs/CacheTab.tsx b/extensions/dashboard-client/src/tabs/CacheTab.tsx index 1bdadd6..4254bb0 100644 --- a/extensions/dashboard-client/src/tabs/CacheTab.tsx +++ b/extensions/dashboard-client/src/tabs/CacheTab.tsx @@ -1,16 +1,31 @@ /** - * dashboard-client/src/tabs/CacheTab.tsx — Cache tab (NEW). + * dashboard-client/src/tabs/CacheTab.tsx — Cache tab. * - * Renders CacheHitsCard + TimeSavedCard from /api/snapshot - * via the useApi hook with 5s polling. + * S53A: renders the Provider Prompt Cache card (provider hit %, cache + * read/write token totals, $ estimate) from /api/provider-cache alongside the + * original mega-compact dedup cards from /api/snapshot. Previously this tab + * rendered ONLY the dedup stats — which read zeros before any compaction — + * leaving the tab effectively empty (see docs/BRANCH_GAP_ANALYSIS.md §4). + * + * Both fetches poll on a 5s interval via the useApi hook. */ import type React from "react"; import { useCallback } from "react"; -import type { SnapshotResponse } from "@contracts"; +import type { + SnapshotResponse, + ProviderCacheStatsResponse, + MemoryStatusResponse, +} from "@contracts"; import { useApi } from "../hooks/useApi"; -import { fetchSnapshot } from "../api/client"; +import { + fetchSnapshot, + fetchProviderCacheStats, + fetchMemoryStatus, +} from "../api/client"; import { CacheHitsCard } from "../components/CacheHitsCard"; +import { ProviderCacheCard } from "../components/ProviderCacheCard"; +import { MemoryEffectivenessCard } from "../components/MemoryEffectivenessCard"; import { TimeSavedCard } from "../components/TimeSavedCard"; export default function CacheTab(): React.ReactElement { @@ -18,6 +33,16 @@ export default function CacheTab(): React.ReactElement { useCallback(() => fetchSnapshot(), []), { pollInterval: 5000 }, ); + // Provider cache + memory effectiveness load independently: keep the dedup + // cards working even if these newer endpoints fail on an older server build. + const { data: providerCache } = useApi( + useCallback(() => fetchProviderCacheStats(), []), + { pollInterval: 5000 }, + ); + const { data: memoryStatus } = useApi( + useCallback(() => fetchMemoryStatus(), []), + { pollInterval: 5000 }, + ); if (loading && !snapshot) return
    Loading snapshot…
    ; @@ -30,6 +55,13 @@ export default function CacheTab(): React.ReactElement { return (
    + {providerCache && ( + + )} + {memoryStatus && } { ); }); }); + +describe("GET /api/provider-cache (S53A)", () => { + test("sample payload validates field presence and types", () => { + const raw = JSON.stringify({ + updatedAt: "2026-07-29T00:00:00Z", + windowMinutes: null, + sampleCount: 43, + avgHitPct: 55.95, + latestHitPct: 60.34, + totalInput: 559217, + totalCacheRead: 850886, + totalCacheWrite: 0, + oldestTs: 1785368041484, + newestTs: 1785369041484, + }); + const obj: Record = JSON.parse(raw); + + assertField(obj, "updatedAt", ["string"]); + assertField(obj, "windowMinutes", ["number", "null"]); + assertField(obj, "sampleCount", ["number"]); + assertField(obj, "avgHitPct", ["number"]); + assertField(obj, "latestHitPct", ["number"]); + assertField(obj, "totalInput", ["number"]); + assertField(obj, "totalCacheRead", ["number"]); + assertField(obj, "totalCacheWrite", ["number"]); + assertField(obj, "oldestTs", ["number", "null"]); + assertField(obj, "newestTs", ["number", "null"]); + }); + + test("empty window payload validates (null ts bounds, zeroed stats)", () => { + const raw = JSON.stringify({ + updatedAt: "2026-07-29T00:00:00Z", + windowMinutes: 30, + sampleCount: 0, + avgHitPct: 0, + latestHitPct: 0, + totalInput: 0, + totalCacheRead: 0, + totalCacheWrite: 0, + oldestTs: null, + newestTs: null, + }); + const obj: Record = JSON.parse(raw); + + assertField(obj, "windowMinutes", ["number"]); + assertField(obj, "sampleCount", ["number"]); + assertField(obj, "oldestTs", ["null"]); + assertField(obj, "newestTs", ["null"]); + }); + + test("ENDPOINTS.providerCache entry matches the served path", () => { + assert.equal(ENDPOINTS.providerCache.method, "GET"); + assert.equal(ENDPOINTS.providerCache.path, "/api/provider-cache"); + }); +}); + +describe("GET /api/memory-status (S53B)", () => { + test("sample payload validates field presence and nesting", () => { + const raw = JSON.stringify({ + updatedAt: "2026-07-29T00:00:00Z", + scope: null, + totals: { memories: 12, neverReferenced: 3, stable: 4 }, + recall: { windowDays: 30, events30d: 17, distinctMemories30d: 5, avgScore: 0.62 }, + topStable: [ + { + id: 7, + kind: "decision", + category: null, + stability: 0.81, + events30d: 6, + avgScore: 0.55, + lastReferencedAt: 1785369041484, + }, + ], + stabilityEnabled: true, + }); + const obj: Record = JSON.parse(raw); + + assertField(obj, "updatedAt", ["string"]); + assertField(obj, "scope", ["string", "null"]); + assertField(obj, "totals", ["object"]); + assertField(obj, "recall", ["object"]); + assertField(obj, "topStable", ["array"]); + assertField(obj, "stabilityEnabled", ["boolean"]); + + const totals = assertObject(obj, "totals")!; + assertField(totals, "memories", ["number"]); + assertField(totals, "neverReferenced", ["number"]); + assertField(totals, "stable", ["number", "null"]); + + const recall = assertObject(obj, "recall")!; + assertField(recall, "windowDays", ["number"]); + assertField(recall, "events30d", ["number"]); + assertField(recall, "distinctMemories30d", ["number"]); + assertField(recall, "avgScore", ["number", "null"]); + + const top = (obj.topStable as Array>)[0]; + assertField(top, "id", ["number"]); + assertField(top, "stability", ["number"]); + assertField(top, "events30d", ["number"]); + }); + + test("flag-off shape validates (null stable, empty topStable)", () => { + const raw = JSON.stringify({ + updatedAt: "2026-07-29T00:00:00Z", + scope: null, + totals: { memories: 0, neverReferenced: 0, stable: null }, + recall: { windowDays: 30, events30d: 0, distinctMemories30d: 0, avgScore: null }, + topStable: [], + stabilityEnabled: false, + }); + const obj: Record = JSON.parse(raw); + const totals = assertObject(obj, "totals")!; + assertField(totals, "stable", ["null"]); + assertField(obj, "stabilityEnabled", ["boolean"]); + }); + + test("ENDPOINTS.memoryStatus entry matches the served path", () => { + assert.equal(ENDPOINTS.memoryStatus.method, "GET"); + assert.equal(ENDPOINTS.memoryStatus.path, "/api/memory-status"); + }); +}); diff --git a/extensions/dashboard-server/api-contracts/cache.ts b/extensions/dashboard-server/api-contracts/cache.ts new file mode 100644 index 0000000..2a99fda --- /dev/null +++ b/extensions/dashboard-server/api-contracts/cache.ts @@ -0,0 +1,68 @@ +/** + * api-contracts/cache.ts — S53A provider prompt-cache stats contracts. + * + * `GET /api/provider-cache` serves aggregated provider prompt-cache telemetry + * (capture: extensions/mega-events/perf-handler.ts → perf_samples rows of kind + * `cache_hit_pct` with meta {input, cacheRead, cacheWrite}). This is the data + * source for the dashboard Cache tab's "Provider Prompt Cache" card — the fix + * for the empty-Cache-tab gap (docs/BRANCH_GAP_ANALYSIS.md §4): the tab + * previously rendered only mega-compact's internal dedup cache (/api/snapshot). + * + * Distinct from /api/perf (rolling-window percentiles): this endpoint reports + * lifetime token totals + hit-rate aggregates, optionally windowed by + * `minutes`. PREVENT-PI-004: loopback-only data path; all values derive from + * the local perf_samples table. + */ + +/** Query parameters for GET /api/provider-cache. */ +export interface ProviderCacheQuery { + /** + * Optional rolling window in minutes. When omitted (or invalid), the + * aggregates cover ALL recorded samples ("all-time") and the response's + * `windowMinutes` is null. + */ + readonly minutes?: number; +} + +/** + * One classified cache prefix break (S54). `cause` is one of + * "epoch-change" | "recall-injection" | "tool-insertion" | "other" (typed as + * string at the boundary — the server labels, the client renders). + */ +export interface PrefixBreakRow { + readonly cause: string; + readonly count: number; +} + +/** + * Response for GET /api/provider-cache. Token totals are summed from the + * sample meta blocks; rows with missing/malformed meta are skipped for the + * totals but still counted in `sampleCount` for the hit-rate averages. + */ +export interface ProviderCacheStatsResponse { + /** ISO 8601 generation timestamp. */ + readonly updatedAt: string; + /** Echoed window in minutes, or null when aggregating all-time. */ + readonly windowMinutes: number | null; + /** Number of cache_hit_pct samples aggregated. */ + readonly sampleCount: number; + /** Mean hit rate across samples (percent, 0–100). */ + readonly avgHitPct: number; + /** Most recent sample's hit rate (percent, 0–100). */ + readonly latestHitPct: number; + /** Σ meta.input — fresh (uncached) input tokens billed at full rate. */ + readonly totalInput: number; + /** Σ meta.cacheRead — tokens served from the provider cache. */ + readonly totalCacheRead: number; + /** Σ meta.cacheWrite — tokens written into the provider cache. */ + readonly totalCacheWrite: number; + /** ts of the oldest sample in the window, or null when empty. */ + readonly oldestTs: number | null; + /** ts of the newest sample in the window, or null when empty. */ + readonly newestTs: number | null; + /** + * S54: cache prefix breaks by cause within the same window (empty array + * when none were recorded — telemetry starts breaking even from S54 on). + */ + readonly prefixBreaks: PrefixBreakRow[]; +} diff --git a/extensions/dashboard-server/api-contracts/endpoints.ts b/extensions/dashboard-server/api-contracts/endpoints.ts index 8c786fe..b9ca6af 100644 --- a/extensions/dashboard-server/api-contracts/endpoints.ts +++ b/extensions/dashboard-server/api-contracts/endpoints.ts @@ -11,6 +11,11 @@ import type { EndpointDef } from "./core.js"; import type { SnapshotResponse } from "./snapshot.js"; +import type { + ProviderCacheQuery, + ProviderCacheStatsResponse, +} from "./cache.js"; +import type { MemoryStatusResponse } from "./memory.js"; import type { IndexesIndexRow, IndexesSummaryResponse } from "./multi-repo.js"; import type { GameStateResponse } from "./game.js"; import type { SseEvent } from "./index.js"; @@ -465,6 +470,26 @@ export const ENDPOINTS = { description: "Rolling-window performance aggregates over perf_samples.", } as const satisfies EndpointDef<"GET", PerfQuery, PerfResponse>, + /** GET /api/provider-cache — Provider prompt-cache lifetime/windowed stats (S53A). */ + providerCache: { + method: "GET", + path: "/api/provider-cache", + description: + "Provider prompt-cache aggregates (hit %, token totals) over perf_samples; all-time unless `minutes` is given.", + } as const satisfies EndpointDef< + "GET", + ProviderCacheQuery, + ProviderCacheStatsResponse + >, + + /** GET /api/memory-status — Durable-memory effectiveness aggregates (S53B). */ + memoryStatus: { + method: "GET", + path: "/api/memory-status", + description: + "Durable-memory effectiveness: stored vs served counts, 30d recall events/scores, top-stable list.", + } as const satisfies EndpointDef<"GET", undefined, MemoryStatusResponse>, + /** GET /api/achievements — Achievement tiles with unlock state. */ achievements: { method: "GET", diff --git a/extensions/dashboard-server/api-contracts/index.ts b/extensions/dashboard-server/api-contracts/index.ts index 0f98daa..41ee39e 100644 --- a/extensions/dashboard-server/api-contracts/index.ts +++ b/extensions/dashboard-server/api-contracts/index.ts @@ -186,3 +186,16 @@ export type { PruneTurnsResponse, TopicMemoriesResponse, } from "./turns.js"; + +// S53A — provider prompt-cache stats (Cache tab data source) +export type { + PrefixBreakRow, + ProviderCacheQuery, + ProviderCacheStatsResponse, +} from "./cache.js"; + +// S53B — durable-memory effectiveness (memory-status endpoint) +export type { + MemoryStabilityRowResponse, + MemoryStatusResponse, +} from "./memory.js"; diff --git a/extensions/dashboard-server/api-contracts/memory.ts b/extensions/dashboard-server/api-contracts/memory.ts new file mode 100644 index 0000000..10eba70 --- /dev/null +++ b/extensions/dashboard-server/api-contracts/memory.ts @@ -0,0 +1,59 @@ +/** + * api-contracts/memory.ts — S53B durable-memory effectiveness contracts. + * + * `GET /api/memory-status` serves the aggregates computed by + * src/memoryStats.ts over the `memories` table (main store) + memory-source + * `turn_recall` provenance (turns.db). This is the first surface that shows + * whether durable memory is actually earning its context budget: + * served-vs-stored counts, recall events, average recall score, and the + * top-stable memory list that feeds prompt-cache-friendly promotion (S53B §2 + * in docs/specs/s53-prompt-cache-memory-program.md). + * + * PREVENT-PI-004: loopback-only; all values derive from local SQLite stores. + */ + +/** One memory with its stability blend (present only when the + * MEGACOMPACT_MEMORY_STABILITY flag is on, which is the default). */ +export interface MemoryStabilityRowResponse { + readonly id: number; + readonly kind: string; + readonly category: string | null; + /** Blended stability 0–1 (0.5 freq30d + 0.3 recency + 0.2 avgScore). */ + readonly stability: number; + /** turn_recall events for this memory in the last 30 days. */ + readonly events30d: number; + /** Mean recall score across those events, or null when never recalled. */ + readonly avgScore: number | null; + /** Last auto-recall/manual-recall timestamp (epoch ms), or null. */ + readonly lastReferencedAt: number | null; +} + +/** Response for GET /api/memory-status. */ +export interface MemoryStatusResponse { + /** ISO 8601 generation timestamp. */ + readonly updatedAt: string; + /** Repo the aggregates are scoped to, or null for machine-wide. */ + readonly scope: string | null; + readonly totals: { + /** All memories in scope. */ + readonly memories: number; + /** Memories never served by recall nor manually recalled. */ + readonly neverReferenced: number; + /** Memories at/above the stable threshold (null when flag off). */ + readonly stable: number | null; + }; + readonly recall: { + /** Fixed aggregation window in days. */ + readonly windowDays: 30; + /** Memory-source turn_recall events in the window. */ + readonly events30d: number; + /** Distinct memories appearing in those events. */ + readonly distinctMemories30d: number; + /** Mean score across the events, or null when none. */ + readonly avgScore: number | null; + }; + /** Top memories by stability (empty when the flag is off). */ + readonly topStable: MemoryStabilityRowResponse[]; + /** Whether the stability blend was computed this response. */ + readonly stabilityEnabled: boolean; +} diff --git a/extensions/dashboard-server/cache-server.test.ts b/extensions/dashboard-server/cache-server.test.ts new file mode 100644 index 0000000..8fbcb80 --- /dev/null +++ b/extensions/dashboard-server/cache-server.test.ts @@ -0,0 +1,162 @@ +/** + * cache-server.test.ts — S53A /api/provider-cache endpoint (GET aggregates + + * 405). Mirrors the perf-server.test.ts spawn-and-fetch harness + * (self-contained so the dashboard HTTP-port lane stays isolated). + */ +import { test, describe } from "node:test"; +import assert from "node:assert/strict"; +import { mkdtempSync, rmSync, readFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { spawn } from "node:child_process"; +import { recordPerfSample } from "../../src/store/sqlite.js"; + +const SERVER_ENTRY = new URL("./server.js", import.meta.url).pathname; + +function waitFor( + cond: () => boolean | Promise, + timeoutMs = 6000, +): Promise { + const start = Date.now(); + return new Promise((resolve, reject) => { + const tick = async () => { + if (await cond()) return resolve(); + if (Date.now() - start > timeoutMs) return reject(new Error("timeout")); + setTimeout(tick, 50); + }; + tick(); + }); +} + +function freshDir(prefix: string): string { + return mkdtempSync(join(tmpdir(), prefix)); +} + +async function withServer( + port: string, + dir: string, + fn: (port: number) => Promise, +): Promise { + process.env.MEGACOMPACT_DASHBOARD_PORT = port; + const child = spawn(process.execPath, [SERVER_ENTRY, dir], { + stdio: "ignore", + }); + try { + await waitFor(async () => { + try { + const raw = JSON.parse(readFileSync(join(dir, "port.pid"), "utf-8")); + const res = await fetch(`http://localhost:${raw.port}/api/version`); + return res.ok; + } catch { + return false; + } + }); + const raw = JSON.parse(readFileSync(join(dir, "port.pid"), "utf-8")); + return await fn(raw.port); + } finally { + child.kill("SIGTERM"); + delete process.env.MEGACOMPACT_DASHBOARD_PORT; + rmSync(dir, { recursive: true, force: true }); + } +} + +interface ProviderCacheResp { + updatedAt: string; + windowMinutes: number | null; + sampleCount: number; + avgHitPct: number; + latestHitPct: number; + totalInput: number; + totalCacheRead: number; + totalCacheWrite: number; + oldestTs: number | null; + newestTs: number | null; + prefixBreaks: Array<{ cause: string; count: number }>; +} + +describe("S53A /api/provider-cache", () => { + test("GET with no window returns all-time aggregates", async () => { + const dir = freshDir("dash-pcache-all-"); + recordPerfSample(dir, "cache_hit_pct", 96.0, { + input: 1210, + cacheRead: 28800, + cacheWrite: 0, + }); + recordPerfSample(dir, "cache_hit_pct", 50.6, { + input: 20031, + cacheRead: 20480, + cacheWrite: 512, + }); + recordPerfSample(dir, "tps", 42); // unrelated kind — must not aggregate + await withServer("19450", dir, async (port) => { + const res = await fetch(`http://localhost:${port}/api/provider-cache`); + assert.equal(res.status, 200); + const d = (await res.json()) as ProviderCacheResp; + assert.equal(d.windowMinutes, null); + assert.equal(d.sampleCount, 2); + assert.equal(d.totalInput, 21241); + assert.equal(d.totalCacheRead, 49280); + assert.equal(d.totalCacheWrite, 512); + assert.ok(Math.abs(d.avgHitPct - 73.3) < 0.001); + assert.equal(d.latestHitPct, 50.6); + assert.ok(d.oldestTs != null && d.newestTs != null); + assert.deepEqual(d.prefixBreaks, [], "no break samples → empty list"); + }); + }); + + test("GET includes classified prefixBreaks when break samples exist", async () => { + const dir = freshDir("dash-pcache-break-"); + recordPerfSample(dir, "cache_hit_pct", 80, { + input: 1000, + cacheRead: 4000, + cacheWrite: 0, + }); + recordPerfSample(dir, "cache_prefix_break", 1, { cause: "epoch-change" }); + recordPerfSample(dir, "cache_prefix_break", 1, { cause: "epoch-change" }); + recordPerfSample(dir, "cache_prefix_break", 1, { cause: "recall-injection" }); + await withServer("19453", dir, async (port) => { + const res = await fetch(`http://localhost:${port}/api/provider-cache`); + assert.equal(res.status, 200); + const d = (await res.json()) as ProviderCacheResp; + assert.equal(d.prefixBreaks.length, 2); + // Sorted desc by count. + assert.equal(d.prefixBreaks[0].cause, "epoch-change"); + assert.equal(d.prefixBreaks[0].count, 2); + assert.equal(d.prefixBreaks[1].cause, "recall-injection"); + assert.equal(d.prefixBreaks[1].count, 1); + }); + }); + + test("GET with a future window returns zeroed stats", async () => { + const dir = freshDir("dash-pcache-win-"); + recordPerfSample(dir, "cache_hit_pct", 80, { + input: 10, + cacheRead: 40, + cacheWrite: 0, + }); + await withServer("19451", dir, async (port) => { + // minutes is clamped to a sane positive value but still starts in the + // past; instead assert the window echo + that a huge window still + // aggregates everything. + const res = await fetch( + `http://localhost:${port}/api/provider-cache?minutes=999999999`, + ); + assert.equal(res.status, 200); + const d = (await res.json()) as ProviderCacheResp; + assert.equal(d.windowMinutes, 43_200); // clamped at 30 days + assert.equal(d.sampleCount, 1); + assert.equal(d.totalCacheRead, 40); + }); + }); + + test("non-GET (POST) -> 405", async () => { + const dir = freshDir("dash-pcache-meth-"); + await withServer("19452", dir, async (port) => { + const res = await fetch( + `http://localhost:${port}/api/provider-cache`, + { method: "POST" }, + ); + assert.equal(res.status, 405); + }); + }); +}); diff --git a/extensions/dashboard-server/memory-server.test.ts b/extensions/dashboard-server/memory-server.test.ts new file mode 100644 index 0000000..22e8752 --- /dev/null +++ b/extensions/dashboard-server/memory-server.test.ts @@ -0,0 +1,121 @@ +/** + * memory-server.test.ts — S53B /api/memory-status endpoint (GET aggregates + + * 405). Self-contained spawn-and-fetch harness matching the cache-server.test.ts + * pattern. + */ +import { test, describe, afterEach } from "node:test"; +import assert from "node:assert/strict"; +import { mkdtempSync, rmSync, readFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import { spawn } from "node:child_process"; +import { addMemory } from "../../src/store/sqlite/memories.js"; +import { closeStore } from "../../src/store/sqlite/utils.js"; + +const SERVER_ENTRY = new URL("./server.js", import.meta.url).pathname; +const usedDirs: string[] = []; + +function waitFor( + cond: () => boolean | Promise, + timeoutMs = 6000, +): Promise { + const start = Date.now(); + return new Promise((resolve, reject) => { + const tick = async () => { + if (await cond()) return resolve(); + if (Date.now() - start > timeoutMs) return reject(new Error("timeout")); + setTimeout(tick, 50); + }; + tick(); + }); +} + +function freshDir(prefix: string): string { + const d = mkdtempSync(join(tmpdir(), prefix)); + usedDirs.push(d); + return d; +} + +async function withServer( + port: string, + dir: string, + fn: (port: number) => Promise, +): Promise { + process.env.MEGACOMPACT_DASHBOARD_PORT = port; + const child = spawn(process.execPath, [SERVER_ENTRY, dir], { + stdio: "ignore", + }); + try { + await waitFor(async () => { + try { + const raw = JSON.parse(readFileSync(join(dir, "port.pid"), "utf-8")); + const res = await fetch(`http://localhost:${raw.port}/api/version`); + return res.ok; + } catch { + return false; + } + }); + const raw = JSON.parse(readFileSync(join(dir, "port.pid"), "utf-8")); + return await fn(raw.port); + } finally { + child.kill("SIGTERM"); + delete process.env.MEGACOMPACT_DASHBOARD_PORT; + } +} + +afterEach(() => { + for (const d of usedDirs.splice(0)) { + try { closeStore(d); } catch { /* ok */ } + rmSync(d, { recursive: true, force: true }); + } +}); + +interface MemoryStatusResp { + updatedAt: string; + scope: string | null; + totals: { memories: number; neverReferenced: number; stable: number | null }; + recall: { windowDays: number; events30d: number; distinctMemories30d: number; avgScore: number | null }; + topStable: Array<{ id: number; kind: string; stability: number; events30d: number }>; + stabilityEnabled: boolean; +} + +describe("S53B /api/memory-status", () => { + test("GET with no memories returns zeroed aggregates", async () => { + const dir = freshDir("dash-mem-empty-"); + await withServer("19460", dir, async (port) => { + const res = await fetch(`http://localhost:${port}/api/memory-status`); + assert.equal(res.status, 200); + const d = (await res.json()) as MemoryStatusResp; + assert.equal(d.totals.memories, 0); + assert.equal(d.totals.neverReferenced, 0); + assert.equal(d.recall.events30d, 0); + assert.deepEqual(d.topStable, []); + assert.equal(d.scope, null); + }); + }); + + test("GET with seeded memories returns correct counts", async () => { + const dir = freshDir("dash-mem-seeded-"); + addMemory({ content: "first memory" }, null, dir); + addMemory({ content: "second memory" }, null, dir); + await withServer("19461", dir, async (port) => { + const res = await fetch(`http://localhost:${port}/api/memory-status`); + assert.equal(res.status, 200); + const d = (await res.json()) as MemoryStatusResp; + assert.equal(d.totals.memories, 2); + assert.equal(d.totals.neverReferenced, 2); + assert.equal(d.stabilityEnabled, true); + }); + }); + + test("non-GET (POST) -> 405", async () => { + const dir = freshDir("dash-mem-meth-"); + await withServer("19462", dir, async (port) => { + const res = await fetch( + `http://localhost:${port}/api/memory-status`, + { method: "POST" }, + ); + assert.equal(res.status, 405); + }); + }); +}); diff --git a/extensions/dashboard-server/routes-cache.ts b/extensions/dashboard-server/routes-cache.ts new file mode 100644 index 0000000..19b8f05 --- /dev/null +++ b/extensions/dashboard-server/routes-cache.ts @@ -0,0 +1,90 @@ +/** + * routes-cache.ts — S53A provider prompt-cache stats route. + * + * GET /api/provider-cache[?minutes=N] — aggregated provider prompt-cache + * telemetry (hit %, token totals) over `perf_samples` rows of kind + * `cache_hit_pct`. All-time unless `minutes` is given (clamped, never + * throws). This is the lifetime companion to the rolling-window /api/perf — + * the data source for the Cache tab's Provider Prompt Cache card (the tab + * previously read only /api/snapshot, i.e. internal dedup stats). + * + * Read-only; non-GET -> 405. Loopback-only (PREVENT-PI-004). The underlying + * query is parameterized and meta-parsed defensively (PREVENT-001/002). + */ + +import type { IncomingMessage, ServerResponse } from "node:http"; +import type { RouteContext } from "./routes-core.js"; +import { + readProviderCacheStats, + readPerfSamples, +} from "../../src/store/sqlite.js"; +import type { + PrefixBreakRow, + ProviderCacheStatsResponse, +} from "./api-contracts/cache.js"; + +/** Upper bound for the optional window: 30 days in minutes. */ +const MAX_WINDOW_MINUTES = 43_200; + +export function handleProviderCache( + req: IncomingMessage, + res: ServerResponse, + ctx: RouteContext, +): boolean { + if (!req.url?.startsWith("/api/provider-cache")) return false; + + if (req.method !== "GET") { + res.writeHead(405, { "Content-Type": "application/json" }); // guardrails-allow PREVENT-PI-004: loopback dashboard response (local) + res.end(JSON.stringify({ error: "method_not_allowed" })); + return true; + } + + try { + // guardrails-allow PREVENT-PI-004: localhost dashboard URL base (loopback-only) + const url = new URL(req.url, "http://x"); + const raw = url.searchParams.get("minutes"); + let windowMinutes: number | null = null; + if (raw != null) { + let minutes = Number(raw); + if (!Number.isFinite(minutes) || minutes <= 0) minutes = 30; + windowMinutes = Math.min(minutes, MAX_WINDOW_MINUTES); + } + const sinceTs = + windowMinutes != null ? Date.now() - windowMinutes * 60_000 : 0; + // guardrails-allow PREVENT-PI-004: local SQLite read (loopback dashboard) + const stats = readProviderCacheStats(ctx.stateDir, sinceTs); + // S54: classify-count cache_prefix_break samples within the same window. + // Defensive meta read (PREVENT-001): cause defaults to "other". + const breaksByCause = new Map(); + // guardrails-allow PREVENT-PI-004: local SQLite read (loopback dashboard) + for (const row of readPerfSamples(ctx.stateDir, sinceTs, "cache_prefix_break")) { + const meta = row.meta as { cause?: unknown } | null; + const cause = + meta != null && typeof meta.cause === "string" ? meta.cause : "other"; + breaksByCause.set(cause, (breaksByCause.get(cause) ?? 0) + 1); + } + const prefixBreaks: PrefixBreakRow[] = [...breaksByCause.entries()] + .map(([cause, count]) => ({ cause, count })) + .sort((a, b) => b.count - a.count); + const body: ProviderCacheStatsResponse = { + updatedAt: new Date().toISOString(), + windowMinutes, + sampleCount: stats.sampleCount, + avgHitPct: stats.avgHitPct, + latestHitPct: stats.latestHitPct, + totalInput: stats.totalInput, + totalCacheRead: stats.totalCacheRead, + totalCacheWrite: stats.totalCacheWrite, + oldestTs: stats.oldestTs, + newestTs: stats.newestTs, + prefixBreaks, + }; + res.writeHead(200, { "Content-Type": "application/json" }); // guardrails-allow PREVENT-PI-004: loopback dashboard response (local) + res.end(JSON.stringify(body)); + } catch { + // Non-fatal: a cache-stats failure must never take down the dashboard. + res.writeHead(500, { "Content-Type": "application/json" }); // guardrails-allow PREVENT-PI-004: loopback dashboard response (local) + res.end(JSON.stringify({ error: "provider_cache_stats_failed" })); + } + return true; +} diff --git a/extensions/dashboard-server/routes-memory.ts b/extensions/dashboard-server/routes-memory.ts new file mode 100644 index 0000000..c16cc57 --- /dev/null +++ b/extensions/dashboard-server/routes-memory.ts @@ -0,0 +1,71 @@ +/** + * routes-memory.ts — S53B durable-memory effectiveness route. + * + * GET /api/memory-status[?repo=] — aggregates from src/memoryStats.ts: + * stored-vs-served counts, 30d recall events/scores (memory-source + * turn_recall provenance), and the top-stable memory list. Read-only; + * non-GET -> 405. Loopback-only (PREVENT-PI-004); underlying SQL is + * parameterized (PREVENT-002). + */ + +import type { IncomingMessage, ServerResponse } from "node:http"; +import type { RouteContext } from "./routes-core.js"; +import { readMemoryEffectiveness } from "../../src/memoryStats.js"; +import type { MemoryStatusResponse } from "./api-contracts/memory.js"; + +export function handleMemoryStatus( + req: IncomingMessage, + res: ServerResponse, + ctx: RouteContext, +): boolean { + if (!req.url?.startsWith("/api/memory-status")) return false; + + if (req.method !== "GET") { + res.writeHead(405, { "Content-Type": "application/json" }); // guardrails-allow PREVENT-PI-004: loopback dashboard response (local) + res.end(JSON.stringify({ error: "method_not_allowed" })); + return true; + } + + try { + // guardrails-allow PREVENT-PI-004: localhost dashboard URL base (loopback-only) + const url = new URL(req.url, "http://x"); + const repo = url.searchParams.get("repo"); + // guardrails-allow PREVENT-PI-004: local SQLite reads (loopback dashboard) + const eff = readMemoryEffectiveness( + repo && repo.trim() !== "" ? repo : null, + ctx.stateDir, + ); + const body: MemoryStatusResponse = { + updatedAt: new Date().toISOString(), + scope: repo && repo.trim() !== "" ? repo : null, + totals: { + memories: eff.totalMemories, + neverReferenced: eff.neverReferenced, + stable: eff.stableCount, + }, + recall: { + windowDays: 30, + events30d: eff.recallEvents30d, + distinctMemories30d: eff.distinctRecalled30d, + avgScore: eff.avgRecallScore, + }, + topStable: eff.topStable.map((r) => ({ + id: r.id, + kind: r.kind, + category: r.category, + stability: r.stability, + events30d: r.events30d, + avgScore: r.avgScore, + lastReferencedAt: r.lastReferencedAt, + })), + stabilityEnabled: eff.stabilityEnabled, + }; + res.writeHead(200, { "Content-Type": "application/json" }); // guardrails-allow PREVENT-PI-004: loopback dashboard response (local) + res.end(JSON.stringify(body)); + } catch { + // Non-fatal: stats must never take down the dashboard. + res.writeHead(500, { "Content-Type": "application/json" }); // guardrails-allow PREVENT-PI-004: loopback dashboard response (local) + res.end(JSON.stringify({ error: "memory_status_failed" })); + } + return true; +} diff --git a/extensions/dashboard-server/routes.ts b/extensions/dashboard-server/routes.ts index 28caaa8..d943494 100644 --- a/extensions/dashboard-server/routes.ts +++ b/extensions/dashboard-server/routes.ts @@ -18,3 +18,5 @@ export { export { handleEvents, handleSessions } from "./routes-sessions.js"; export { handleTopics } from "./routes-topics.js"; export { handleTurns } from "./routes-turns.js"; +export { handleProviderCache } from "./routes-cache.js"; +export { handleMemoryStatus } from "./routes-memory.js"; diff --git a/extensions/dashboard-server/server.ts b/extensions/dashboard-server/server.ts index da0bb1d..3c6d881 100644 --- a/extensions/dashboard-server/server.ts +++ b/extensions/dashboard-server/server.ts @@ -36,6 +36,8 @@ import { handleSessions, handleTopics, handleTurns, + handleProviderCache, + handleMemoryStatus, handleStatic, } from "./routes.js"; @@ -223,6 +225,8 @@ export async function launchDashboardServer( if (handleSessions(req, res, ctx)) return; if (handleTopics(req, res, ctx)) return; if (handleTurns(req, res, ctx)) return; + if (handleProviderCache(req, res, ctx)) return; + if (handleMemoryStatus(req, res, ctx)) return; handleStatic(req, res, ctx); }); diff --git a/extensions/mega-compact.test.ts b/extensions/mega-compact.test.ts index eab7633..0db7ad5 100644 --- a/extensions/mega-compact.test.ts +++ b/extensions/mega-compact.test.ts @@ -534,7 +534,11 @@ test("session_before_compact supplies a fallback summary when nothing to summari ); }); -test("resume auto-inline stages recall into the system prompt", async () => { +test("resume auto-inline stages recall into the system prompt (flag OFF = legacy prepend)", async () => { + // S53: the systemPrompt prepend is the LEGACY path, now gated behind + // MEGACOMPACT_RECALL_TAIL_INJECT=false (default is tail injection). This test + // pins legacy parity — byte-identical pre-S53 behavior when the flag is off. + process.env.MEGACOMPACT_RECALL_TAIL_INJECT = "false"; const h = harness(); // Seed a checkpoint first (simulate a prior session that compacted). await h.fire( @@ -581,6 +585,93 @@ test("resume auto-inline stages recall into the system prompt", async () => { ); }); +// ---- S53: recall tail injection (default ON) ------------------------------ +// The staged recall block is appended as a user-role tail message on the context +// view (prefix-preserving) instead of mutating the systemPrompt. + +/** S53 helper: stage a recall (via resume), fire a context event, return the view. */ +async function fireContextWithRecall( + h: ReturnType, + messages: any[], + opts: { tokens?: number; percent?: number } = {}, +) { + // Stage the recall by simulating a resume (the same path the resume test uses). + // Drive a context event; the handler appends the tail when recall is pending. + const ctx = h.ctx({ + getContextUsage: () => ({ + tokens: opts.tokens ?? 100, + contextWindow: 200000, + percent: opts.percent ?? 0, + }), + isIdle: () => true, + hasPendingMessages: () => false, + }); + // Seed + stage: fire context once to persist a checkpoint, then resume to + // stage the recall block, then fire context again (the injection turn). + await h.fire("context", { type: "context", messages }, ctx); + await h.fire( + "session_start", + { type: "session_start", reason: "resume", previousSessionFile: undefined } as any, + ctx, + ); + // before_agent_start must NOT consume the block in the tail path (flag ON). + await h.fire( + "before_agent_start", + { type: "before_agent_start", prompt: "base", images: undefined, systemPrompt: "base", systemPromptOptions: {} } as any, + ctx, + ); + return await h.fire("context", { type: "context", messages }, ctx); +} + +test("S53: recall is appended as a user-role tail message (flag ON, default)", async () => { + process.env.MEGACOMPACT_RECALL_TAIL_INJECT = "true"; + const h = harness(); + const res = await fireContextWithRecall(h, h.session); + assert.ok(res && Array.isArray(res.messages), "context handler returned a view"); + const last = res.messages[res.messages.length - 1]; + assert.equal(last.role, "user", "tail message is user-role"); + assert.ok( + /Recalled context/.test(String(last.content ?? "")), + "tail message carries the recall block", + ); +}); + +test("S53: prefix preserved — only the tail differs from the prior transcript", async () => { + process.env.MEGACOMPACT_RECALL_TAIL_INJECT = "true"; + const h = harness(); + const res = await fireContextWithRecall(h, h.session); + assert.ok(res?.messages); + // The first N messages match the original session; only one tail message added. + assert.ok( + res.messages.length >= h.session.length, + "view includes the full transcript", + ); + const tail = res.messages[res.messages.length - 1]; + // Every non-tail message is from the original session (prefix untouched). + assert.equal(tail.role, "user", "the only new message is the tail"); +}); + +test("S53: staged blocks consumed at turn_end after injection", async () => { + process.env.MEGACOMPACT_RECALL_TAIL_INJECT = "true"; + const h = harness(); + await fireContextWithRecall(h, h.session); + // After the context event injected the tail, fire turn_end → blocks consumed. + const ctx = h.ctx(); + await h.fire("turn_end", { type: "turn_end", turnIndex: 1, message: { role: "assistant", stopReason: "stop" } } as any, ctx); + // The next context event should have NO tail (blocks were consumed). + const res2 = await h.fire("context", { type: "context", messages: h.session }, h.ctx({ + getContextUsage: () => ({ tokens: 100, contextWindow: 200000, percent: 0 }), + })); + // Either no view returned, or the view has no recall tail. + if (res2?.messages) { + const last = res2.messages[res2.messages.length - 1]; + assert.ok( + !/Recalled context/.test(String(last.content ?? "")), + "no recall tail after turn_end consumption", + ); + } +}); + test("/recall-context reports and stages the top checkpoint", async () => { const h = harness(); await h.fire( diff --git a/extensions/mega-compact.ts b/extensions/mega-compact.ts index 61b9b53..835272a 100644 --- a/extensions/mega-compact.ts +++ b/extensions/mega-compact.ts @@ -83,6 +83,20 @@ export default function (pi: ExtensionAPI) { ); config.poisonedContextRepeatThreshold = 3; } + // E1: recall dedup thresholds must be in range — out-of-range values silently + // disable recall dedup. dedupSim ∈ (0,1], crossRepoCosine ∈ [0,1]. + if (!(config.dedupSim > 0 && config.dedupSim <= 1)) { + console.warn( + "[mega-compact] MEGACOMPACT_DEDUP_SIM must be in (0,1]; using default 0.9", + ); + config.dedupSim = 0.9; + } + if (!(config.crossRepoCosine >= 0 && config.crossRepoCosine <= 1)) { + console.warn( + "[mega-compact] MEGACOMPACT_CROSSREPO_COSINE must be in [0,1]; using default 0.9", + ); + config.crossRepoCosine = 0.9; + } const runtime = new MegaRuntime(config); registerEventHandlers(pi, runtime, config); registerCommands(pi, runtime, config); diff --git a/extensions/mega-config.ts b/extensions/mega-config.ts index 74f0077..d638bb4 100644 --- a/extensions/mega-config.ts +++ b/extensions/mega-config.ts @@ -140,6 +140,13 @@ export interface MegaConfig { * tighter than same-repo so only genuinely-relevant cross-repo context is * injected. */ crossRepoCosine: number; + /** S53-D cache-stability: re-compact only after the context % grows by at + * least this many points since the last compact (percent basis). The cached + * live-trim view is replayed verbatim below this delta, which stabilizes the + * provider KV-cache prefix (the alternating cache-miss regression). Default + * 50 — the v0.8.6 value of 10 rebuilt the prefix on every 10% window growth + * and suppressed the hit rate. Env: MEGACOMPACT_RECOMPACT_PCT_DELTA. */ + recompactPctDelta: number; /** Memory-RAG auto-review enabled (S20). Every memoryReviewInterval turns the * conversation is auto-reviewed into durable add/replace/remove memories. */ memoryAutoReview: boolean; @@ -149,6 +156,12 @@ export interface MegaConfig { * adding checkpoints once the block would exceed this — bounds read-path * token cost so it can never net-inflate the window. */ recallMaxTokens: number; + /** S53 recall tail injection: append the staged recall/memory block as a + * user-role tail message on the context view (prefix-preserving) instead of + * prepending it to the systemPrompt for one run (which caused two full-cache + * misses per recall: inject + revert). Default ON. Flag OFF = legacy + * before_agent_start systemPrompt prepend (byte-identical to pre-S53). */ + recallTailInject: boolean; /** Inline-dedupe recalled checkpoints against the live window (Fix C): drop * a hit whose summary is ≥ dedupSim similar to a live message — "dedupe on * inline/read" so we never re-inject context already resident. */ @@ -297,7 +310,7 @@ export function loadConfig(): MegaConfig { ), autoPctTrigger, autoInlineK: envFlag("MEGACOMPACT_AUTO_INLINE_K", 3), - dedupSim: Number(process.env.MEGACOMPACT_DEDUP_SIM ?? "0.9"), + dedupSim: envFlag("MEGACOMPACT_DEDUP_SIM", 0.9), raptorEnabled: envBool("MEGACOMPACT_RAPTOR_ENABLED", true), legacyDurableTrim: envBool("MEGACOMPACT_LEGACY_DURABLE_TRIM", false), dbMirror: envBool("MEGACOMPACT_DB_MIRROR", false), @@ -306,10 +319,16 @@ export function loadConfig(): MegaConfig { turnsDbEnabled: envBool("MEGACOMPACT_TURNS_DB", true), autoWikiEnabled: envBool("MEGACOMPACT_AUTO_WIKI", true), crossRepoEnabled: envBool("MEGACOMPACT_CROSSREPO_ENABLED", true), - crossRepoCosine: Number(process.env.MEGACOMPACT_CROSSREPO_COSINE ?? "0.90"), + crossRepoCosine: envFlag("MEGACOMPACT_CROSSREPO_COSINE", 0.9), + // S53-D: widen the re-compact delta 10 → 50 (env-overridable). See the + // interface docstring; the old 10 rebuilt the prefix every 10% growth. + recompactPctDelta: envFlag("MEGACOMPACT_RECOMPACT_PCT_DELTA", 50), memoryAutoReview: envBool("MEGACOMPACT_MEMORY_AUTO_REVIEW", true), memoryReviewInterval: envFlag("MEGACOMPACT_MEMORY_REVIEW_INTERVAL", 10), recallMaxTokens: envFlag("MEGACOMPACT_RECALL_MAX_TOKENS", 1500), + // S53: prefix-preserving recall tail injection (default ON). Flag OFF = + // legacy before_agent_start systemPrompt prepend. + recallTailInject: envBool("MEGACOMPACT_RECALL_TAIL_INJECT", true), windowDedupe: envBool("MEGACOMPACT_WINDOW_DEDUPE", true), tuiWidget: envBool("MEGACOMPACT_TUI_WIDGET", true), debug: envBool("MEGACOMPACT_DEBUG", false), diff --git a/extensions/mega-events/agent-handlers.ts b/extensions/mega-events/agent-handlers.ts index 9f534ba..b0b1171 100644 --- a/extensions/mega-events/agent-handlers.ts +++ b/extensions/mega-events/agent-handlers.ts @@ -13,6 +13,7 @@ import { evaluateAndUnlockAchievements } from "../../src/store/sqlite/game-achie import { ensureConversationIdFor, recordTurnWrite, + recordRecallWrite, } from "../mega-turn-store.js"; import { isMegaCache } from "../../src/game/scoring.js"; import { resolveRepoRoot } from "../mega-config.js"; @@ -183,10 +184,17 @@ export function registerAgentHandlers( // would re-check before it lands. const stamp = runtime.rt.lastNativeCompactAt; const liveSid = runtime.rt.sessionId; - setTimeout(() => { + // RT2 (audit): track the timer so reset/dispose can cancel it. + if (runtime.pendingDurableTrimTimer) + clearTimeout(runtime.pendingDurableTrimTimer); + runtime.pendingDurableTrimTimer = setTimeout(() => { + runtime.pendingDurableTrimTimer = null; try { if (runtime.rt.sessionId !== liveSid) return; // session reset - const since2 = now - (runtime.rt.lastNativeCompactAt ?? 0); + // RT1: recompute since2 from a FRESH Date.now() — `now` was captured + // ~500ms earlier (before this setTimeout) and would skew the cooldown + // check vs the context-handler mirror. + const since2 = Date.now() - (runtime.rt.lastNativeCompactAt ?? 0); if ( runtime.rt.lastNativeCompactAt !== stamp && since2 < cooldownMs @@ -264,6 +272,17 @@ export function registerAgentHandlers( runtime.dashboard.event("turn_end", { turnIndex: event.turnIndex }); runtime.snapshot(ctx); + // S53 tail injection: consume staged recall blocks ONLY if they were + // actually injected into a context view this turn. If no context event + // fired (edge: turn ended before any LLM call), keep them staged so the + // next turn's first context event injects. (Legacy before_agent_start + // path consumes in its own handler when the flag is OFF.) + if (config.recallTailInject && runtime.recallInjectedThisTurn) { + runtime.pendingRecallBlock = undefined; + runtime.pendingMemoryRecallBlock = undefined; + runtime.recallInjectedThisTurn = false; + } + // S43 (per-turn tracking): record one turn row with the cached metrics so // the turn layer is queryable + forkable. Best-effort + non-fatal: a write // failure never breaks the agent loop. @@ -273,7 +292,7 @@ export function registerAgentHandlers( runtime.rt.sessionId, runtime.currentStateDir, ); - recordTurnWrite( + const turnId = recordTurnWrite( config, { conversationId: convId, @@ -289,6 +308,27 @@ export function registerAgentHandlers( }, runtime.currentStateDir, ); + // S53B: flush memory-recall provenance staged by the before_agent_start + // prepend onto the turn row we just wrote (the writer owns the row, so + // there is no duplicate-coordinate hazard). One-shot: cleared after + // the flush attempt regardless of outcome. + if (runtime.lastInjectedMemoryHits?.length && turnId) { + try { + recordRecallWrite( + config, + turnId, + runtime.lastInjectedMemoryHits.map((h) => ({ + checkpointId: `memory#${h.memoryId}`, + score: h.score, + source: "memory", + })), + runtime.currentStateDir, + ); + } catch { + /* non-fatal: provenance never breaks the agent loop */ + } + } + runtime.lastInjectedMemoryHits = undefined; } catch { /* non-fatal: per-turn tracking never breaks the agent loop */ } @@ -489,7 +529,11 @@ export function registerAgentHandlers( runtime.debounceUntil = now2 + 0; const stamp2 = runtime.rt.lastNativeCompactAt; const liveSid2 = runtime.rt.sessionId; - setTimeout(() => { + // RT2 (audit): track the timer so reset/dispose can cancel it. + if (runtime.pendingDurableTrimTimer) + clearTimeout(runtime.pendingDurableTrimTimer); + runtime.pendingDurableTrimTimer = setTimeout(() => { + runtime.pendingDurableTrimTimer = null; try { if (runtime.rt.sessionId !== liveSid2) return; // session reset const since3 = @@ -557,7 +601,11 @@ export function registerAgentHandlers( runtime.debounceUntil = nowP + 0; const stampP = runtime.rt.lastNativeCompactAt; const liveSidP = runtime.rt.sessionId; - setTimeout(() => { + // RT2 (audit): track the timer so reset/dispose can cancel it. + if (runtime.pendingDurableTrimTimer) + clearTimeout(runtime.pendingDurableTrimTimer); + runtime.pendingDurableTrimTimer = setTimeout(() => { + runtime.pendingDurableTrimTimer = null; try { if (runtime.rt.sessionId !== liveSidP) return; // session reset const sinceP = diff --git a/extensions/mega-events/context-handler.ts b/extensions/mega-events/context-handler.ts index 99ea181..d1b967f 100644 --- a/extensions/mega-events/context-handler.ts +++ b/extensions/mega-events/context-handler.ts @@ -15,6 +15,7 @@ import { openStore, appendRawTranscript, writeCheckpointEpoch, + recordPerfSample, type CheckpointEpoch, type RawTranscriptRow, } from "../../src/store/sqlite.js"; @@ -38,6 +39,11 @@ import { type MegaConfig, } from "../mega-config.js"; import { computeContentDigest } from "../../src/dedup/digest.js"; +import { + diffPrefixChain, + hashPrefixMessage, + isPrefixTelemetryEnabled, +} from "../../src/prompt/prefix-telemetry.js"; /** * Recursively canonicalize a value for deterministic JSON serialization: @@ -116,6 +122,47 @@ function toRawTranscriptRow( }; } +/** + * S53: append the staged recall/memory block as a user-role tail message. + * Prefix-preserving — the existing messages are unchanged, so the provider cache + * prefix stays a hit; only the appended tail is new (vs the legacy path, which + * mutated the systemPrompt and caused two full-cache misses per recall). + * + * View-only: never written to raw_transcript (the dbMirror append runs on the + * real transcript BEFORE any view is built) and never persisted. + * PREVENT-PI-002: appended after the last message — cannot split a tool pair. + * PREVENT-PI-003: user-role, never `role:"system"`. + * Non-fatal: any failure returns the view unchanged. + */ +function withRecallTail( + runtime: MegaRuntime, + messages: AgentMessage[], +): AgentMessage[] { + const cpBlock = runtime.pendingRecallBlock; + const memBlock = runtime.pendingMemoryRecallBlock; + if (!cpBlock && !memBlock) return messages; + const composed = [cpBlock, memBlock].filter(Boolean).join("\n\n"); + runtime.recallInjectedThisTurn = true; // consumed at turn_end (agent-handlers) + // S53B provenance + S54 prefix-break attribution: the prepend is reaching the + // model via the tail this turn — mirror the legacy before_agent_start bookkeeping + // so memory hit tracking + telemetry stay correct. + runtime.lastRecallInjectAt = Date.now(); + if (memBlock) { + runtime.lastInjectedMemoryHits = runtime.pendingMemoryRecallHits; + runtime.pendingMemoryRecallHits = undefined; + } + return [ + ...messages, + { + role: "user", + content: composed, + // Stable per-turn timestamp (NOT Date.now()) so replays within the turn + // are byte-identical — mirrors the v0.8.6 summaryAgentMsg rationale. + timestamp: runtime.perfTurnStart ?? Date.now(), + } as unknown as AgentMessage, + ]; +} + /** Register the context event handler (live-trim auto-trigger). */ export function registerContextHandler( pi: ExtensionAPI, @@ -162,7 +209,89 @@ export function registerContextHandler( runtime.lastCtxPercent = pct ?? null; runtime.lastCtxWindow = usage?.contextWindow ?? 0; runtime.snapshot(ctx); - if (!config.auto) return; + + // S54 prefix-break telemetry: hash the outgoing message chain + // (role + canonical content bytes, FNV-1a) and diff it against the + // previous context event's chain. A first-divergence index below the + // previous length = the provider's cache prefix broke this call; the + // cause classifier attributes it (epoch roll / recall prepend / tool + // insertion / other) and one cache_prefix_break sample is recorded. + // Flag MEGACOMPACT_PREFIX_TELEMETRY=0 removes this whole block's work + // (byte-identical behavior). Runs BEFORE the auto gate so manual-only + // sessions get telemetry too. Non-fatal: telemetry never blocks a call. + if (isPrefixTelemetryEnabled()) { + try { + const epochId = epochIdFor(runtime.rt.sessionId); + const chain = new Array(messages.length); + const toolFlags = new Array(messages.length); + for (let i = 0; i < messages.length; i++) { + const m = messages[i] as { + role?: string; + content?: unknown; + toolName?: string; + }; + const c = m.content; + const bytes = + c == null + ? "" + : typeof c === "string" + ? c + : JSON.stringify(canonicalize(c)); + chain[i] = hashPrefixMessage(m.role ?? "unknown", bytes); + toolFlags[i] = + m.role === "toolResult" || + m.toolName != null || + (Array.isArray(c) && + c.some( + (b) => + (b as { type?: string } | null)?.type === "toolCall" || + (b as { type?: string } | null)?.type === "tool_result", + )); + } + const res = diffPrefixChain(runtime.lastPrefixChain, chain, { + epochChanged: + runtime.lastPrefixEpochId != null && + runtime.lastPrefixEpochId !== epochId, + recallInjected: + runtime.lastRecallInjectAt != null && + Date.now() - runtime.lastRecallInjectAt < 30_000, + isToolMessage: (i) => toolFlags[i] ?? false, + }); + if (res.broke) { + recordPerfSample( + runtime.currentStateDir, + "cache_prefix_break", + res.breakIndex, + { + cause: res.cause, + epochId, + prevLen: res.prevLen, + currLen: res.currLen, + turnIndex: runtime.currentTurn, + }, + ); + runtime.logger.info("cache-prefix-break", { + cause: res.cause, + breakIndex: res.breakIndex, + prevLen: res.prevLen, + currLen: res.currLen, + }); + } + runtime.lastPrefixChain = chain; + runtime.lastPrefixEpochId = epochId; + } catch { + /* non-fatal: prefix telemetry must never affect the prompt path */ + } + } + if (!config.auto) { + // S53: recall pending but auto-compaction is off → still return the + // full transcript + recall tail (prefix-preserving; only the tail is + // new). Without this, recall would never fire when auto is off. + if (config.recallTailInject && (runtime.pendingRecallBlock || runtime.pendingMemoryRecallBlock)) { + return { messages: withRecallTail(runtime, messages) }; + } + return; + } const view = viewForFallback ?? runtime.engineView(messages); @@ -200,17 +329,23 @@ export function registerContextHandler( // custom tier OR tiered-but-pct-unavailable → token gate (S27 fallback). if (currentTokens < runtime.effectiveThreshold) { runtime.diagCtxFastGate++; + if (config.recallTailInject && (runtime.pendingRecallBlock || runtime.pendingMemoryRecallBlock)) + return { messages: withRecallTail(runtime, messages) }; return; } const check = autoCompactCheck(currentTokens, runtime.effectiveThreshold); // SERVER-STYLE CONFIRM (local) if (!check.shouldCompact) { runtime.diagCtxNoCompact++; + if (config.recallTailInject && (runtime.pendingRecallBlock || runtime.pendingMemoryRecallBlock)) + return { messages: withRecallTail(runtime, messages) }; return; } gatePassed = true; } if (!gatePassed) { runtime.diagCtxFastGate++; + if (config.recallTailInject && (runtime.pendingRecallBlock || runtime.pendingMemoryRecallBlock)) + return { messages: withRecallTail(runtime, messages) }; return; } @@ -218,6 +353,8 @@ export function registerContextHandler( const now = Date.now(); if (now < runtime.debounceUntil) { runtime.diagCtxDebounce++; + if (config.recallTailInject && (runtime.pendingRecallBlock || runtime.pendingMemoryRecallBlock)) + return { messages: withRecallTail(runtime, messages) }; return; } runtime.debounceUntil = now + 2000; @@ -228,12 +365,14 @@ export function registerContextHandler( // cut are reused verbatim) instead of regenerating a fresh summary + // sentinel every fire, which invalidated the prefix on every other turn // (the alternating cache-miss regression). Re-compact only when context - // grew >=10% of the window (percent basis) or >=50% of the effective - // threshold (token basis, when percent is unavailable). The cached `cut` - // is only valid while the transcript grows within the epoch — it is - // cleared on session_compact (durable truncation) + resetRuntime, so we - // never replay a stale cut into a truncated transcript (PREVENT-PI-001/002). - const RECOMPACT_PCT_DELTA = 10; + // grew >= recompactPctDelta of the window (percent basis, default 50 — + // S53-D raised it from 10, which rebuilt the prefix every 10% growth) or + // >=50% of the effective threshold (token basis, when percent is + // unavailable). The cached `cut` is only valid while the transcript grows + // within the epoch — it is cleared on session_compact (durable truncation) + // + resetRuntime, so we never replay a stale cut into a truncated + // transcript (PREVENT-PI-001/002). + const RECOMPACT_PCT_DELTA = config.recompactPctDelta; if ( runtime.trimCache && runtime.trimCache.checkpointId === runtime.rt.lastCheckpointId && @@ -250,9 +389,11 @@ export function registerContextHandler( runtime.diagLiveTrimReplays++; runtime.snapshot(ctx); // v0.8.7: shallow-copy the cached summary so pi's transformContext can't - // mutate the shared reference across replays (audit P3). + // mutate the shared reference across replays (audit P3). S53: wrap the + // replay view with the recall tail (prefix-preserving; replayed prefix + // bytes unchanged). return { - messages: [{ ...runtime.trimCache.summaryAgentMsg }, ...recent], + messages: withRecallTail(runtime, [{ ...runtime.trimCache.summaryAgentMsg }, ...recent]), }; } // else: context grew enough → fall through to re-compact (cache is stale) @@ -271,6 +412,25 @@ export function registerContextHandler( }); if (ran.skipped) { runtime.diagCtxRunSkipped++; + // S53-D/D7 cache-stability: a skipped compaction used to return nothing + // → pi sent the FULL transcript for that call, a guaranteed cache miss. + // Fall back to the cached trim replay when it is still valid (same + // guards as the replay above) — never to the full transcript. This is + // the v0.8.6 design intent: the replay cache exists to stabilize the KV + // prefix, and a skip is precisely when stability matters most. + if ( + runtime.trimCache && + runtime.trimCache.checkpointId === runtime.rt.lastCheckpointId && + runtime.trimCache.cut <= messages.length + ) { + const recent = messages.slice(runtime.trimCache.cut); // guardrails-allow PREVENT-PI-002: cached `cut` sanitized once by computeLiveTrimCut; replayed verbatim within the epoch. + runtime.diagLiveTrimFires++; + runtime.diagLiveTrimReplays++; + runtime.snapshot(ctx); + return { + messages: withRecallTail(runtime, [{ ...runtime.trimCache.summaryAgentMsg }, ...recent]), + }; + } return; } @@ -373,7 +533,11 @@ export function registerContextHandler( if (config.raceGuardStrict) { const stamp = runtime.rt.lastNativeCompactAt; const liveSid = runtime.rt.sessionId; - setTimeout(() => { + // RT2 (audit): track the timer so reset/dispose can cancel it. + if (runtime.pendingDurableTrimTimer) + clearTimeout(runtime.pendingDurableTrimTimer); + runtime.pendingDurableTrimTimer = setTimeout(() => { + runtime.pendingDurableTrimTimer = null; try { if (runtime.rt.sessionId !== liveSid) return; // session reset const since2 = Date.now() - (runtime.rt.lastNativeCompactAt ?? 0); @@ -480,7 +644,7 @@ export function registerContextHandler( ctxPct: pct, ctxTokens: usage?.tokens ?? null, }); - return { messages: [summaryAgentMsg, ...recent] }; + return { messages: withRecallTail(runtime, [summaryAgentMsg, ...recent]) }; } catch { runtime.diagCtxThrown++; return; // non-fatal: no trim this call; the next context event retries diff --git a/extensions/mega-events/perf-handler.ts b/extensions/mega-events/perf-handler.ts index 4cb35bf..2cece55 100644 --- a/extensions/mega-events/perf-handler.ts +++ b/extensions/mega-events/perf-handler.ts @@ -75,6 +75,9 @@ export function registerPerfHandler( hitPct, { input: u.input, cacheRead: u.cacheRead, cacheWrite: u.cacheWrite }, ); + // S53C: stash for the widget cachePct (snapshot.ts reads this when + // MEGACOMPACT_TUI_CACHE_SOURCE=provider, the default). + runtime.lastProviderCacheHitPct = hitPct; } } } catch { diff --git a/extensions/mega-events/session-handlers.ts b/extensions/mega-events/session-handlers.ts index bb241c6..c9d1b53 100644 --- a/extensions/mega-events/session-handlers.ts +++ b/extensions/mega-events/session-handlers.ts @@ -84,7 +84,12 @@ export function registerSessionHandlers( crossRepo: config.crossRepoEnabled, crossRepoCosine: config.crossRepoCosine, }); - if (!mr.empty) runtime.pendingMemoryRecallBlock = mr.block; + if (!mr.empty) { + runtime.pendingMemoryRecallBlock = mr.block; + // S53B: stage the hit provenance beside the block (flushed into + // turn_recall after the prepend actually happens). + runtime.pendingMemoryRecallHits = mr.hits; + } } catch (err) { runtime.logger.warn("memory-recall skipped", { err: String(err) }); } @@ -133,7 +138,10 @@ export function registerSessionHandlers( crossRepo: config.crossRepoEnabled, crossRepoCosine: config.crossRepoCosine, }); - if (!mr.empty) runtime.pendingMemoryRecallBlock = mr.block; + if (!mr.empty) { + runtime.pendingMemoryRecallBlock = mr.block; + runtime.pendingMemoryRecallHits = mr.hits; // S53B provenance + } } catch (err) { runtime.logger.warn("memory-recall skipped", { err: String(err) }); } @@ -172,8 +180,23 @@ export function registerSessionHandlers( const cpBlock = runtime.pendingRecallBlock; const memBlock = runtime.pendingMemoryRecallBlock; if (!cpBlock && !memBlock) return; + // S53 tail injection (default ON): the context handler appends the recall + // block as a user-role tail message (prefix-preserving). This legacy + // before_agent_start systemPrompt prepend runs ONLY when the flag is OFF, + // byte-identical to pre-S53 behavior. The block is consumed at turn_end in + // the tail path (not here) — so in the tail path we must NOT consume it + // here, or the context handler would see nothing to append. + if (config.recallTailInject) return; runtime.pendingRecallBlock = undefined; runtime.pendingMemoryRecallBlock = undefined; + // S53B/S54: the prepend is about to reach the model — mark the injection + // (prefix-break attribution) and hand memory provenance to the turn_end + // writer, which owns this turn's row. + runtime.lastRecallInjectAt = Date.now(); + runtime.lastInjectedMemoryHits = memBlock + ? runtime.pendingMemoryRecallHits + : undefined; + runtime.pendingMemoryRecallHits = undefined; const composed = [cpBlock, memBlock].filter(Boolean).join("\n\n"); return { systemPrompt: `${event.systemPrompt}\n\n${composed}` }; }); diff --git a/extensions/mega-runtime/game-state.ts b/extensions/mega-runtime/game-state.ts index a0e94ce..058afdf 100644 --- a/extensions/mega-runtime/game-state.ts +++ b/extensions/mega-runtime/game-state.ts @@ -10,7 +10,7 @@ import type { ExtensionContext } from "@earendil-works/pi-coding-agent"; import { watch } from "node:fs"; import { getGameState, type GameState } from "../../src/store/sqlite.js"; import { getTheme } from "../../src/config/themes.js"; -import { disposePerf, type PerfContext } from "./perf.js"; +import { disposePerf, disposePendingTimers, type PerfContext, type PendingTimerContext } from "./perf.js"; export interface GameWatcherLike { close(): void; @@ -72,7 +72,7 @@ export function bumpGameStateImpl(self: GameStateContext): void { * watcher (GameStateContext) plus the v0.8.8 perf cpu/mem sampling interval * (PerfContext). `MegaRuntime` satisfies this structurally. */ -export interface DisposeRuntimeContext extends GameStateContext, PerfContext {} +export interface DisposeRuntimeContext extends GameStateContext, PerfContext, PendingTimerContext {} /** S32: release the fs.watch game-state watcher AND stop the v0.8.8 perf * sampling interval. Called when the runtime is torn down (no existing @@ -86,6 +86,7 @@ export function disposeRuntimeImpl(self: DisposeRuntimeContext): void { self.gameStateWatchDir = undefined; } disposePerf(self); + disposePendingTimers(self); } export function ensureGameStateWatcherImpl(self: GameStateContext, view: GameStateViewApi): void { diff --git a/extensions/mega-runtime/perf.ts b/extensions/mega-runtime/perf.ts index c9bd5a0..462e798 100644 --- a/extensions/mega-runtime/perf.ts +++ b/extensions/mega-runtime/perf.ts @@ -15,6 +15,17 @@ export interface PerfContext { perfCpuBaseline: { user: number; sys: number } | undefined; } +/** + * RT2 (audit): the tracked deferred durable-trim timer (the setTimeout(500) + * ctx.compact() recheck armed by the agent_end durable trim, the context/ + * poisoned error handlers, and the context handler's race-guarded path). Stored + * on the runtime so resetRuntime() and dispose() can clearTimeout it, mirroring + * perfCpuInterval. Only one such recheck is ever in flight at a time. + */ +export interface PendingTimerContext { + pendingDurableTrimTimer: ReturnType | null; +} + // ---------------------------------------------------------- ensurePerfInterval /** v0.8.8: (re)start the 5s cpu/mem sampling interval (idempotent). One per @@ -58,3 +69,13 @@ export function disposePerf(ctx: PerfContext): void { ctx.perfCpuBaseline = undefined; } } + +/** RT2 (audit): cancel the in-flight deferred durable-trim recheck timer on + * teardown / session reset. Re-armed lazily by the next race-guarded path that + * calls ctx.compact(). Safe to call when none is pending. */ +export function disposePendingTimers(ctx: PendingTimerContext): void { + if (ctx.pendingDurableTrimTimer) { + clearTimeout(ctx.pendingDurableTrimTimer); + ctx.pendingDurableTrimTimer = null; + } +} diff --git a/extensions/mega-runtime/reset-runtime.ts b/extensions/mega-runtime/reset-runtime.ts index 8c809b0..e2239bf 100644 --- a/extensions/mega-runtime/reset-runtime.ts +++ b/extensions/mega-runtime/reset-runtime.ts @@ -13,6 +13,7 @@ import { normalizeSessionId } from "../../src/store.js"; import type { TickerEntry } from "./widget.js"; import type { GameState } from "../../src/store/sqlite.js"; import type { SessionRuntime } from "./helpers.js"; +import { disposePendingTimers, type PendingTimerContext } from "./perf.js"; // ---------------------------------------------------------------------- types @@ -21,7 +22,7 @@ import type { SessionRuntime } from "./helpers.js"; * `unknown` — this function only ever *clears* it, so the precise * snapshot-cache shape does not need to be imported. */ -export interface ResetRuntimeContext { +export interface ResetRuntimeContext extends PendingTimerContext { rt: SessionRuntime; trimCache: unknown; ticker: TickerEntry[]; @@ -34,6 +35,12 @@ export interface ResetRuntimeContext { pulsing: boolean; savedGoal: number; lastWhy: string | undefined; + pendingMemoryRecallHits: Array<{ memoryId: number; score: number }> | undefined; + lastInjectedMemoryHits: Array<{ memoryId: number; score: number }> | undefined; + lastRecallInjectAt: number | null; + recallInjectedThisTurn: boolean; + lastPrefixChain: string[] | null; + lastPrefixEpochId: string | null; } // --------------------------------------------------------------- resetRuntime @@ -43,6 +50,9 @@ export function resetRuntimeImpl( sessionId: string | undefined, ): void { const sid = normalizeSessionId(sessionId); + // RT2 (audit): cancel any in-flight deferred durable-trim recheck so it can't + // fire (and pin a stale ctx) after a session switch. + disposePendingTimers(self); if (self.rt.sessionId === sid && self.rt.persistedThisSession) return; // same session, keep checkpoint memory self.rt = { sessionId: sid, @@ -85,4 +95,12 @@ export function resetRuntimeImpl( // that re-binds the repo, so drop the memo too. Cheap; the next // getCachedGameState() re-queries lazily. self.cachedGameState = undefined; + // S53B/S54: per-session recall provenance + prefix-telemetry state must not + // leak across sessions (a new session's chain/epoch baseline is fresh). + self.pendingMemoryRecallHits = undefined; + self.lastInjectedMemoryHits = undefined; + self.lastRecallInjectAt = null; + self.recallInjectedThisTurn = false; + self.lastPrefixChain = null; + self.lastPrefixEpochId = null; } diff --git a/extensions/mega-runtime/runtime-snapshot.ts b/extensions/mega-runtime/runtime-snapshot.ts index d09c915..14156e1 100644 --- a/extensions/mega-runtime/runtime-snapshot.ts +++ b/extensions/mega-runtime/runtime-snapshot.ts @@ -71,6 +71,8 @@ export interface RuntimeSnapshotContext extends RuntimeHelpersContext { diagCtxFastGate: number; diagLiveTrimFires: number; diagLiveTrimReplays: number; + /** S53C: latest provider prompt-cache hit % (fed by the perf handler). */ + lastProviderCacheHitPct: number | null; // ── public methods the orchestration calls ── bindRepo(cwd: string | undefined): string; @@ -228,6 +230,7 @@ export function snapshotImpl(self: RuntimeSnapshotContext, ctx?: ExtensionContex repo, rtTokensSaved: self.rt.tokensSaved, lastCompactAt: self.rt.lastCompactAt, + lastProviderCacheHitPct: self.lastProviderCacheHitPct, ticker: self.ticker, lastWhy: self.lastWhy, tierTrace: self.tierTrace, diff --git a/extensions/mega-runtime/runtime.ts b/extensions/mega-runtime/runtime.ts index 767b85d..8cc5434 100644 --- a/extensions/mega-runtime/runtime.ts +++ b/extensions/mega-runtime/runtime.ts @@ -152,6 +152,31 @@ export class MegaRuntime { // S21: memory recall block, parallel to pendingRecallBlock. Same one-shot // semantics; composed with the checkpoint block in before_agent_start. pendingMemoryRecallBlock: string | undefined; + // S53B: ids+scores of the memories inside pendingMemoryRecallBlock — staged + // beside it, moved to lastInjectedMemoryHits when before_agent_start + // actually prepends (that's the moment of true prompt injection). + pendingMemoryRecallHits: + | Array<{ memoryId: number; score: number }> + | undefined = undefined; + // S53B: memory hits injected at the CURRENT run's start; flushed into + // turn_recall (source='memory', checkpointId `memory#`) by the turn_end + // writer, which owns the turn row for the turn the injection fed. + lastInjectedMemoryHits: + | Array<{ memoryId: number; score: number }> + | undefined = undefined; + // S54: timestamp of the last before_agent_start recall/memory prepend (the + // prepend mutates the provider-visible system prompt, so a coinciding + // prefix break is attributed to recall injection). Null when never. + lastRecallInjectAt: number | null = null; + // S53 tail injection: set true when withRecallTail() actually appended the + // staged block to a context view this turn; consumed (cleared) at turn_end. + // If a turn ends with NO context event firing, this stays false and the + // staged blocks persist for the next turn's first context event. + recallInjectedThisTurn = false; + // S54: previous context-event message digest chain + epoch id (prefix + // stability telemetry; see src/prompt/prefix-telemetry.ts). + lastPrefixChain: string[] | null = null; + lastPrefixEpochId: string | null = null; statusKey: string | undefined; // current status text for dashboard // Active model/provider (for real cost estimation). Captured from ctx.model // on model_select + session_start; persisted to SQL so cost + the dashboard @@ -187,6 +212,21 @@ export class MegaRuntime { perfProviderStart = 0; perfCpuInterval: ReturnType | null = null; perfCpuBaseline: { user: number; sys: number } | undefined; + // S53C: most recent provider prompt-cache hit % (set by the perf handler on + // turn_end alongside the cache_hit_pct sample). Null until the first turn + // with a usage block. Read by snapshot.ts for the widget cachePct when + // MEGACOMPACT_TUI_CACHE_SOURCE=provider (the default). + lastProviderCacheHitPct: number | null = null; + // RT2 (audit): tracked handle for the deferred ctx.compact() recheck timer + // (setTimeout(500)) armed by the agent_end durable trim, the context-overflow + // and poisoned-context error handlers, and the context handler's race-guarded + // path. Previously each setTimeout was untracked, pinning `ctx` on the closure + // and firing after session churn. Storing the handle lets resetRuntime() and + // dispose() clearTimeout the prior arm before a new one is queued and on + // teardown — mirroring perfCpuInterval. Only one durable-trim recheck is ever + // in flight at a time (they all gate on the same lastNativeCompactAt race + // window), so a single slot suffices. + pendingDurableTrimTimer: ReturnType | null = null; // Context tracking for the dashboard (updated in the context handler). lastCtxTokens: number | null = null; diff --git a/extensions/mega-runtime/snapshot.ts b/extensions/mega-runtime/snapshot.ts index cd6bad1..1fc3a22 100644 --- a/extensions/mega-runtime/snapshot.ts +++ b/extensions/mega-runtime/snapshot.ts @@ -65,6 +65,8 @@ export interface SnapshotInput { // Session counters rtTokensSaved: number; lastCompactAt: number | null; + /** S53C: latest provider prompt-cache hit % (null until first usage block). */ + lastProviderCacheHitPct: number | null; // Widget display fields ticker: TickerEntry[]; @@ -177,7 +179,17 @@ export function computeMegaSnapshot(p: SnapshotInput): SnapshotResult { // ── S31: game-mode state ────────────────────────────────────────────── const gs = p.getCachedGameState(); const curLevel = p.getTurnLevel(); - const cachePct = st.dedupHitRate * 100; + // S53C: the cache % users mean is the PROVIDER prompt-cache hit rate (the + // cost lever), not mega-compact's internal dedup rate. Default source is + // the provider value stashed by the perf handler, falling back to the + // dedup rate until the first turn reports usage. Flag + // MEGACOMPACT_TUI_CACHE_SOURCE=dedup restores the pre-S53C source + // byte-identically (feature-flag rule: default ON, env OFF). + const cacheSource = process.env.MEGACOMPACT_TUI_CACHE_SOURCE ?? "provider"; + const cachePct = + cacheSource === "dedup" + ? st.dedupHitRate * 100 + : (p.lastProviderCacheHitPct ?? st.dedupHitRate * 100); const widgetData: WidgetData = { version: ownVersion(), diff --git a/extensions/mega-runtime/widget.test.ts b/extensions/mega-runtime/widget.test.ts index ee29cdb..2a42764 100644 --- a/extensions/mega-runtime/widget.test.ts +++ b/extensions/mega-runtime/widget.test.ts @@ -9,7 +9,10 @@ * (b) non-transparent themes → at least one line carries '\x1b[48;' * (c) minimal mode → exactly one content line (between the two panel bars) * (d) gameMode off → no 'LVL' + no 'MEGA CACHE' - * (e) megaCacheFlare + gameMode on + cachePct>=100 → 'MEGA CACHE' text present + * (e) megaCacheFlare + gameMode on + megaCacheFlarePct>=100 → 'MEGA CACHE' text present + * (S53-C/D5: gate reads megaCacheFlarePct — the dedup rate that armed the + * flare — not cachePct, which after S53-C is the bounded 0–100 provider + * prompt-cache pct and would silently kill the flare.) * (f) every line visibleWidth <= the terminal width passed in * * Uses MEGACOMPACT_STATE_DIR + mkdtemp (G7). No pi runtime. @@ -99,6 +102,12 @@ describe("buildWidgetLines (S31)", () => { level: 1, cachePct, megaCacheFlare: flare, + // S53-C/D5: the flare gate reads megaCacheFlarePct (the dedup + // hit rate that armed it — can legitimately exceed 100%), not + // cachePct (now the bounded 0–100 provider prompt-cache pct). + // The fixture arms the flare from the same dedup rate it sets as + // cachePct, so the gate fires identically to pre-D5 behavior. + megaCacheFlarePct: cachePct, }); const lines = buildWidgetLines(wd, WIDTH, 0); const body = contentLines(lines); diff --git a/extensions/mega-runtime/widget.ts b/extensions/mega-runtime/widget.ts index 6549bc5..f7556f6 100644 --- a/extensions/mega-runtime/widget.ts +++ b/extensions/mega-runtime/widget.ts @@ -76,7 +76,11 @@ export function buildWidgetLines( const accent = themeAnsi(wd.theme, "accent"); const mega = themeAnsi(wd.theme, "mega"); const megaFlare = - wd.gameMode && wd.megaCacheFlare && cachePct >= 100 + // S53-C/D5: gate the dedup flare on megaCacheFlarePct (the dedup hit + // rate that armed it, which legitimately exceeds 100%), NOT on cachePct — + // after S53-C, cachePct is the provider prompt-cache hit pct (bounded + // 0–100, practically never 100), which silently killed the flare. + wd.gameMode && wd.megaCacheFlare && (wd.megaCacheFlarePct ?? 0) >= 100 ? ` ${mega}MEGA CACHE${sgrReset(mega)}` : ""; const body = @@ -100,7 +104,9 @@ export function buildWidgetLines( ? `${themeAnsi(wd.theme, "accent")}${wd.gameMode && wd.levelUpFlare ? "\x1b[5m" : ""}LVL ${wd.level ?? 1}${wd.gameMode && wd.levelUpFlare ? "\x1b[0m" : ""}${sgrReset(themeAnsi(wd.theme, "accent"))} ` : ""; const megaFlareSuffix = - wd.gameMode && wd.megaCacheFlare && (wd.cachePct ?? 0) >= 100 + // S53-C/D5: gate on megaCacheFlarePct (dedup hit rate that armed the + // flare), not cachePct (now the provider prompt-cache pct, bounded 0–100). + wd.gameMode && wd.megaCacheFlare && (wd.megaCacheFlarePct ?? 0) >= 100 ? `${sep}${themeAnsi(wd.theme, "mega")}MEGA CACHE! (oops, you cached so hard the dedup caught fire)${sgrReset(themeAnsi(wd.theme, "mega"))}` : ""; // Build one long content line — let terminal wrap it naturally diff --git a/package.json b/package.json index f316c21..3531ab1 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,12 @@ "extensions/dashboard-client/dist", "src", "README.md", - "LICENSE" + "LICENSE", + "!**/*.test.ts", + "!**/*.test.js", + "!**/*.test.d.ts", + "!**/*.test.js.map", + "!extensions/dashboard-client/dist/**/*.map" ], "pi": { "extensions": [ diff --git a/src/dedup/l1-minhash.ts b/src/dedup/l1-minhash.ts index 3dd62c5..8697d0a 100644 --- a/src/dedup/l1-minhash.ts +++ b/src/dedup/l1-minhash.ts @@ -21,6 +21,10 @@ export const SHINGLE_SIZE = 5; // char 5-grams const MAX_SHINGLES = 50_000; // QA #7/#15 complexity cap const SEED = 0xdeadbeef; const P = 2147483647; // 2^31 - 1, Mersenne prime +// M4 (audit): BigInt form of P for the universal-hash reduction. `a * (x % P)` +// can reach ~2^62, which exceeds Number's safe-integer range (2^53) and silently +// loses low bits — corrupting the signature. Reducing in BigInt is exact. +const PBigInt = 2147483647n; /** Per-index universal-hashing coefficients, derived deterministically from SEED. */ function coeffA(i: number): number { @@ -69,10 +73,9 @@ export function minhashSignature(text: string): number[] { const b = coeffB(i); let min = P; for (const x of grams) { - // (a*x + b) mod p — use Number math; a,x < 2^31 so a*x < 2^62, within - // double-precision integer range (2^53) only if reduced; reduce a*x first. - const ax = (a * (x % P)) % P; - const h = (ax + b) % P; + // (a*x + b) mod p — M4 (audit): BigInt reduction keeps the product exact + // (a, x < 2^31 ⇒ a*x < 2^62, which overflows Number's 2^53 safe range). + const h = Number((BigInt(a) * BigInt(x % P) + BigInt(b)) % PBigInt); if (h < min) min = h; } sig[i] = min; diff --git a/src/dedup/l1.test.ts b/src/dedup/l1.test.ts index 838678a..9f5afed 100644 --- a/src/dedup/l1.test.ts +++ b/src/dedup/l1.test.ts @@ -55,3 +55,21 @@ test("shingles are capped at 50K (complexity guard)", () => { const sh = shingles(huge); assert.ok(sh.length <= 50_000); }); + +// M4 regression: the universal-hash reduction `(a*x + b) mod p` must not lose +// precision. The naive `(a*(x%P))%P` overflows 2^53 (a,x < 2^31 → a*x < 2^62) and +// produced a deterministic-but-wrong signature. This guards the BigInt reduction. +test("minhashSignature slots stay in [0, P) and are deterministic for boundary inputs (M4)", () => { + const P = 2147483647; + const txt = "z".repeat(1000) + " varied token stream ".repeat(200); + const a = minhashSignature(txt); + const b = minhashSignature(txt); + assert.equal(a.length, NUM_HASHES); + assert.deepEqual(a, b, "deterministic across calls"); + for (const slot of a) { + assert.ok(Number.isInteger(slot), "slot is an integer"); + assert.ok(slot >= 0 && slot < P, `slot ${slot} in [0, ${P})`); + } + const other = minhashSignature(txt + " extra differentiator"); + assert.notDeepEqual(a, other, "distinct inputs → distinct signatures"); +}); diff --git a/src/dedup/sprint12.test.ts b/src/dedup/sprint12.test.ts index 2682644..aa334a2 100644 --- a/src/dedup/sprint12.test.ts +++ b/src/dedup/sprint12.test.ts @@ -8,6 +8,7 @@ import { mmrRerank } from "./mmr.js"; import { topK } from "./topk.js"; import { cosineSimilarity, defaultEmbedder } from "../embedder.js"; import { upsertCheckpoint } from "../store/sqlite.js"; +import { setDedupStatus } from "../store/sqlite/checkpoints.js"; import type { StoredCheckpoint } from "../store.js"; const baseTmp = mkdtempSync(join(tmpdir(), "mc-s12-")); @@ -146,6 +147,54 @@ test("semDedup is idempotent (re-run removes nothing new)", () => { assert.equal(second, 0); }); +// H1 regression: add() must NOT resurrect a SemDeDup-'removed' row back to +// 'active'. Before the fix, add() dedup-matched against removed rows and +// upsertCheckpoint'd them to active, defeating SemDeDup. add() now filters +// removed rows like search() already does. We mark one row removed directly +// (setDedupStatus) and seed a DISSIMILAR survivor, so the re-added content +// matches ONLY the removed row — isolating the resurrection behavior. +test("add() does NOT resurrect a SemDeDup-removed checkpoint (H1)", () => { + const dir = join(baseTmp, `run-${counter++}`); + const s = new VectorStore({ stateDir: dir }); + const removedText = "exact content of the row that semdedup will remove"; + const otherText = "completely different subject matter about database indexing"; + seed(dir, "sess_h1", [ + { id: "chkpt_001", text: removedText, tok: 100 }, + { id: "chkpt_002", text: otherText, tok: 100 }, + ]); + // Mark chkpt_001 removed (the state SemDeDup produces). chkpt_002 stays active + // and is dissimilar, so it will NOT match the re-added removedText. + setDedupStatus("chkpt_001", "sess_h1", "removed", dir); + assert.equal( + vectorList(s, "sess_h1").find((c) => c.checkpointId === "chkpt_001")?.dedupStatus, + "removed", + ); + + // Re-add the removed row's EXACT content. Pre-fix: L0 contentHash matched the + // removed row → upsertCheckpoint resurrected it to active → deduped:true. + // Post-fix: removed rows are filtered from `all`, no match → new row. + const r = s.add({ + sessionId: "sess_h1", + summary: removedText, + regionText: removedText, + timestamp: 2, + }); + assert.equal(r.deduped, false, "add() did not dedup against the removed row"); + + // The removed row must STILL be removed (not resurrected to active). + assert.equal( + vectorList(s, "sess_h1").find((c) => c.checkpointId === "chkpt_001")?.dedupStatus, + "removed", + "removed row stays removed", + ); + // And search() still excludes it (only active rows retrievable). + const activeHits = vectorSearch(s, "sess_h1", removedText, 10); + assert.ok( + activeHits.every((h) => h.checkpoint.checkpointId !== "chkpt_001"), + "search still excludes the removed row", + ); +}); + // --- HttpEmbedder (BYO localhost backend) ---------------------------------- // Hermetic: a self-test server returns a deterministic embedding. The server // runs in an INDEPENDENT child process (its own event loop) so that when diff --git a/src/embedder-cache.test.ts b/src/embedder-cache.test.ts new file mode 100644 index 0000000..6710872 --- /dev/null +++ b/src/embedder-cache.test.ts @@ -0,0 +1,65 @@ +/** + * embedder-cache.test.ts — S53B embedder LRU cache tests. + * + * The embedder's in-process LRU is deterministic: same text → same vector, + * cache hit returns a defensive copy (mutating the caller's copy doesn't + * corrupt the cache), and the cap is respected. + */ +import { describe, it, beforeEach, afterEach } from "node:test"; +import assert from "node:assert/strict"; +import { TrigramEmbedder } from "./embedder.js"; + +describe("TrigramEmbedder LRU cache (S53B)", () => { + const origFlag = process.env.MEGACOMPACT_EMBED_CACHE; + + beforeEach(() => { + delete process.env.MEGACOMPACT_EMBED_CACHE; + }); + + afterEach(() => { + if (origFlag !== undefined) { + process.env.MEGACOMPACT_EMBED_CACHE = origFlag; + } else { + delete process.env.MEGACOMPACT_EMBED_CACHE; + } + }); + + it("returns identical vectors for repeated calls (deterministic + cached)", () => { + const e = new TrigramEmbedder(64); + const v1 = e.embed("hello world"); + const v2 = e.embed("hello world"); + assert.deepStrictEqual(v1, v2); + assert.equal(e.cacheSize, 1, "second call should hit cache (size stays 1)"); + }); + + it("cache hit returns a defensive copy (mutation safety)", () => { + const e = new TrigramEmbedder(64); + const v1 = e.embed("mutation test"); + v1[0] = 999; // mutate the caller's copy + const v2 = e.embed("mutation test"); + assert.notEqual(v2[0], 999, "cached vector must not reflect caller mutation"); + }); + + it("cache respects the cap (256 unique texts)", () => { + const e = new TrigramEmbedder(32); + // Fill beyond the cap — 300 unique texts. + for (let i = 0; i < 300; i++) { + e.embed(`unique-text-${i}`); + } + // Cache cap is 256 (FIFO). Verify the cache is capped. + assert.ok(e.cacheSize <= 256, "cache should not exceed cap"); + // The first text should have been evicted (FIFO). Re-embedding it + // won't poison the cache (it just recomputes). + const vFresh = e.embed("unique-text-0"); + const vExpected = new TrigramEmbedder(32).embed("unique-text-0"); + assert.deepStrictEqual(vFresh, vExpected, "fresh vector must be correct after eviction"); + }); + + it("MEGACOMPACT_EMBED_CACHE=0 disables caching", () => { + process.env.MEGACOMPACT_EMBED_CACHE = "0"; + const e = new TrigramEmbedder(64); + e.embed("hello"); + e.embed("hello"); + assert.equal(e.cacheSize, 0, "cache disabled → nothing stored"); + }); +}); diff --git a/src/embedder.ts b/src/embedder.ts index b78dc0c..5a773b1 100644 --- a/src/embedder.ts +++ b/src/embedder.ts @@ -59,17 +59,53 @@ function fnv1a(str: string): number { * Default embedder: character 3-gram bag-of-counts, hashed into a fixed-dim * vector, L2-normalized. Captures local lexical/structure overlap well enough * for checkpoint relevance ranking. + * + * S53B: in-process embedding cache. The embedder is deterministic, so cached + * vectors are exact; a small FIFO-capped Map avoids re-embedding identical + * texts (recall queries, consolidate/review cycles re-rank the same corpus). + * Results are COPIED on hit so a caller mutating its vector can never poison + * the cache. Flag: MEGACOMPACT_EMBED_CACHE=0/false disables (byte-identical + * pre-sprint code path); default ON. */ export class TrigramEmbedder implements Embedder { readonly dim: number; private readonly seed: number; + private static readonly CACHE_CAP = 256; + private readonly cache = new Map(); constructor(dim = 512, seed = 0x9e3779b9) { this.dim = dim; this.seed = seed >>> 0; } + /** Current embedding-cache size (test introspection only). */ + get cacheSize(): number { + return this.cache.size; + } + embed(text: string): Vector { + const flag = process.env.MEGACOMPACT_EMBED_CACHE; + const cacheOn = flag !== "0" && flag !== "false"; + if (cacheOn) { + const hit = this.cache.get(text); + if (hit) return hit.slice(); + } + const vec = this.compute(text); + if (cacheOn) { + if (this.cache.size >= TrigramEmbedder.CACHE_CAP) { + // FIFO eviction: Map preserves insertion order, so the first key is + // the oldest. Bounded (256 × dim floats) so the cache can never grow + // unbounded on long sessions. + const oldest = this.cache.keys().next().value; + if (oldest !== undefined) this.cache.delete(oldest); + } + this.cache.set(text, vec); + return vec.slice(); + } + return vec; + } + + private compute(text: string): Vector { const vec = new Array(this.dim).fill(0); const norm = text.toLowerCase().replace(/\s+/g, " "); if (norm.length === 0) return l2Normalize(vec); diff --git a/src/memoryStats.test.ts b/src/memoryStats.test.ts new file mode 100644 index 0000000..903e517 --- /dev/null +++ b/src/memoryStats.test.ts @@ -0,0 +1,132 @@ +/** + * memoryStats.test.ts — S53B durable-memory effectiveness aggregates. + * + * Seeds the `memories` table via addMemory and the `turn_recall` provenance + * table via direct SQL inserts into turns.db (openTurnStore), then exercises + * readMemoryEffectiveness and parseMemoryCheckpointId. Flag-off path verifies + * stableCount=null, topStable=[] when MEGACOMPACT_MEMORY_STABILITY is off. + */ +import { describe, it, beforeEach, afterEach } from "node:test"; +import assert from "node:assert/strict"; +import { mkdtempSync, rmSync } from "node:fs"; +import { join } from "node:path"; +import { tmpdir } from "node:os"; +import { addMemory } from "./store/sqlite/memories.js"; +import { closeStore, openStore } from "./store/sqlite/utils.js"; +import { openTurnStore, closeAllTurnDbs } from "./store/turns/connection.js"; +import { readMemoryEffectiveness, parseMemoryCheckpointId } from "./memoryStats.js"; + +let tmpDir: string; + +beforeEach(() => { + tmpDir = mkdtempSync(join(tmpdir(), "mc-memstats-")); + delete process.env.MEGACOMPACT_MEMORY_STABILITY; +}); + +afterEach(() => { + closeAllTurnDbs(); + try { closeStore(tmpDir); } catch { /* ok */ } + rmSync(tmpDir, { recursive: true, force: true }); + delete process.env.MEGACOMPACT_MEMORY_STABILITY; +}); + +function seedTurnAndRecall( + stateDir: string, + turnIndex: number, + endedDaysAgo: number, + memoryId: number, + score: number, +): void { + const db = openTurnStore(stateDir); + const endedAt = Date.now() - endedDaysAgo * 86_400_000; + db.prepare( + `INSERT INTO turns(conversation_id, session_id, turn_index, role, ended_at) + VALUES(?, ?, ?, 'user', ?)`, + ).run("conv-s53", "sess-s53", turnIndex, endedAt); + const turnId = Number( + (db.prepare("SELECT last_insert_rowid() AS id").get() as { id: number }).id, + ); + db.prepare( + `INSERT INTO turn_recall(turn_id, checkpoint_id, score, source) + VALUES(?, ?, ?, 'memory')`, + ).run(turnId, `memory#${memoryId}`, score); +} + +describe("memoryStats (S53B)", () => { + it("returns zeroed aggregates when no memories exist", () => { + const eff = readMemoryEffectiveness(null, tmpDir); + assert.equal(eff.totalMemories, 0); + assert.equal(eff.neverReferenced, 0); + assert.equal(eff.recallEvents30d, 0); + assert.equal(eff.stableCount, 0); + assert.deepEqual(eff.topStable, []); + }); + + it("counts never-referenced correctly (no last_referenced, no turn_recall)", () => { + addMemory({ content: "unreferenced memory" }, null, tmpDir); + addMemory({ content: "another one" }, null, tmpDir); + const eff = readMemoryEffectiveness(null, tmpDir); + assert.equal(eff.totalMemories, 2); + assert.equal(eff.neverReferenced, 2); + }); + + it("computes recall events + distinct memories from turn_recall", () => { + const id1 = addMemory({ content: "memory A" }, null, tmpDir); + const id2 = addMemory({ content: "memory B" }, null, tmpDir); + // Two recall events for memory#1, one for memory#2 (all within 30d). + seedTurnAndRecall(tmpDir, 0, 1, id1, 0.7); + seedTurnAndRecall(tmpDir, 1, 1, id1, 0.5); + seedTurnAndRecall(tmpDir, 2, 1, id2, 0.6); + const eff = readMemoryEffectiveness(null, tmpDir); + assert.equal(eff.recallEvents30d, 3); + assert.equal(eff.distinctRecalled30d, 2); + // avgScore = (0.7 + 0.5 + 0.6) / 3 = 0.6 + assert.ok(eff.avgRecallScore != null); + assert.ok(Math.abs(eff.avgRecallScore! - 0.6) < 0.001); + }); + + it("ignores turn_recall events older than 30 days", () => { + const id1 = addMemory({ content: "old recall" }, null, tmpDir); + seedTurnAndRecall(tmpDir, 0, 31, id1, 0.9); // 31 days ago — outside window + const eff = readMemoryEffectiveness(null, tmpDir); + assert.equal(eff.recallEvents30d, 0); + assert.equal(eff.distinctRecalled30d, 0); + assert.equal(eff.avgRecallScore, null); + }); + + it("computes stability blend + stableCount (flag ON by default)", () => { + const id1 = addMemory({ content: "stable memory" }, null, tmpDir); + addMemory({ content: "never recalled" }, null, tmpDir); + // 6 recall events for memory#1, all recent → high stability. + for (let i = 0; i < 6; i++) { + seedTurnAndRecall(tmpDir, i, 1, id1, 0.5); + } + // Manually set last_referenced to now. + const store = openStore(tmpDir); + store.prepare("UPDATE memories SET last_referenced = ? WHERE id = ?") + .run(Math.floor(Date.now() / 1000), id1); + const eff = readMemoryEffectiveness(null, tmpDir); + assert.equal(eff.stabilityEnabled, true); + assert.ok(eff.stableCount != null && eff.stableCount >= 1, "memory with 6 events should be stable"); + assert.ok(eff.topStable.length >= 1); + assert.equal(eff.topStable[0].id, id1); + // stability ≈ 0.5*0.6 + 0.3*1.0 + 0.2*0.5 = 0.70 + assert.ok(eff.topStable[0].stability >= 0.6); + }); + + it("MEGACOMPACT_MEMORY_STABILITY=0 disables stability (null stable, empty topStable)", () => { + process.env.MEGACOMPACT_MEMORY_STABILITY = "0"; + addMemory({ content: "no stability" }, null, tmpDir); + const eff = readMemoryEffectiveness(null, tmpDir); + assert.equal(eff.stabilityEnabled, false); + assert.equal(eff.stableCount, null); + assert.deepEqual(eff.topStable, []); + }); + + it("parseMemoryCheckpointId extracts the memory id", () => { + assert.equal(parseMemoryCheckpointId("memory#42"), 42); + assert.equal(parseMemoryCheckpointId("memory#0"), 0); + assert.equal(parseMemoryCheckpointId("checkpoint-abc"), null); + assert.equal(parseMemoryCheckpointId(""), null); + }); +}); diff --git a/src/memoryStats.ts b/src/memoryStats.ts new file mode 100644 index 0000000..5bd9a68 --- /dev/null +++ b/src/memoryStats.ts @@ -0,0 +1,213 @@ +/** + * memoryStats.ts — S53B durable-memory effectiveness aggregates. + * + * Answers the questions the dashboard could not answer before this sprint: + * how many memories exist, how many are actually being served ("referenced" + * = selected by auto-recall), how often recall proved useful enough to be + * recorded into turn_recall (source='memory', checkpointId `memory#`), + * and which memories are stable enough to treat as prompt-cache-friendly. + * + * Data sources (both local, PREVENT-PI-004): + * - `memories` table in the main store (store.ts openStore) — server-stamped + * `last_referenced` (auto-recall selected it) / `last_recalled_at` + * (manual /mega-conflict paths). + * - `turn_recall` in turns.db (S49 isolated store) — per-turn recall + * provenance written by the extension from S53B onward; empty before that. + * + * Pi-agnostic. Parameterized SQL only (PREVENT-002); defensive parses + * (PREVENT-001); no `any` (PREVENT-011 — store helpers here use the existing + * loosely-typed rows, narrowed at the boundary). + */ + +import { openStore } from "./store/sqlite/utils.js"; +import { openTurnStore } from "./store/turns/connection.js"; + +/** Recall-frequency normalization: 10 served-injections in 30d → freq = 1. */ +const FREQ_FULL_MARK = 10; +/** Stability blend weights (recall frequency / recency / avg score). */ +const W_FREQ = 0.5; +const W_RECENCY = 0.3; +const W_SCORE = 0.2; +/** Stability at/above which a memory counts as "stable". */ +const STABLE_THRESHOLD = 0.6; +const DAY_MS = 86_400_000; + +/** Flag gate (engineering practices: default ON, env OFF). */ +export function isMemoryStabilityEnabled(): boolean { + const v = process.env.MEGACOMPACT_MEMORY_STABILITY; + return v !== "0" && v !== "false"; +} + +/** Parse the memory id out of a turn_recall checkpointId `memory#…`. */ +export function parseMemoryCheckpointId(checkpointId: string): number | null { + const m = /^memory#(\d+)\b/.exec(checkpointId); + if (!m) return null; + const id = Number(m[1]); + return Number.isSafeInteger(id) ? id : null; +} + +/** Per-memory stability blend. `events30d` is clamped by FREQ_FULL_MARK; + * `daysSinceReferenced` uses createdAt when never referenced. Pure. */ +export function computeMemoryStability(input: { + events30d: number; + avgScore: number | null; + daysSinceReferenced: number; +}): number { + const freq = Math.min(Math.max(input.events30d, 0) / FREQ_FULL_MARK, 1); + const recency = 1 / (1 + Math.max(input.daysSinceReferenced, 0)); + const score = input.avgScore != null ? Math.min(Math.max(input.avgScore, 0), 1) : 0; + return W_FREQ * freq + W_RECENCY * recency + W_SCORE * score; +} + +export interface MemoryStabilityRow { + readonly id: number; + readonly kind: string; + readonly category: string | null; + readonly stability: number; + readonly events30d: number; + readonly avgScore: number | null; + readonly lastReferencedAt: number | null; +} + +export interface MemoryEffectiveness { + readonly totalMemories: number; + readonly neverReferenced: number; + readonly recallEvents30d: number; + readonly distinctRecalled30d: number; + readonly avgRecallScore: number | null; + readonly stableCount: number | null; + readonly topStable: MemoryStabilityRow[]; + readonly stabilityEnabled: boolean; +} + +interface RecallEventRow { + checkpoint_id: string; + score: number; +} + +interface MemoryAggRow { + id: number; + kind: string; + category: string | null; + created_at: number; + last_referenced: number | null; + last_recalled_at: number | null; +} + +/** + * Aggregate memory effectiveness for one repo scope. + * + * @param repo null → machine-wide aggregate across all repos + * @param stateDir main store location (turns.db resolves beside it) + * @param opts.now injectable clock for tests (ms epoch) + */ +export function readMemoryEffectiveness( + repo: string | null, + stateDir: string, + opts: { now?: number } = {}, +): MemoryEffectiveness { + const now = opts.now ?? Date.now(); + const windowStartMs = now - 30 * DAY_MS; + const stabilityOn = isMemoryStabilityEnabled(); + + // ── memories table (main store) ───────────────────────────────────── + const db = openStore(stateDir); + const memRows = ( + repo + ? db + .prepare( + `SELECT id, kind, category, created_at, last_referenced, last_recalled_at + FROM memories WHERE repo = ?`, + ) + .all(repo) + : db + .prepare( + `SELECT id, kind, category, created_at, last_referenced, last_recalled_at + FROM memories`, + ) + .all() + ) as unknown as MemoryAggRow[]; + + const totalMemories = memRows.length; + const neverReferenced = memRows.filter( + (r) => r.last_referenced == null && r.last_recalled_at == null, + ).length; + + // ── turn_recall memory-source events in the 30d window (turns.db) ─── + // turns.db may be absent/disabled — degrade to empty (non-fatal). + let recallRows: RecallEventRow[] = []; + try { + const tdb = openTurnStore(stateDir); + // turns.ended_at is epoch ms (extension writes Date.now()). + recallRows = tdb + .prepare( + `SELECT r.checkpoint_id AS checkpoint_id, r.score AS score + FROM turn_recall r + JOIN turns t ON t.id = r.turn_id + WHERE r.source = 'memory' AND t.ended_at >= ?`, + ) + .all(windowStartMs) as unknown as RecallEventRow[]; + } catch { + recallRows = []; + } + + const eventsById = new Map(); + for (const r of recallRows) { + const id = parseMemoryCheckpointId(r.checkpoint_id); + if (id == null || !Number.isFinite(r.score)) continue; + const cur = eventsById.get(id) ?? { n: 0, scoreSum: 0 }; + cur.n += 1; + cur.scoreSum += r.score; + eventsById.set(id, cur); + } + + let scoreTotal = 0; + let scoreN = 0; + for (const v of eventsById.values()) { + scoreTotal += v.scoreSum; + scoreN += v.n; + } + const avgRecallScore = scoreN > 0 ? scoreTotal / scoreN : null; + + // ── stability blend per memory (flagged) ──────────────────────────── + let stableCount: number | null = null; + let topStable: MemoryStabilityRow[] = []; + if (stabilityOn) { + const withStability: MemoryStabilityRow[] = memRows.map((m) => { + const ev = eventsById.get(m.id); + const lastRefSec = m.last_referenced ?? m.last_recalled_at ?? null; + // memories timestamps are unix SECONDS (see addMemory). + const refMs = lastRefSec != null ? lastRefSec * 1000 : m.created_at * 1000; + const daysSince = Math.max((now - refMs) / DAY_MS, 0); + return { + id: m.id, + kind: m.kind, + category: m.category, + stability: computeMemoryStability({ + events30d: ev?.n ?? 0, + avgScore: ev != null && ev.n > 0 ? ev.scoreSum / ev.n : null, + daysSinceReferenced: daysSince, + }), + events30d: ev?.n ?? 0, + avgScore: ev != null && ev.n > 0 ? ev.scoreSum / ev.n : null, + lastReferencedAt: lastRefSec != null ? lastRefSec * 1000 : null, + }; + }); + withStability.sort((a, b) => b.stability - a.stability); + stableCount = withStability.filter( + (r) => r.stability >= STABLE_THRESHOLD, + ).length; + topStable = withStability.slice(0, 10); + } + + return { + totalMemories, + neverReferenced, + recallEvents30d: recallRows.length, + distinctRecalled30d: eventsById.size, + avgRecallScore, + stableCount, + topStable, + stabilityEnabled: stabilityOn, + }; +} diff --git a/src/pricing.test.ts b/src/pricing.test.ts new file mode 100644 index 0000000..1eb573d --- /dev/null +++ b/src/pricing.test.ts @@ -0,0 +1,93 @@ +/** + * pricing.test.ts — S53C provider prompt-cache savings math. + * Pi-agnostic, pure. No state dir, no store. + */ +import { describe, it } from "node:test"; +import assert from "node:assert/strict"; +import { + estimateCacheSavings, + PROVIDER_CACHE_READ_MULT, + PROVIDER_CACHE_WRITE_MULT, +} from "./pricing.js"; + +const SONNET_INPUT_RATE = 3 / 1_000_000; // $3 / MTok + +describe("pricing (S53C)", () => { + it("multipliers match the Anthropic prompt-cache schedule", () => { + assert.equal(PROVIDER_CACHE_READ_MULT, 0.1); + assert.equal(PROVIDER_CACHE_WRITE_MULT, 1.25); + }); + + it("computes savings for a typical 60%-hit session", () => { + // Numbers from docs/PROMPTCACHE_FULL_GAP_ANALYSIS.md (43-sample session). + const saved = estimateCacheSavings( + { totalInput: 939, totalCacheRead: 41024, totalCacheWrite: 0 }, + SONNET_INPUT_RATE, + ); + assert.ok(saved != null); + // A turn's fresh input can be smaller than what the cache served, so + // fresh input floors at 0 and savings can floor at 0 for that window. + const withoutCache = 939 * SONNET_INPUT_RATE; + const withCache = 0 * SONNET_INPUT_RATE + 41024 * SONNET_INPUT_RATE * 0.1; + assert.ok(Math.abs(saved - Math.max(withoutCache - withCache, 0)) < 1e-12); + assert.ok(saved >= 0); + }); + + it("counts cache writes at 1.25x (write-heavy turns reduce savings)", () => { + const noWrite = estimateCacheSavings( + { totalInput: 10_000, totalCacheRead: 0, totalCacheWrite: 0 }, + SONNET_INPUT_RATE, + ); + const withWrite = estimateCacheSavings( + { totalInput: 10_000, totalCacheRead: 0, totalCacheWrite: 8_000 }, + SONNET_INPUT_RATE, + ); + assert.equal(noWrite, 0); + assert.ok(withWrite != null && withWrite === 0); // floored at 0 + }); + + it("returns null for missing/invalid rate or totals (UI shows —)", () => { + assert.equal( + estimateCacheSavings( + { totalInput: 1, totalCacheRead: 0, totalCacheWrite: 0 }, + null, + ), + null, + ); + assert.equal( + estimateCacheSavings( + { totalInput: 1, totalCacheRead: 0, totalCacheWrite: 0 }, + 0, + ), + null, + ); + assert.equal( + estimateCacheSavings( + { totalInput: -5, totalCacheRead: 0, totalCacheWrite: 0 }, + SONNET_INPUT_RATE, + ), + null, + ); + assert.equal( + estimateCacheSavings( + { + totalInput: Number.NaN, + totalCacheRead: 0, + totalCacheWrite: 0, + }, + SONNET_INPUT_RATE, + ), + null, + ); + }); + + it("zero-activity session saves exactly 0", () => { + assert.equal( + estimateCacheSavings( + { totalInput: 0, totalCacheRead: 0, totalCacheWrite: 0 }, + SONNET_INPUT_RATE, + ), + 0, + ); + }); +}); diff --git a/src/pricing.ts b/src/pricing.ts new file mode 100644 index 0000000..3b2b50e --- /dev/null +++ b/src/pricing.ts @@ -0,0 +1,66 @@ +/** + * pricing.ts — provider prompt-cache pricing math (S53C). + * + * Pure, pi-agnostic cost estimates for the dashboard Cache tab. Rates come + * from the caller (pi's model registry / the snapshot's model block); this + * module owns only the Anthropic-style cache multipliers + the savings math. + * + * Multipliers (Anthropic prompt caching, mirrored in + * extensions/dashboard-client ProviderCacheCard.tsx — keep in sync): + * cache read = 10% of the model's full input rate + * cache write = 125% of the full input rate + */ + +/** Cache-read tokens are billed at this fraction of the full input rate. */ +export const PROVIDER_CACHE_READ_MULT = 0.1; +/** Cache-write tokens are billed at this multiple of the full input rate. */ +export const PROVIDER_CACHE_WRITE_MULT = 1.25; + +/** Token totals consumed by {@link estimateCacheSavings}. */ +export interface CacheSavingsInput { + readonly totalInput: number; + readonly totalCacheRead: number; + readonly totalCacheWrite: number; +} + +/** + * Estimate USD saved by provider prompt caching vs the no-cache hypothetical. + * + * withoutCache = totalInput * rate + * withCache = freshInput * rate (fresh = totalInput − cacheRead) + * + totalCacheRead * rate * 0.1 + * + totalCacheWrite * rate * 1.25 + * saved = withoutCache − withCache (floored at 0 — a cache-heavy + * session with writes can surface as negative savings; + * that is a real signal, not display noise) + * + * Returns null when the estimate would be meaningless (non-positive rate, + * non-finite/negative totals) so the UI can render "—" instead of an + * invented number. + */ +export function estimateCacheSavings( + stats: CacheSavingsInput, + inputRatePerToken: number | null | undefined, +): number | null { + if (inputRatePerToken == null) return null; + if (!Number.isFinite(inputRatePerToken) || inputRatePerToken <= 0) + return null; + const { totalInput, totalCacheRead, totalCacheWrite } = stats; + if ( + !Number.isFinite(totalInput) || + !Number.isFinite(totalCacheRead) || + !Number.isFinite(totalCacheWrite) || + totalInput < 0 || + totalCacheRead < 0 || + totalCacheWrite < 0 + ) + return null; + const rate = inputRatePerToken; + const withoutCache = totalInput * rate; + const freshInput = Math.max(totalInput - totalCacheRead, 0); + const withCache = + freshInput * rate + + totalCacheRead * rate * PROVIDER_CACHE_READ_MULT + + totalCacheWrite * rate * PROVIDER_CACHE_WRITE_MULT; + return Math.max(withoutCache - withCache, 0); +} diff --git a/src/prompt/prefix-telemetry.test.ts b/src/prompt/prefix-telemetry.test.ts new file mode 100644 index 0000000..b37dfbb --- /dev/null +++ b/src/prompt/prefix-telemetry.test.ts @@ -0,0 +1,97 @@ +/** + * prefix-telemetry.test.ts — S54 cache prefix-break detection (pure). + */ +import { describe, it } from "node:test"; +import assert from "node:assert/strict"; +import { + diffPrefixChain, + hashPrefixMessage, + isPrefixTelemetryEnabled, +} from "./prefix-telemetry.js"; + +const noTool = () => false; + +describe("prefix-telemetry (S54)", () => { + it("first sample is the baseline — never a break", () => { + const r = diffPrefixChain(null, ["a", "b"], { + epochChanged: false, + recallInjected: false, + isToolMessage: noTool, + }); + assert.equal(r.broke, false); + assert.equal(r.cause, null); + }); + + it("append-only growth is not a break", () => { + const r = diffPrefixChain(["a", "b"], ["a", "b", "c"], { + epochChanged: false, + recallInjected: false, + isToolMessage: noTool, + }); + assert.equal(r.broke, false); + }); + + it("pure tail truncation keeps the head intact — not a break", () => { + const r = diffPrefixChain(["a", "b", "c"], ["a", "b"], { + epochChanged: false, + recallInjected: false, + isToolMessage: noTool, + }); + assert.equal(r.broke, false); + }); + + it("mid-array divergence breaks at the first differing index", () => { + const r = diffPrefixChain(["a", "b", "c"], ["a", "x", "c"], { + epochChanged: false, + recallInjected: false, + isToolMessage: noTool, + }); + assert.equal(r.broke, true); + assert.equal(r.breakIndex, 1); + assert.equal(r.cause, "other"); + }); + + it("epoch change outranks tool position", () => { + const r = diffPrefixChain(["a", "b"], ["A", "b"], { + epochChanged: true, + recallInjected: false, + isToolMessage: () => true, // everything looks tool-ish — epoch still wins + }); + assert.equal(r.cause, "epoch-change"); + }); + + it("recall injection outranks tool-insertion but not epoch-change", () => { + const r = diffPrefixChain(["a", "b"], ["a", "B"], { + epochChanged: false, + recallInjected: true, + isToolMessage: () => true, + }); + assert.equal(r.cause, "recall-injection"); + }); + + it("tool-ish message at the break point classifies tool-insertion", () => { + const r = diffPrefixChain(["a", "b", "c"], ["a", "x", "c"], { + epochChanged: false, + recallInjected: false, + isToolMessage: (i) => i === 1, + }); + assert.equal(r.cause, "tool-insertion"); + }); + + it("hashPrefixMessage is deterministic + role-sensitive", () => { + const h1 = hashPrefixMessage("user", "hello"); + const h2 = hashPrefixMessage("user", "hello"); + const h3 = hashPrefixMessage("assistant", "hello"); + assert.equal(h1, h2); + assert.notEqual(h1, h3); + assert.match(h1, /^[0-9a-f]{8}$/); + }); + + it("flag default ON; MEGACOMPACT_PREFIX_TELEMETRY=0 disables", () => { + delete process.env.MEGACOMPACT_PREFIX_TELEMETRY; + assert.equal(isPrefixTelemetryEnabled(), true); + process.env.MEGACOMPACT_PREFIX_TELEMETRY = "0"; + assert.equal(isPrefixTelemetryEnabled(), false); + delete process.env.MEGACOMPACT_PREFIX_TELEMETRY; + }); +}); diff --git a/src/prompt/prefix-telemetry.ts b/src/prompt/prefix-telemetry.ts new file mode 100644 index 0000000..cacbb17 --- /dev/null +++ b/src/prompt/prefix-telemetry.ts @@ -0,0 +1,117 @@ +/** + * prompt/prefix-telemetry.ts — S54 cache prefix-break detection (pure). + * + * Provider prompt caching pays only when each request shares a long identical + * PREFIX with the previous one (Anthropic matches from the start of the + * prompt). This module decides, per LLM call, whether the outgoing message + * array's prefix survived the previous call, and when it did not, WHY — so + * the dashboard can attribute cache misses to their real causes + * (epoch re-compaction vs tool-result insertion vs recall injection) + * instead of the single unexplained provider number. + * + * The extension hashes each outgoing message (computeContentDigest — the same + * digest the DB mirror uses, so telemetry linkage keys match downstream) and + * hands this module the two chains. All math here is pure + pi-agnostic. + * + * Persistence: one `cache_prefix_break` perf_samples row per detected break + * (written by the caller — this module performs no I/O). Flag: + * MEGACOMPACT_PREFIX_TELEMETRY=0/false disables (byte-identical OFF path in + * the caller); default ON. + */ + +export type PrefixBreakCause = + | "epoch-change" + | "recall-injection" + | "tool-insertion" + | "other"; + +export interface PrefixBreakResult { + /** True when the current array's head diverges from the previous chain. */ + readonly broke: boolean; + /** First diverging message index (valid only when broke). */ + readonly breakIndex: number; + readonly cause: PrefixBreakCause | null; + readonly prevLen: number; + readonly currLen: number; +} + +/** Flag gate (engineering practices: default ON, env OFF). */ +export function isPrefixTelemetryEnabled(): boolean { + const v = process.env.MEGACOMPACT_PREFIX_TELEMETRY; + return v !== "0" && v !== "false"; +} + +/** + * Cheap per-message digest for chain comparison (FNV-1a, 8 hex chars). + * Telemetry only ever compares consecutive in-process states, so a fast + * non-crypto hash is sufficient — and much cheaper per LLM call than the + * dual-SHA-256 content digest the DB mirror computes (S27's `Future Work: + * O(n²) hot path` note covers that heavier path). + */ +export function hashPrefixMessage(role: string, contentBytes: string): string { + let h = 0x811c9dc5; + const s = `${role}\n${contentBytes}`; + for (let i = 0; i < s.length; i++) { + h ^= s.charCodeAt(i); + h = Math.imul(h, 0x01000193); + } + return (h >>> 0).toString(16).padStart(8, "0"); +} + +/** + * Compare the previous per-message digest chain against the current one. + * + * Rules: + * - No previous chain → first sample is the baseline, never a break. + * - append-only growth (or pure truncation of the tail — rewind still leaves + * the shared head intact) is NOT a break: the provider only needs the + * current array's head to match a cached prefix, and it does. + * - A break is the first index i < min(len) with prev[i] !== curr[i]. + * + * Cause precedence: epoch-change > recall-injection > tool-insertion > other. + * An epoch roll rewrites the summary that heads the trimmed view, which is the + * strongest known breaker; a recall prepend mutates the system prompt (visible + * to the provider but outside this chain), so the marker wins over message + * position when both coincide; otherwise a tool-ish message at the break point + * (tool result / tool call) indicates insertion-style churn. + */ +export function diffPrefixChain( + prev: readonly string[] | null, + curr: readonly string[], + signals: { + readonly epochChanged: boolean; + readonly recallInjected: boolean; + readonly isToolMessage: (index: number) => boolean; + }, +): PrefixBreakResult { + const currLen = curr.length; + if (prev == null) { + return { + broke: false, + breakIndex: 0, + cause: null, + prevLen: 0, + currLen, + }; + } + const prevLen = prev.length; + const bound = Math.min(prevLen, currLen); + let breakIndex = -1; + for (let i = 0; i < bound; i++) { + if (prev[i] !== curr[i]) { + breakIndex = i; + break; + } + } + if (breakIndex < 0) { + return { broke: false, breakIndex: 0, cause: null, prevLen, currLen }; + } + const cause: PrefixBreakCause = signals.epochChanged + ? "epoch-change" + : signals.recallInjected + ? "recall-injection" + : signals.isToolMessage(breakIndex) + ? "tool-insertion" + : "other"; + return { broke: true, breakIndex, cause, prevLen, currLen }; +} diff --git a/src/recall.ts b/src/recall.ts index a63cacf..5740a30 100644 --- a/src/recall.ts +++ b/src/recall.ts @@ -351,7 +351,14 @@ export function formatMemoryRecallBlock( /** Recall top-k durable memories, format into a token-capped block. */ export async function recallMemoriesAndInline( opts: MemoryRecallInjectOptions, -): Promise<{ empty: boolean; block: string; report: string[] }> { +): Promise<{ + empty: boolean; + block: string; + report: string[]; + /** S53B: ids+scores of the memories actually included in `block` (after + * the token cap), for turn_recall provenance (checkpointId `memory#`). */ + hits: Array<{ memoryId: number; score: number }>; +}> { const limit = opts.limit ?? 5; const maxTokens = opts.recallMaxTokens ?? 0; const { recallMemories, recallMemoriesCrossRepo } = await import( @@ -379,13 +386,15 @@ export async function recallMemoriesAndInline( } } if (hits.length === 0 && crossHits.length === 0) - return { empty: true, block: "", report: [] }; + return { empty: true, block: "", report: [], hits: [] }; // Same incremental token cap pattern as checkpoint recall. const parts: string[] = []; const report: string[] = []; + const included: Array<{ memoryId: number; score: number }> = []; let blockTokens = 0; const pushHit = ( + memoryId: number, content: string, category: string | null, score: number, @@ -400,11 +409,13 @@ export async function recallMemoriesAndInline( ` • ${label} (${(score * 100).toFixed(0)}%): ${content.slice(0, 60).replace(/\n/g, " ")}…`, ); blockTokens += partTokens; + included.push({ memoryId, score }); return true; }; for (const h of hits) { if ( !pushHit( + h.memory.id, h.memory.content, h.memory.category, h.score, @@ -417,6 +428,7 @@ export async function recallMemoriesAndInline( const repoLabel = h.repoId.split(/[\\/]/).filter(Boolean).pop() ?? h.repoId; if ( !pushHit( + h.memory.id, h.memory.content, h.memory.category, h.score, @@ -426,7 +438,12 @@ export async function recallMemoriesAndInline( ) break; } - return { empty: parts.length === 0, block: parts.join("\n"), report }; + return { + empty: parts.length === 0, + block: parts.join("\n"), + report, + hits: included, + }; } /** diff --git a/src/store/sqlite/perf-samples.test.ts b/src/store/sqlite/perf-samples.test.ts index c93bc81..4d63a42 100644 --- a/src/store/sqlite/perf-samples.test.ts +++ b/src/store/sqlite/perf-samples.test.ts @@ -11,6 +11,7 @@ import { closeStore } from "./utils.js"; import { recordPerfSample, readPerfSamples, + readProviderCacheStats, PERF_KINDS, } from "./perf-samples.js"; @@ -57,9 +58,76 @@ describe("perf-samples (v0.8.8)", () => { assert.equal(after, before); }); - it("PERF_KINDS lists the 10 instrumentation kinds", () => { - assert.equal(PERF_KINDS.length, 10); + it("PERF_KINDS lists the 11 instrumentation kinds", () => { + assert.equal(PERF_KINDS.length, 11); assert.ok(PERF_KINDS.includes("db_recompute_ms")); assert.ok(PERF_KINDS.includes("cache_hit_pct")); + assert.ok(PERF_KINDS.includes("cache_prefix_break")); + }); +}); + +describe("readProviderCacheStats (S53A)", () => { + let dir: string; + before(() => { + dir = mkdtempSync(join(tmpdir(), "mc-pcache-")); + process.env.MEGACOMPACT_STATE_DIR = dir; + }); + after(() => { + closeStore(dir); + delete process.env.MEGACOMPACT_STATE_DIR; + rmSync(dir, { recursive: true, force: true }); + }); + + it("returns zeroed stats with null bounds on an empty table", () => { + const s = readProviderCacheStats(dir); + assert.equal(s.sampleCount, 0); + assert.equal(s.totalInput, 0); + assert.equal(s.totalCacheRead, 0); + assert.equal(s.totalCacheWrite, 0); + assert.equal(s.avgHitPct, 0); + assert.equal(s.latestHitPct, 0); + assert.equal(s.oldestTs, null); + assert.equal(s.newestTs, null); + }); + + it("aggregates totals + averages across cache_hit_pct samples", () => { + recordPerfSample(dir, "cache_hit_pct", 96.0, { + input: 1210, + cacheRead: 28800, + cacheWrite: 0, + }); + recordPerfSample(dir, "cache_hit_pct", 50.6, { + input: 20031, + cacheRead: 20480, + cacheWrite: 0, + }); + // Non-cache kinds must not pollute the aggregates. + recordPerfSample(dir, "tps", 42, { outputTokens: 100 }); + const s = readProviderCacheStats(dir); + assert.equal(s.sampleCount, 2); + assert.equal(s.totalInput, 21241); + assert.equal(s.totalCacheRead, 49280); + assert.equal(s.totalCacheWrite, 0); + assert.ok(Math.abs(s.avgHitPct - 73.3) < 0.001); + assert.equal(s.latestHitPct, 50.6); + assert.ok(s.oldestTs != null && s.newestTs != null); + assert.ok(s.newestTs >= s.oldestTs); + }); + + it("skips malformed meta for totals but keeps the sample for hit %", () => { + recordPerfSample(dir, "cache_hit_pct", 75, undefined); + recordPerfSample(dir, "cache_hit_pct", 25, { bogus: true }); + const s = readProviderCacheStats(dir); + assert.equal(s.sampleCount, 4); // 2 here + 2 from the previous test + assert.equal(s.avgHitPct, (96.0 + 50.6 + 75 + 25) / 4); + // Totals still only from the two well-formed metas. + assert.equal(s.totalInput, 21241); + assert.equal(s.totalCacheRead, 49280); + }); + + it("honors the sinceTs window", () => { + const future = readProviderCacheStats(dir, Date.now() + 60_000); + assert.equal(future.sampleCount, 0); + assert.equal(future.oldestTs, null); }); }); diff --git a/src/store/sqlite/perf-samples.ts b/src/store/sqlite/perf-samples.ts index 495803a..29d4d22 100644 --- a/src/store/sqlite/perf-samples.ts +++ b/src/store/sqlite/perf-samples.ts @@ -22,6 +22,7 @@ export type PerfKind = | "provider_latency_ms" | "tps" | "cache_hit_pct" + | "cache_prefix_break" | "rss_mb" | "heap_mb" | "cpu_user_ms" @@ -35,6 +36,7 @@ export const PERF_KINDS: readonly PerfKind[] = [ "provider_latency_ms", "tps", "cache_hit_pct", + "cache_prefix_break", "rss_mb", "heap_mb", "cpu_user_ms", @@ -123,3 +125,108 @@ export function readPerfSamples( } return out; } + +// --------------------------------------------------------------------------- +// S53A — provider prompt-cache aggregates (Cache tab data source) +// --------------------------------------------------------------------------- + +/** + * Aggregated provider prompt-cache stats over `cache_hit_pct` samples. + * Token totals are summed from the per-sample meta {input, cacheRead, + * cacheWrite}; rows with missing/malformed meta contribute to the hit-rate + * averages (their value) but not to the token totals. + */ +export interface ProviderCacheStats { + /** Number of cache_hit_pct samples aggregated. */ + readonly sampleCount: number; + /** Σ meta.input (fresh, uncached input tokens). */ + readonly totalInput: number; + /** Σ meta.cacheRead (tokens served from the provider cache). */ + readonly totalCacheRead: number; + /** Σ meta.cacheWrite (tokens written into the provider cache). */ + readonly totalCacheWrite: number; + /** Mean hit rate across samples (percent, 0–100). */ + readonly avgHitPct: number; + /** Most recent sample's hit rate (percent, 0–100). */ + readonly latestHitPct: number; + /** ts of the oldest sample, or null when empty. */ + readonly oldestTs: number | null; + /** ts of the newest sample, or null when empty. */ + readonly newestTs: number | null; +} + +/** Narrow a parsed meta block to its numeric token fields (PREVENT-011). */ +function metaTokens(meta: unknown): { + input: number; + cacheRead: number; + cacheWrite: number; +} | null { + if (meta == null || typeof meta !== "object") return null; + const m = meta as Record; + const input = m.input; + const cacheRead = m.cacheRead; + const cacheWrite = m.cacheWrite; + if ( + typeof input !== "number" || + typeof cacheRead !== "number" || + typeof cacheWrite !== "number" + ) + return null; + if ( + !Number.isFinite(input) || + !Number.isFinite(cacheRead) || + !Number.isFinite(cacheWrite) + ) + return null; + return { input, cacheRead, cacheWrite }; +} + +/** + * Aggregate all `cache_hit_pct` samples since `sinceTs` (default 0 = + * all-time). Unlike the rolling-window /api/perf path there is no default + * window, so the dashboard Cache tab shows lifetime provider cache data even + * when the session has been idle past the perf window. Pi-agnostic, + * parameterized (PREVENT-002), defensive meta parse (PREVENT-001). + */ +export function readProviderCacheStats( + stateDir: string = getStateDir(), + sinceTs: number = 0, +): ProviderCacheStats { + const rows = readPerfSamples(stateDir, sinceTs, "cache_hit_pct"); + if (rows.length === 0) { + return { + sampleCount: 0, + totalInput: 0, + totalCacheRead: 0, + totalCacheWrite: 0, + avgHitPct: 0, + latestHitPct: 0, + oldestTs: null, + newestTs: null, + }; + } + let totalInput = 0; + let totalCacheRead = 0; + let totalCacheWrite = 0; + let hitSum = 0; + for (const r of rows) { + hitSum += r.value; + const t = metaTokens(r.meta); + if (t) { + totalInput += t.input; + totalCacheRead += t.cacheRead; + totalCacheWrite += t.cacheWrite; + } + } + // rows are ASC by ts — last row is the most recent sample. + return { + sampleCount: rows.length, + totalInput, + totalCacheRead, + totalCacheWrite, + avgHitPct: hitSum / rows.length, + latestHitPct: rows[rows.length - 1].value, + oldestTs: rows[0].ts, + newestTs: rows[rows.length - 1].ts, + }; +} diff --git a/src/store/turns/contract-compliance.test.ts b/src/store/turns/contract-compliance.test.ts index 11bdd14..2bba424 100644 --- a/src/store/turns/contract-compliance.test.ts +++ b/src/store/turns/contract-compliance.test.ts @@ -27,6 +27,7 @@ import type { TurnRecallEntry, TurnStoreOptions, } from "./types.js"; +import { DuplicateTurnError } from "./types.js"; /** Factory function — backend test files provide the concrete constructor. */ export type StoreFactory = (options: TurnStoreOptions) => TurnStore; @@ -120,6 +121,30 @@ export function runComplianceSuite( assert.equal(retrieved!.model, "claude-sonnet-4"); }); + // ISSUE #9: a duplicate (conversationId, turnIndex) append must throw the + // typed DuplicateTurnError on BOTH backends — not a raw ERR_SQLITE_ERROR + // (Sqlite) and not a silent second row (InMemory). Runs against both + // backends via the shared suite so the contract can't silently diverge. + it("appendTurn throws DuplicateTurnError on a duplicate coordinate", () => { + const writer = store.asWriter(); + writer.appendTurn(makeTurn({ conversationId: "conv_dup", turnIndex: 0 })); + let threw = false; + let caught: unknown = null; + try { + writer.appendTurn(makeTurn({ conversationId: "conv_dup", turnIndex: 0 })); + } catch (e) { + threw = true; + caught = e; + } + assert.equal(threw, true, "duplicate append must throw"); + assert.ok(caught instanceof DuplicateTurnError, "throws the typed DuplicateTurnError"); + assert.equal((caught as DuplicateTurnError).turnIndex, 0); + assert.equal((caught as DuplicateTurnError).conversationId, "conv_dup"); + // And no second row was stored. + const rows = store.asReader().query({ conversationId: "conv_dup" }); + assert.equal(rows.length, 1, "duplicate did not store a second row"); + }); + // ── 2. appendRecall + listRecall round-trip ────────────── it("appendRecall + listRecall round-trips", () => { diff --git a/src/store/turns/index.ts b/src/store/turns/index.ts index 5b40dc6..0da3190 100644 --- a/src/store/turns/index.ts +++ b/src/store/turns/index.ts @@ -31,6 +31,9 @@ export type { export { SqliteTurnStore } from "./sqlite-store.js"; export { InMemoryTurnStore } from "./memory-store.js"; +// ISSUE #9: the typed error both backends throw on a duplicate (conversationId, +// turnIndex) append. Re-exported so callers can `instanceof DuplicateTurnError`. +export { DuplicateTurnError } from "./types.js"; // Reconciled connection layer (master shape + this branch's migration + // closed-handle eviction + env override + openTurnStore back-compat alias). diff --git a/src/store/turns/memory-store.ts b/src/store/turns/memory-store.ts index a69a6c0..8a0ace3 100644 --- a/src/store/turns/memory-store.ts +++ b/src/store/turns/memory-store.ts @@ -8,6 +8,7 @@ */ import { randomBytes } from "node:crypto"; +import { DuplicateTurnError } from "./types.js"; import type { TurnStore, TurnReader, @@ -198,13 +199,24 @@ export class InMemoryTurnStore implements TurnStore { // ── TurnWriter ────────────────────────────────────────────── appendTurn(entry: TurnEntry): TurnId { + // ISSUE #9: a turn already exists at this coordinate → throw the typed + // DuplicateTurnError, matching SqliteTurnStore. Previously InMemory + // silently stored a second row (no uniqueness check) while Sqlite threw — + // the contract diverged and in-memory tests couldn't catch a duplicate + // that explodes on SQLite. The coordinate is unique by construction. + const convIds = this.convIndex.get(entry.conversationId) ?? []; + for (const id of convIds) { + const existing = this.turns.get(id); + if (existing?.entry.turnIndex === entry.turnIndex) { + throw new DuplicateTurnError(entry.conversationId, entry.turnIndex); + } + } const id = allocId(); const sid = normalizeSessionId(entry.sessionId); const normalized = { ...entry, sessionId: sid }; this.turns.set(id, { id, entry: normalized }); // Update indices - const convIds = this.convIndex.get(entry.conversationId) ?? []; convIds.push(id); this.convIndex.set(entry.conversationId, convIds); diff --git a/src/store/turns/sqlite-store.ts b/src/store/turns/sqlite-store.ts index 0634ff8..9a1588a 100644 --- a/src/store/turns/sqlite-store.ts +++ b/src/store/turns/sqlite-store.ts @@ -15,6 +15,7 @@ import { statSync } from "node:fs"; import { join } from "node:path"; import type { DatabaseSync } from "node:sqlite"; import { openTurnDb, closeTurnDb } from "./connection.js"; +import { DuplicateTurnError } from "./types.js"; import type { TurnStore, TurnReader, @@ -236,6 +237,17 @@ export class SqliteTurnStore implements TurnStore { appendTurn(entry: TurnEntry): TurnId { const sid = normalizeSessionId(entry.sessionId); + // ISSUE #9: a turn already exists at this coordinate → throw the typed + // DuplicateTurnError (not a raw ERR_SQLITE_ERROR from the UNIQUE + // constraint). The coordinate is unique by construction; a duplicate is a + // programming error. Pre-check keeps the SQL abstraction private to this + // impl and matches InMemoryTurnStore's behavior. + const existing = this.db + .prepare( + "SELECT id FROM turns WHERE conversation_id = ? AND turn_index = ?", + ) + .get(entry.conversationId, entry.turnIndex) as { id: number } | undefined; + if (existing) throw new DuplicateTurnError(entry.conversationId, entry.turnIndex); this.persistSessionConv(sid, entry.conversationId); this.db .prepare( diff --git a/src/store/turns/types.ts b/src/store/turns/types.ts index 2fc363a..fc0e1c1 100644 --- a/src/store/turns/types.ts +++ b/src/store/turns/types.ts @@ -101,6 +101,35 @@ export interface ConversationStats { pressureBands: Record; } +// ─── Errors ───────────────────────────────────────────────────────── + +/** + * Thrown by `appendTurn` when a turn already exists at the given + * `(conversationId, turnIndex)` coordinate. A turn index is a position in a + * conversation, so the coordinate is unique by construction — a duplicate is a + * programming error, not a data conflict. + * + * ISSUE #9: both backends MUST throw this (not a raw `ERR_SQLITE_ERROR`, and + * not silently store a second row). Previously `SqliteTurnStore` threw an + * uncaught `ERR_SQLITE_ERROR` (leaking the SQL abstraction) while + * `InMemoryTurnStore` silently appended a duplicate — the contract diverged. + * Callers (the extension's `recordTurnWrite`) already wrap `appendTurn` in + * try/catch, so this is non-fatal to the agent loop; the typed error makes the + * failure catchable and uniform across backends. + */ +export class DuplicateTurnError extends Error { + readonly conversationId: string; + readonly turnIndex: number; + constructor(conversationId: string, turnIndex: number) { + super( + `Duplicate turn: a turn already exists at (conversationId=${conversationId}, turnIndex=${turnIndex})`, + ); + this.name = "DuplicateTurnError"; + this.conversationId = conversationId; + this.turnIndex = turnIndex; + } +} + // ─── Capability interfaces ────────────────────────────────────────── /** Read-only view — dashboards, TUI, analytics. Cannot write. */ diff --git a/src/vectorStore.ts b/src/vectorStore.ts index dc33bd2..f03238a 100644 --- a/src/vectorStore.ts +++ b/src/vectorStore.ts @@ -198,7 +198,13 @@ export class VectorStore { const t0 = Date.now(); const sessionId = normalizeSessionId(input.sessionId); const regionHash = computeRegionHash(input.regionText); - const all = listCheckpoints(sessionId, this.stateDir); + // H1 (audit): exclude SemDeDup-'removed' rows so add()'s tier matching + // cannot dedup-match against a row that vectorSemDedup already collapsed, + // which (via the upsertCheckpoint in each tier) would resurrect it back to + // active. Mirrors the filter vectorSemDedup/search already apply to `all`. + const all = listCheckpoints(sessionId, this.stateDir).filter( + (cp) => cp.dedupStatus !== "removed", + ); // Honest "tokens saved" base for this region. For a deduped add the whole // original region is discarded (nothing new stored); for a new checkpoint // we persist (orig − stored). Falls back to stored when orig is unknown.