@gethelio/proxy 0.13.0 → 0.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -46,10 +46,12 @@ Two integration paths:
46
46
 
47
47
  Helio governs at the strongest grade each path physically allows, and records it per call:
48
48
 
49
- - **Structural** (stdio MCP) — Helio owns the only path to the tool; the agent cannot route around it.
49
+ - **Structural** (stdio MCP) — Helio owns the child process it spawned, so nothing on the MCP path routes around it; a co-located process that can run the same command line is outside this grade (see the note below).
50
50
  - **Network** (HTTP MCP) — structural given you control the upstream's egress.
51
51
  - **Host-enforced** (hook adapters via the [adapter API](https://github.com/gethelio/helio/blob/main/docs/adapter-api.md), e.g. OpenClaw) — for frameworks that run tools in-process and expose hooks rather than an MCP transport. The framework's hook gate enforces; Helio decides. This is a cooperative, lower grade than the proxy path, and Helio labels it as such rather than overclaiming. Helio's decisions still cannot be evicted from the agent's context or prompt-injected, and any attempt to route around them is visible in the audit trail.
52
52
 
53
+ All three grades assume the proxy's config, secret, and audit store are outside the agent's reach. In the default local install they are not: the proxy runs as the same user as the agent. [SECURITY.md](https://github.com/gethelio/helio/blob/main/SECURITY.md#process-and-filesystem-boundaries) states the boundary and the deployments that close it.
54
+
53
55
  ## Quick Start (5 minutes)
54
56
 
55
57
  ### 1. Install
@@ -152,7 +154,7 @@ No MCP server to test against? Helio ships a zero-dependency echo server you can
152
154
 
153
155
  About `dashboard.api_secret`:
154
156
 
155
- - **If you ran `npx @gethelio/proxy init`**, your `helio.yaml` already contains a generated `api_secret` (a literal 32-byte hex value, also printed when you ran `init`). It's set skip this step.
157
+ - **If you ran `npx @gethelio/proxy init`**, your `helio.yaml` already contains the SHA-256 digest of a generated secret, and `init` printed the secret itself once. Keep the printed value; it is what you log in with. Skip this step.
156
158
  - **If you authored `helio.yaml` by hand** using the `${HELIO_DASHBOARD_SECRET}` placeholder shown above, set the variable before `start`:
157
159
 
158
160
  ```bash
@@ -193,7 +195,7 @@ Either way the call appears in the dashboard with its policy decision. (`get_wea
193
195
  http://localhost:3100
194
196
  ```
195
197
 
196
- If prompted, log in with the `dashboard.api_secret` that `init` generated (also printed when you ran it).
198
+ If prompted, log in with the dashboard secret that `init` printed (the file holds only its digest).
197
199
 
198
200
  That's it. Every tool call now passes through Helio with a full audit trail, rate limits, and spend controls.
199
201
 
package/dist/cli.js CHANGED
@@ -4,7 +4,7 @@
4
4
  import { Command } from "commander";
5
5
  import { writeFile } from "fs/promises";
6
6
  import { existsSync } from "fs";
7
- import { randomBytes as randomBytes2 } from "crypto";
7
+ import { randomBytes as randomBytes3 } from "crypto";
8
8
  import { dirname, resolve } from "path";
9
9
  import { fileURLToPath } from "url";
10
10
 
@@ -574,7 +574,7 @@ function rootConfigChecks(cfg, ctx) {
574
574
  ctx.addIssue({
575
575
  code: "custom",
576
576
  path: ["dashboard", "api_secret"],
577
- message: 'dashboard.api_secret is required when any rule uses require_approval, any budget uses on_exceed: require_approval, or policies.flag_destructive or policies.on_tool_drift is "require_approval". Generate one with: `openssl rand -hex 32` and set it under `dashboard.api_secret` in your helio.yaml. (See docs/approvals.md.)'
577
+ message: 'dashboard.api_secret is required when any rule uses require_approval, any budget uses on_exceed: require_approval, or policies.flag_destructive or policies.on_tool_drift is "require_approval". Run `helio secret` and set the printed digest under `dashboard.api_secret` in your helio.yaml (a plaintext value is accepted but warned about at startup). (See docs/approvals.md.)'
578
578
  });
579
579
  }
580
580
  }
@@ -582,7 +582,7 @@ function rootConfigChecks(cfg, ctx) {
582
582
  ctx.addIssue({
583
583
  code: "custom",
584
584
  path: ["dashboard", "api_secret"],
585
- message: "dashboard.api_secret is required when dashboard.enabled is true unless dashboard.allow_open_mode is explicitly set to true. Generate one with `openssl rand -hex 32` and set it under dashboard.api_secret in helio.yaml."
585
+ message: "dashboard.api_secret is required when dashboard.enabled is true unless dashboard.allow_open_mode is explicitly set to true. Run `helio secret` and set the printed digest under dashboard.api_secret in helio.yaml."
586
586
  });
587
587
  }
588
588
  if (!requiresSecret && cfg.dashboard.enabled && !hasSecret && cfg.dashboard.allow_open_mode && !isLoopbackHost(cfg.dashboard.host)) {
@@ -948,6 +948,7 @@ function isNamedConfig(config) {
948
948
 
949
949
  // src/config/loader.ts
950
950
  import { readFile } from "fs/promises";
951
+ import { createHash } from "crypto";
951
952
  import yaml from "js-yaml";
952
953
 
953
954
  // src/util/format-zod-errors.ts
@@ -967,36 +968,42 @@ var ConfigError = class extends Error {
967
968
  }
968
969
  };
969
970
  var ENV_VAR_PATTERN = /\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g;
970
- function interpolateEnvVars(value, env = process.env) {
971
+ function interpolateTracked(value, env, path, out) {
971
972
  if (typeof value === "string") {
972
- return value.replace(ENV_VAR_PATTERN, (_match, varName) => {
973
+ let substitutions = 0;
974
+ const result = value.replace(ENV_VAR_PATTERN, (_match, varName) => {
973
975
  const envValue = env[varName];
974
976
  if (envValue === void 0) {
975
977
  throw new ConfigError(`Environment variable "${varName}" is not set`);
976
978
  }
979
+ substitutions += 1;
977
980
  return envValue;
978
981
  });
982
+ if (substitutions > 0 && out !== void 0) out.push(path.join("."));
983
+ return result;
979
984
  }
980
985
  if (Array.isArray(value)) {
981
- return value.map((item) => interpolateEnvVars(item, env));
986
+ return value.map((item, index) => interpolateTracked(item, env, [...path, String(index)], out));
982
987
  }
983
988
  if (value !== null && typeof value === "object") {
984
989
  return Object.fromEntries(
985
990
  Object.entries(value).map(([k, v]) => [
986
991
  k,
987
- interpolateEnvVars(v, env)
992
+ interpolateTracked(v, env, [...path, k], out)
988
993
  ])
989
994
  );
990
995
  }
991
996
  return value;
992
997
  }
993
- async function loadConfig(filePath, env) {
994
- let raw;
998
+ async function loadConfigWithMeta(filePath, env) {
999
+ let bytes;
995
1000
  try {
996
- raw = await readFile(filePath, "utf-8");
1001
+ bytes = await readFile(filePath);
997
1002
  } catch {
998
1003
  throw new ConfigError(`Cannot read config file: ${filePath}`);
999
1004
  }
1005
+ const sha256 = createHash("sha256").update(bytes).digest("hex");
1006
+ const raw = bytes.toString("utf-8");
1000
1007
  let parsed;
1001
1008
  try {
1002
1009
  parsed = yaml.load(raw);
@@ -1004,7 +1011,8 @@ async function loadConfig(filePath, env) {
1004
1011
  const message = err instanceof Error ? err.message : String(err);
1005
1012
  throw new ConfigError(`YAML parse error in ${filePath}: ${message}`);
1006
1013
  }
1007
- const interpolated = interpolateEnvVars(parsed, env);
1014
+ const interpolatedPaths = [];
1015
+ const interpolated = interpolateTracked(parsed, env ?? process.env, [], interpolatedPaths);
1008
1016
  const result = helioConfigSchema.safeParse(interpolated);
1009
1017
  if (!result.success) {
1010
1018
  const details = formatZodErrors(result.error).map(
@@ -1016,7 +1024,10 @@ async function loadConfig(filePath, env) {
1016
1024
  details
1017
1025
  );
1018
1026
  }
1019
- return result.data;
1027
+ return { config: result.data, sha256, interpolatedPaths };
1028
+ }
1029
+ async function loadConfig(filePath, env) {
1030
+ return (await loadConfigWithMeta(filePath, env)).config;
1020
1031
  }
1021
1032
 
1022
1033
  // src/config/watcher.ts
@@ -1518,6 +1529,26 @@ var ConfigWatcher = class {
1518
1529
  }
1519
1530
  };
1520
1531
 
1532
+ // src/auth/bearer.ts
1533
+ import { createHash as createHash2, timingSafeEqual } from "crypto";
1534
+ var BEARER_PREFIX = "Bearer ";
1535
+ var DIGEST_PATTERN = /^sha256:([0-9a-f]{64})$/;
1536
+ function isSecretDigest(value) {
1537
+ return DIGEST_PATTERN.test(value);
1538
+ }
1539
+ function secretDigest(plaintext) {
1540
+ return `sha256:${createHash2("sha256").update(plaintext, "utf-8").digest("hex")}`;
1541
+ }
1542
+ function verifyBearer(authHeader, expected) {
1543
+ if (!authHeader || !expected) return false;
1544
+ if (!authHeader.startsWith(BEARER_PREFIX)) return false;
1545
+ const presented = authHeader.slice(BEARER_PREFIX.length);
1546
+ const storedHex = DIGEST_PATTERN.exec(expected)?.[1];
1547
+ const expectedDigest = storedHex !== void 0 ? Buffer.from(storedHex, "hex") : createHash2("sha256").update(expected, "utf-8").digest();
1548
+ const actualDigest = createHash2("sha256").update(presented, "utf-8").digest();
1549
+ return timingSafeEqual(actualDigest, expectedDigest);
1550
+ }
1551
+
1521
1552
  // src/server.ts
1522
1553
  import { Hono as Hono3 } from "hono";
1523
1554
  import { serve } from "@hono/node-server";
@@ -8107,20 +8138,10 @@ import { bodyLimit } from "hono/body-limit";
8107
8138
  import { HTTPException } from "hono/http-exception";
8108
8139
  import { z as z5 } from "zod";
8109
8140
 
8110
- // src/auth/bearer.ts
8111
- import { createHash, timingSafeEqual } from "crypto";
8112
- function verifyBearer(authHeader, expected) {
8113
- if (!authHeader || !expected) return false;
8114
- const expectedHeader = `Bearer ${expected}`;
8115
- const actualDigest = createHash("sha256").update(authHeader).digest();
8116
- const expectedDigest = createHash("sha256").update(expectedHeader).digest();
8117
- return timingSafeEqual(actualDigest, expectedDigest);
8118
- }
8119
-
8120
8141
  // src/sideband/governance-api.ts
8121
8142
  import { Hono as Hono4 } from "hono";
8122
8143
  import { z as z4 } from "zod";
8123
- import { createHash as createHash2 } from "crypto";
8144
+ import { createHash as createHash3 } from "crypto";
8124
8145
  var originSchema = z4.string().regex(/^[a-z0-9_-]{1,64}$/, "origin must match ^[a-z0-9_-]{1,64}$").default("sideband");
8125
8146
  var metadataSchema = z4.record(z4.string(), z4.unknown()).nullish();
8126
8147
  var toolDefinitionSchema = z4.object({
@@ -8277,7 +8298,7 @@ function auditPayloadHash(data) {
8277
8298
  actual_amount: data.actual_amount ?? null,
8278
8299
  evidence: canonicalEvidence(data.evidence)
8279
8300
  };
8280
- return createHash2("sha256").update(canonicalize(semantic)).digest("hex");
8301
+ return createHash3("sha256").update(canonicalize(semantic)).digest("hex");
8281
8302
  }
8282
8303
  function canonicalEvidence(evidence) {
8283
8304
  if (!evidence || evidence.length === 0) return null;
@@ -11702,7 +11723,7 @@ function budgetEventsToCsv(events) {
11702
11723
  // src/dashboard/api.ts
11703
11724
  import { readFileSync } from "fs";
11704
11725
  import { join } from "path";
11705
- import { randomUUID as randomUUID8 } from "crypto";
11726
+ import { randomBytes as randomBytes2, randomUUID as randomUUID8 } from "crypto";
11706
11727
  import { Hono as Hono8 } from "hono";
11707
11728
  import { HTTPException as HTTPException2 } from "hono/http-exception";
11708
11729
  import { z as z8 } from "zod";
@@ -11711,16 +11732,16 @@ import { serveStatic } from "@hono/node-server/serve-static";
11711
11732
  import { streamSSE } from "hono/streaming";
11712
11733
 
11713
11734
  // src/dashboard/session.ts
11714
- import { createHash as createHash3, createHmac as createHmac3, randomBytes, timingSafeEqual as timingSafeEqual3 } from "crypto";
11735
+ import { createHash as createHash4, createHmac as createHmac3, randomBytes, timingSafeEqual as timingSafeEqual3 } from "crypto";
11715
11736
  var DashboardSessionStore = class {
11716
- secret;
11737
+ signingKey;
11717
11738
  ttlMs;
11718
11739
  now;
11719
11740
  records = /* @__PURE__ */ new Map();
11720
11741
  timer = null;
11721
11742
  closed = false;
11722
11743
  constructor(options) {
11723
- this.secret = options.secret;
11744
+ this.signingKey = options.signingKey;
11724
11745
  this.ttlMs = options.ttlMs ?? 8 * 60 * 60 * 1e3;
11725
11746
  this.now = options.now ?? Date.now;
11726
11747
  const cleanupIntervalMs = options.cleanupIntervalMs ?? 6e4;
@@ -11792,13 +11813,13 @@ var DashboardSessionStore = class {
11792
11813
  const id = token.slice(0, dot);
11793
11814
  const signature = token.slice(dot + 1);
11794
11815
  const expected = this.sign(id);
11795
- const actualDigest = createHash3("sha256").update(signature).digest();
11796
- const expectedDigest = createHash3("sha256").update(expected).digest();
11816
+ const actualDigest = createHash4("sha256").update(signature).digest();
11817
+ const expectedDigest = createHash4("sha256").update(expected).digest();
11797
11818
  if (!timingSafeEqual3(actualDigest, expectedDigest)) return void 0;
11798
11819
  return id;
11799
11820
  }
11800
11821
  sign(id) {
11801
- return createHmac3("sha256", this.secret).update(id).digest("base64url");
11822
+ return createHmac3("sha256", this.signingKey).update(id).digest("base64url");
11802
11823
  }
11803
11824
  };
11804
11825
 
@@ -11960,7 +11981,10 @@ function createDashboardAppWithLifecycle(deps, options) {
11960
11981
  budgets
11961
11982
  } = deps;
11962
11983
  const apiSecret = options?.apiSecret;
11963
- const sessionStore = apiSecret ? new DashboardSessionStore({ secret: apiSecret, ttlMs: SESSION_TTL_MS }) : void 0;
11984
+ const sessionStore = apiSecret ? new DashboardSessionStore({
11985
+ signingKey: randomBytes2(32).toString("hex"),
11986
+ ttlMs: SESSION_TTL_MS
11987
+ }) : void 0;
11964
11988
  const app = new Hono8();
11965
11989
  app.onError((err, c) => {
11966
11990
  if (err instanceof HTTPException2) return err.getResponse();
@@ -12543,6 +12567,17 @@ function warnIfDashboardOpenMode(config, log = console.error) {
12543
12567
  );
12544
12568
  return true;
12545
12569
  }
12570
+ function warnIfDashboardSecretLiteral(config, source, log = console.error) {
12571
+ const secret = config.dashboard.api_secret;
12572
+ if (!config.dashboard.enabled) return false;
12573
+ if (typeof secret !== "string" || secret.length === 0) return false;
12574
+ if (isSecretDigest(secret)) return false;
12575
+ if (source.interpolatedPaths.includes("dashboard.api_secret")) return false;
12576
+ log(
12577
+ `[helio] Warning: dashboard.api_secret is stored as plaintext in ${source.configPath}. Anyone who can read this file holds the operator credential and can approve tickets. Run \`helio secret\`, store the printed digest as dashboard.api_secret, and restart.`
12578
+ );
12579
+ return true;
12580
+ }
12546
12581
  function warnIfNoEnforcement(policy, log = console.error) {
12547
12582
  if (policy.rules.length > 0 || policy.defaultAction !== "allow" || policy.dryRun) return false;
12548
12583
  log(
@@ -12628,7 +12663,7 @@ function getBundledDashboardDistPath() {
12628
12663
  const assetsSubdirPath = resolve(assetsDir, "assets");
12629
12664
  return existsSync(indexPath) && existsSync(assetsSubdirPath) ? assetsDir : null;
12630
12665
  }
12631
- function renderConfigTemplate(apiSecret) {
12666
+ function renderConfigTemplate(apiSecretDigest) {
12632
12667
  return `# Helio MCP Governance Proxy configuration
12633
12668
  # Docs: https://github.com/gethelio/helio
12634
12669
 
@@ -12693,17 +12728,19 @@ upstream:
12693
12728
  # retention: 90d
12694
12729
  # include_responses: true
12695
12730
 
12696
- # Operator dashboard + approval REST API. Bound to 127.0.0.1 by default \u2014 do
12731
+ # Operator dashboard + approval REST API. Bound to 127.0.0.1 by default. Do
12697
12732
  # not change to 0.0.0.0 without putting an authenticating reverse proxy in
12698
- # front. dashboard.api_secret is the manual dashboard login secret and also
12699
- # supports machine Bearer auth for sideband API clients. Store it safely; it
12700
- # stays valid until you rotate it. Rotate by editing this file and restarting
12701
- # the proxy. Rotation invalidates active dashboard sessions.
12733
+ # front. dashboard.api_secret holds the SHA-256 digest of the dashboard
12734
+ # secret, never the secret itself: log in to the dashboard and authenticate
12735
+ # sideband API clients with the secret that \`helio init\` printed once. To
12736
+ # rotate, run \`helio secret\`, paste the new digest here, and restart the
12737
+ # proxy; active dashboard sessions are invalidated. A plaintext value is
12738
+ # still accepted.
12702
12739
  dashboard:
12703
12740
  enabled: true
12704
12741
  port: 3100
12705
12742
  host: 127.0.0.1
12706
- api_secret: "${apiSecret}"
12743
+ api_secret: "${apiSecretDigest}"
12707
12744
 
12708
12745
  # sdk:
12709
12746
  # enabled: false
@@ -12744,8 +12781,11 @@ async function governUpstream(options) {
12744
12781
  }
12745
12782
  async function startCommand(configPath, options) {
12746
12783
  let config;
12784
+ let interpolatedPaths = [];
12747
12785
  try {
12748
- config = await loadConfig(configPath);
12786
+ const loaded = await loadConfigWithMeta(configPath);
12787
+ config = loaded.config;
12788
+ interpolatedPaths = loaded.interpolatedPaths;
12749
12789
  } catch (err) {
12750
12790
  if (err instanceof ConfigError) {
12751
12791
  console.error(`Error: ${err.message}`);
@@ -12913,7 +12953,7 @@ async function startCommand(configPath, options) {
12913
12953
  if (config.sdk.enabled) {
12914
12954
  sidebandToken = process.env["HELIO_SDK_TOKEN"];
12915
12955
  if (!sidebandToken || sidebandToken.length === 0) {
12916
- sidebandToken = randomBytes2(32).toString("hex");
12956
+ sidebandToken = randomBytes3(32).toString("hex");
12917
12957
  process.env["HELIO_SDK_TOKEN"] = sidebandToken;
12918
12958
  sidebandTokenSource = "generated";
12919
12959
  } else {
@@ -12921,7 +12961,7 @@ async function startCommand(configPath, options) {
12921
12961
  }
12922
12962
  adapterToken = process.env["HELIO_ADAPTER_TOKEN"];
12923
12963
  if (!adapterToken || adapterToken.length === 0) {
12924
- adapterToken = randomBytes2(32).toString("hex");
12964
+ adapterToken = randomBytes3(32).toString("hex");
12925
12965
  process.env["HELIO_ADAPTER_TOKEN"] = adapterToken;
12926
12966
  adapterTokenSource = "generated";
12927
12967
  } else {
@@ -13028,6 +13068,7 @@ async function startCommand(configPath, options) {
13028
13068
  warnIfWebhookChannelUnreachable(config);
13029
13069
  warnIfSdkSidebandExposed(config);
13030
13070
  warnIfDashboardOpenMode(config);
13071
+ warnIfDashboardSecretLiteral(config, { configPath, interpolatedPaths });
13031
13072
  warnIfBudgetWindowExceedsRetention(config);
13032
13073
  const channelCount = config.approval.channels.length;
13033
13074
  console.error(
@@ -13127,15 +13168,22 @@ async function initCommand(outputPath, force) {
13127
13168
  console.error(`Error: ${outputPath} already exists. Use --force to overwrite.`);
13128
13169
  process.exit(1);
13129
13170
  }
13130
- const apiSecret = randomBytes2(32).toString("hex");
13131
- await writeFile(outputPath, renderConfigTemplate(apiSecret), "utf-8");
13171
+ const secret = randomBytes3(32).toString("hex");
13172
+ await writeFile(outputPath, renderConfigTemplate(secretDigest(secret)), "utf-8");
13132
13173
  console.error(`Created ${outputPath}`);
13133
13174
  console.error("");
13134
- console.error("Generated dashboard.api_secret (also stored in the file above):");
13135
- console.error(` ${apiSecret}`);
13175
+ console.error("Dashboard secret (shown once; the file stores only its SHA-256 digest):");
13176
+ console.error(` ${secret}`);
13136
13177
  console.error("");
13137
- console.error("Use this as the dashboard login secret (and optional Bearer credential");
13138
- console.error("for sideband API clients at default 127.0.0.1:3100). Rotate in-file.");
13178
+ console.error("Store it in your password manager. Use it to log in to the dashboard and");
13179
+ console.error("as the Bearer credential for sideband API clients (127.0.0.1:3100 by");
13180
+ console.error("default). If you lose it, run `helio secret`, paste the new digest into");
13181
+ console.error("dashboard.api_secret, and restart the proxy.");
13182
+ }
13183
+ function secretCommand() {
13184
+ const secret = randomBytes3(32).toString("hex");
13185
+ console.log(`secret: ${secret}`);
13186
+ console.log(`digest: ${secretDigest(secret)}`);
13139
13187
  }
13140
13188
  async function validateCommand(configPath) {
13141
13189
  try {
@@ -13321,5 +13369,8 @@ program.command("start").description("Load config and start the proxy server").o
13321
13369
  );
13322
13370
  program.command("init").description("Scaffold a helio.yaml config file with commented defaults").option("-o, --output <path>", "Output file path", DEFAULT_CONFIG_PATH).option("-f, --force", "Overwrite existing file", false).action((opts) => initCommand(opts.output, opts.force));
13323
13371
  program.command("validate").description("Validate a helio.yaml config file").option("-c, --config <path>", "Path to helio.yaml", DEFAULT_CONFIG_PATH).action((opts) => validateCommand(opts.config));
13372
+ program.command("secret").description("Generate a dashboard secret and the digest to store as dashboard.api_secret").action(() => {
13373
+ secretCommand();
13374
+ });
13324
13375
  program.command("export").description("Export audit records or a budget ledger to JSON or CSV").option("-c, --config <path>", "Path to helio.yaml", DEFAULT_CONFIG_PATH).option("-f, --format <format>", "Output format: json or csv", "json").option("--budgets <name>", "Export the named budget ledger instead of the audit trail").option("--tool <name>", "Filter by tool name").option("--decision <decision>", "Filter by policy decision").option("--reason <reason>", "Filter by block reason").option("--session <id>", "Filter by session ID").option("--upstream <name>", "Filter by upstream name").option("--from <iso>", "Start time (ISO 8601)").option("--to <iso>", "End time (ISO 8601)").option("--limit <n>", "Max records to export (up to 10000)", "1000").action((opts) => exportCommand(opts));
13325
13376
  program.parse();
@@ -125,4 +125,4 @@ Please change the parent <Route path="${j}"> to <Route path="${j==="/"?"*":`${j}
125
125
  *
126
126
  * This source code is licensed under the MIT license found in the
127
127
  * LICENSE file in the root directory of this source tree.
128
- */var MA;function CG(){if(MA)return Ve;MA=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),b=Symbol.for("react.view_transition"),S=Symbol.for("react.client.reference");function O(_){if(typeof _=="object"&&_!==null){var w=_.$$typeof;switch(w){case e:switch(_=_.type,_){case n:case l:case r:case d:case h:case b:return _;default:switch(_=_&&_.$$typeof,_){case s:case f:case v:case m:return _;case u:return _;default:return w}}case t:return w}}}return Ve.ContextConsumer=u,Ve.ContextProvider=s,Ve.Element=e,Ve.ForwardRef=f,Ve.Fragment=n,Ve.Lazy=v,Ve.Memo=m,Ve.Portal=t,Ve.Profiler=l,Ve.StrictMode=r,Ve.Suspense=d,Ve.SuspenseList=h,Ve.isContextConsumer=function(_){return O(_)===u},Ve.isContextProvider=function(_){return O(_)===s},Ve.isElement=function(_){return typeof _=="object"&&_!==null&&_.$$typeof===e},Ve.isForwardRef=function(_){return O(_)===f},Ve.isFragment=function(_){return O(_)===n},Ve.isLazy=function(_){return O(_)===v},Ve.isMemo=function(_){return O(_)===m},Ve.isPortal=function(_){return O(_)===t},Ve.isProfiler=function(_){return O(_)===l},Ve.isStrictMode=function(_){return O(_)===r},Ve.isSuspense=function(_){return O(_)===d},Ve.isSuspenseList=function(_){return O(_)===h},Ve.isValidElementType=function(_){return typeof _=="string"||typeof _=="function"||_===n||_===l||_===r||_===d||_===h||typeof _=="object"&&_!==null&&(_.$$typeof===v||_.$$typeof===m||_.$$typeof===s||_.$$typeof===u||_.$$typeof===f||_.$$typeof===S||_.getModuleId!==void 0)},Ve.typeOf=O,Ve}var DA;function TG(){return DA||(DA=1,xy.exports=CG()),xy.exports}var NG=TG(),RA=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",kA=null,Sy=null,z5=e=>{if(e===kA&&Array.isArray(Sy))return Sy;var t=[];return y.Children.forEach(e,n=>{ut(n)||(NG.isFragment(n)?t=t.concat(z5(n.props.children)):t.push(n))}),Sy=t,kA=e,t};function Nb(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(l=>RA(l)):r=[RA(t)],z5(e).forEach(l=>{var u=$i(l,"type.displayName")||$i(l,"type.name");u&&r.indexOf(u)!==-1&&n.push(l)}),n}var I5=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0,wy={},LA;function PG(){return LA||(LA=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){var l;if(typeof n!="object"||n==null)return!1;if(Object.getPrototypeOf(n)===null)return!0;if(Object.prototype.toString.call(n)!=="[object Object]"){const u=n[Symbol.toStringTag];return u==null||!((l=Object.getOwnPropertyDescriptor(n,Symbol.toStringTag))!=null&&l.writable)?!1:n.toString()===`[object ${u}]`}let r=n;for(;Object.getPrototypeOf(r)!==null;)r=Object.getPrototypeOf(r);return Object.getPrototypeOf(n)===r}e.isPlainObject=t})(wy)),wy}var Oy,zA;function MG(){return zA||(zA=1,Oy=PG().isPlainObject),Oy}var DG=MG();const RG=Qa(DG);var IA,BA,UA,$A,qA;function HA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function KA(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?HA(Object(n),!0).forEach(function(r){kG(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):HA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function kG(e,t,n){return(t=LG(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function LG(e){var t=zG(e,"string");return typeof t=="symbol"?t:t+""}function zG(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function dd(){return dd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},dd.apply(null,arguments)}function Ao(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var YA=(e,t,n,r,l)=>{var u=n-r,s;return s=dt(IA||(IA=Ao(["M ",",",""])),e,t),s+=dt(BA||(BA=Ao(["L ",",",""])),e+n,t),s+=dt(UA||(UA=Ao(["L ",",",""])),e+n-u/2,t+l),s+=dt($A||($A=Ao(["L ",",",""])),e+n-u/2-r,t+l),s+=dt(qA||(qA=Ao(["L ",","," Z"])),e,t),s},IG={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},BG=e=>{var t=Ct(e,IG),{x:n,y:r,upperWidth:l,lowerWidth:u,height:s,className:f}=t,{animationEasing:d,animationDuration:h,animationBegin:m,isUpdateAnimationActive:v}=t,b=y.useRef(null),[S,O]=y.useState(-1),_=y.useRef(l),w=y.useRef(u),j=y.useRef(s),A=y.useRef(n),N=y.useRef(r),T=hs(e,"trapezoid-");if(y.useEffect(()=>{if(b.current&&b.current.getTotalLength)try{var F=b.current.getTotalLength();F&&O(F)}catch{}},[]),n!==+n||r!==+r||l!==+l||u!==+u||s!==+s||l===0&&u===0||s===0)return null;var P=Ie("recharts-trapezoid",f);if(!v)return y.createElement("g",null,y.createElement("path",dd({},rn(t),{className:P,d:YA(n,r,l,u,s)})));var M=_.current,R=w.current,I=j.current,q=A.current,W=N.current,X="0px ".concat(S===-1?1:S,"px"),U="".concat(S,"px ").concat(S,"px"),se=JT(["strokeDasharray"],h,d);return y.createElement(ds,{animationId:T,key:T,canBegin:S>0,duration:h,easing:d,isActive:v,begin:m},F=>{var J=nt(M,l,F),z=nt(R,u,F),V=nt(I,s,F),ne=nt(q,n,F),le=nt(W,r,F);b.current&&(_.current=J,w.current=z,j.current=V,A.current=ne,N.current=le);var Q=F>0?{transition:se,strokeDasharray:U}:{strokeDasharray:X};return y.createElement("path",dd({},rn(t),{className:P,d:YA(ne,le,J,z,V),ref:b,style:KA(KA({},Q),t.style)}))})},UG=["option","shapeType","activeClassName","inActiveClassName"];function $G(e,t){if(e==null)return{};var n,r,l=qG(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function qG(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function GA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function hd(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?GA(Object(n),!0).forEach(function(r){HG(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):GA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function HG(e,t,n){return(t=KG(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function KG(e){var t=YG(e,"string");return typeof t=="symbol"?t:t+""}function YG(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function GG(e,t){return hd(hd({},t),e)}function VG(e,t){return e==="symbols"}function VA(e){var{shapeType:t,elementProps:n}=e;switch(t){case"rectangle":return y.createElement(rN,n);case"trapezoid":return y.createElement(BG,n);case"sector":return y.createElement(v0,n);case"symbols":if(VG(t))return y.createElement(Zg,n);break;case"curve":return y.createElement(Zl,n);default:return null}}function XG(e){return y.isValidElement(e)?e.props:e}function B5(e){var{option:t,shapeType:n,activeClassName:r="recharts-active-shape",inActiveClassName:l="recharts-shape"}=e,u=$G(e,UG),s;if(y.isValidElement(t))s=y.cloneElement(t,hd(hd({},u),XG(t)));else if(typeof t=="function")s=t(u,u.index);else if(RG(t)&&typeof t!="boolean"){var f=GG(t,u);s=y.createElement(VA,{shapeType:n,elementProps:f})}else{var d=u;s=y.createElement(VA,{shapeType:n,elementProps:d})}return u.isActive?y.createElement(ht,{className:r},s):y.createElement(ht,{className:l},s)}var Pb=(e,t,n)=>{var r=Xe();return(l,u)=>s=>{e==null||e(l,u,s),r(KP({activeIndex:String(u),activeDataKey:t,activeCoordinate:l.tooltipPosition,activeGraphicalItemId:n}))}},Mb=e=>{var t=Xe();return(n,r)=>l=>{e==null||e(n,r,l),t(eH())}},Db=(e,t,n)=>{var r=Xe();return(l,u)=>s=>{e==null||e(l,u,s),r(tH({activeIndex:String(u),activeDataKey:t,activeCoordinate:l.tooltipPosition,activeGraphicalItemId:n}))}};function Rb(e){var{tooltipEntrySettings:t}=e,n=Xe(),r=Jt(),l=y.useRef(null);return y.useLayoutEffect(()=>{r||(l.current===null?n(Zq(t)):l.current!==t&&n(Wq({prev:l.current,next:t})),l.current=t)},[t,n,r]),y.useLayoutEffect(()=>()=>{l.current&&(n(Qq(l.current)),l.current=null)},[n]),null}function U5(e){var{legendPayload:t}=e,n=Xe(),r=Jt(),l=y.useRef(null);return y.useLayoutEffect(()=>{r||(l.current===null?n(VT(t)):l.current!==t&&n(XT({prev:l.current,next:t})),l.current=t)},[n,r,t]),y.useLayoutEffect(()=>()=>{l.current&&(n(FT(l.current)),l.current=null)},[n]),null}function FG(e){var{legendPayload:t}=e,n=Xe(),r=pe(ke),l=y.useRef(null);return y.useLayoutEffect(()=>{r!=="centric"&&r!=="radial"||(l.current===null?n(VT(t)):l.current!==t&&n(XT({prev:l.current,next:t})),l.current=t)},[n,r,t]),y.useLayoutEffect(()=>()=>{l.current&&(n(FT(l.current)),l.current=null)},[n]),null}var _y,ZG=()=>{var[e]=y.useState(()=>Bo("uid-"));return e},WG=(_y=fR.useId)!==null&&_y!==void 0?_y:ZG;function QG(e,t){var n=WG();return t||(e?"".concat(e,"-").concat(n):n)}var JG=y.createContext(void 0),kb=e=>{var{id:t,type:n,children:r}=e,l=QG("recharts-".concat(n),t);return y.createElement(JG.Provider,{value:l},r(l))},eV={cartesianItems:[],polarItems:[]},$5=Qt({name:"graphicalItems",initialState:eV,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:et()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,l=Vn(e).cartesianItems.indexOf(n);l>-1&&(e.cartesianItems[l]=r)},prepare:et()},removeCartesianGraphicalItem:{reducer(e,t){var n=Vn(e).cartesianItems.indexOf(t.payload);n>-1&&e.cartesianItems.splice(n,1)},prepare:et()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:et()},removePolarGraphicalItem:{reducer(e,t){var n=Vn(e).polarItems.indexOf(t.payload);n>-1&&e.polarItems.splice(n,1)},prepare:et()},replacePolarGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,l=Vn(e).polarItems.indexOf(n);l>-1&&(e.polarItems[l]=r)},prepare:et()}}}),{addCartesianGraphicalItem:tV,replaceCartesianGraphicalItem:nV,removeCartesianGraphicalItem:rV,addPolarGraphicalItem:aV,removePolarGraphicalItem:iV,replacePolarGraphicalItem:lV}=$5.actions,uV=$5.reducer,oV=e=>{var t=Xe(),n=y.useRef(null);return y.useLayoutEffect(()=>{n.current===null?t(tV(e)):n.current!==e&&t(nV({prev:n.current,next:e})),n.current=e},[t,e]),y.useLayoutEffect(()=>()=>{n.current&&(t(rV(n.current)),n.current=null)},[t]),null},q5=y.memo(oV),sV=e=>{var t=Xe(),n=y.useRef(null);return y.useLayoutEffect(()=>{n.current===null?t(aV(e)):n.current!==e&&t(lV({prev:n.current,next:e})),n.current=e},[t,e]),y.useLayoutEffect(()=>()=>{n.current&&(t(iV(n.current)),n.current=null)},[t]),null},cV=y.memo(sV),fV=["key"],dV=["onMouseEnter","onClick","onMouseLeave"],hV=["id"],mV=["id"];function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Za.apply(null,arguments)}function ph(e,t){if(e==null)return{};var n,r,l=vV(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function vV(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function XA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function at(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?XA(Object(n),!0).forEach(function(r){pV(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):XA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function pV(e,t,n){return(t=yV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yV(e){var t=gV(e,"string");return typeof t=="symbol"?t:t+""}function gV(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function bV(e){var t=y.useMemo(()=>Nb(e.children,dh),[e.children]),n=pe(r=>jG(r,e.id,t));return n==null?null:y.createElement(FG,{legendPayload:n})}function xV(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(y.isValidElement(e)){var t,n=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof n=="string"?n:void 0}var{fill:r}=e;return typeof r=="string"?r:void 0}}var SV=y.memo(e=>{var{dataKey:t,nameKey:n,sectors:r,stroke:l,strokeWidth:u,fill:s,name:f,hide:d,tooltipType:h,id:m,activeShape:v}=e,b=xV(v),S=r.map(_=>{var w=_.tooltipPayload;return b==null||w==null?w:w.map(j=>at(at({},j),{},{color:b,fill:b}))}),O={dataDefinedOnItem:S,getPosition:_=>{var w;return(w=r[Number(_)])===null||w===void 0?void 0:w.tooltipPosition},settings:{stroke:l,strokeWidth:u,fill:s,dataKey:t,nameKey:n,name:du(f,t),hide:d,type:h,color:s,unit:"",graphicalItemId:m}};return y.createElement(Rb,{tooltipEntrySettings:O})}),wV=(e,t)=>e>t?"start":e<t?"end":"middle",OV=(e,t,n)=>Wt(typeof t=="function"?t(e):t,n,n*.8),_V=(e,t,n)=>{var{top:r,left:l,width:u,height:s}=t,f=aN(u,s),d=l+Wt(e.cx,u,u/2),h=r+Wt(e.cy,s,s/2),m=Wt(e.innerRadius,f,0),v=OV(n,e.outerRadius,f),b=e.maxRadius||Math.sqrt(u*u+s*s)/2;return{cx:d,cy:h,innerRadius:m,outerRadius:v,maxRadius:b}},EV=(e,t)=>{var n=kt(t-e),r=Math.min(Math.abs(t-e),360);return n*r},jV=(e,t)=>{if(y.isValidElement(e))return y.cloneElement(e,t);if(typeof e=="function")return e(t);var n=Ie("recharts-pie-label-line",typeof e!="boolean"?e.className:""),{key:r}=t,l=ph(t,fV);return y.createElement(Zl,Za({},l,{type:"linear",className:n}))},AV=(e,t,n)=>{if(y.isValidElement(e))return y.cloneElement(e,t);var r=n;if(typeof e=="function"&&(r=e(t),y.isValidElement(r)))return r;var l=Ie("recharts-pie-label-text",k5(e));return y.createElement(hh,Za({},t,{alignmentBaseline:"middle",className:l}),r)};function CV(e){var{sectors:t,props:n,showLabels:r}=e,{label:l,labelLine:u,dataKey:s}=n;if(!r||!l||!t)return null;var f=pn(n),d=Bi(l),h=Bi(u),m=typeof l=="object"&&"offsetRadius"in l&&typeof l.offsetRadius=="number"&&l.offsetRadius||20,v=t.map((b,S)=>{var O=(b.startAngle+b.endAngle)/2,_=St(b.cx,b.cy,b.outerRadius+m,O),w=at(at(at(at({},f),b),{},{stroke:"none"},d),{},{index:S,textAnchor:wV(_.x,b.cx)},_),j=at(at(at(at({},f),b),{},{fill:"none",stroke:b.fill},h),{},{index:S,points:[St(b.cx,b.cy,b.outerRadius,O),_],key:"line"});return y.createElement(yn,{zIndex:wt.label,key:"label-".concat(b.startAngle,"-").concat(b.endAngle,"-").concat(b.midAngle,"-").concat(S)},y.createElement(ht,null,u&&jV(u,j),AV(l,w,$e(b,s))))});return y.createElement(ht,{className:"recharts-pie-labels"},v)}function TV(e){var{sectors:t,props:n,showLabels:r}=e,{label:l}=n;return typeof l=="object"&&l!=null&&"position"in l?y.createElement(Ab,{label:l}):y.createElement(CV,{sectors:t,props:n,showLabels:r})}function NV(e){var{sectors:t,activeShape:n,inactiveShape:r,allOtherPieProps:l,shape:u,id:s}=e,f=pe(Fa),d=pe(bb),h=pe(l5),{onMouseEnter:m,onClick:v,onMouseLeave:b}=l,S=ph(l,dV),O=Pb(m,l.dataKey,s),_=Mb(b),w=Db(v,l.dataKey,s);return t==null||t.length===0?null:y.createElement(y.Fragment,null,t.map((j,A)=>{if((j==null?void 0:j.startAngle)===0&&(j==null?void 0:j.endAngle)===0&&t.length!==1)return null;var N=h==null||h===s,T=String(A)===f&&(d==null||l.dataKey===d)&&N,P=f?r:null,M=n&&T?n:P,R=at(at({},j),{},{stroke:j.stroke,tabIndex:-1,[DT]:A,[RT]:s});return y.createElement(ht,Za({key:"sector-".concat(j==null?void 0:j.startAngle,"-").concat(j==null?void 0:j.endAngle,"-").concat(j.midAngle,"-").concat(A),tabIndex:-1,className:"recharts-pie-sector"},is(S,j,A),{onMouseEnter:O(j,A),onMouseLeave:_(j,A),onClick:w(j,A)}),y.createElement(B5,Za({option:u??M,index:A,shapeType:"sector",isActive:T},R)))}))}function PV(e){var t,{pieSettings:n,displayedData:r,cells:l,offset:u}=e,{cornerRadius:s,startAngle:f,endAngle:d,dataKey:h,nameKey:m,tooltipType:v}=n,b=Math.abs(n.minAngle),S=EV(f,d),O=Math.abs(S),_=r.length<=1?0:(t=n.paddingAngle)!==null&&t!==void 0?t:0,w=r.filter(I=>$e(I,h,0)!==0).length,j=(O>=360?w:w-1)*_,A=r.reduce((I,q)=>{var W=$e(q,h,0);return I+(de(W)?W:0)},0),N=b>0&&A>0&&r.some(I=>{var q=$e(I,h,0),W=(de(q)?q:0)/A;return q!==0&&W*O<b}),T=N?b:0,P=O-w*T-j,M;if(A>0){var R;M=r.map((I,q)=>{var W=$e(I,h,0),X=$e(I,m,q),U=_V(n,u,I),se=(de(W)?W:0)/A,F,J=at(at({},I),l&&l[q]&&l[q].props),z=J!=null&&"fill"in J&&typeof J.fill=="string"?J.fill:n.fill;q?F=R.endAngle+kt(S)*_*(W!==0?1:0):F=f;var V=F+kt(S)*((W!==0?T:0)+se*P),ne=(F+V)/2,le=(U.innerRadius+U.outerRadius)/2,Q=[{name:X,value:W,payload:J,dataKey:h,type:v,color:z,fill:z,graphicalItemId:n.id}],D=St(U.cx,U.cy,le,ne);return R=at(at(at(at({},n.presentationProps),{},{percent:se,cornerRadius:typeof s=="string"?parseFloat(s):s,name:X,tooltipPayload:Q,midAngle:ne,middleRadius:le,tooltipPosition:D},J),U),{},{value:W,dataKey:h,startAngle:F,endAngle:V,payload:J,paddingAngle:W!==0?kt(S)*_:0}),R})}return M}function MV(e){var{showLabels:t,sectors:n,children:r}=e,l=y.useMemo(()=>!t||!n?[]:n.map(u=>({value:u.value,payload:u.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:u.cx,cy:u.cy,innerRadius:u.innerRadius,outerRadius:u.outerRadius,startAngle:u.startAngle,endAngle:u.endAngle,clockWise:!1},fill:u.fill})),[n,t]);return y.createElement(sG,{value:t?l:void 0},r)}function DV(e){var{props:t,previousSectorsRef:n,id:r}=e,{sectors:l,isAnimationActive:u,animationBegin:s,animationDuration:f,animationEasing:d,activeShape:h,inactiveShape:m,onAnimationStart:v,onAnimationEnd:b}=t,S=hs(t,"recharts-pie-"),O=n.current,[_,w]=y.useState(!1),j=y.useCallback(()=>{typeof b=="function"&&b(),w(!1)},[b]),A=y.useCallback(()=>{typeof v=="function"&&v(),w(!0)},[v]);return y.createElement(MV,{showLabels:!_,sectors:l},y.createElement(ds,{animationId:S,begin:s,duration:f,isActive:u,easing:d,onAnimationStart:A,onAnimationEnd:j,key:S},N=>{var T,P=[],M=l&&l[0],R=(T=M==null?void 0:M.startAngle)!==null&&T!==void 0?T:0;return l==null||l.forEach((I,q)=>{var W=O&&O[q],X=q>0?$i(I,"paddingAngle",0):0;if(W){var U=nt(W.endAngle-W.startAngle,I.endAngle-I.startAngle,N),se=at(at({},I),{},{startAngle:R+X,endAngle:R+U+X});P.push(se),R=se.endAngle}else{var{endAngle:F,startAngle:J}=I,z=nt(0,F-J,N),V=at(at({},I),{},{startAngle:R+X,endAngle:R+z+X});P.push(V),R=V.endAngle}}),n.current=P,y.createElement(ht,null,y.createElement(NV,{sectors:P,activeShape:h,inactiveShape:m,allOtherPieProps:t,shape:t.shape,id:r}))}),y.createElement(TV,{showLabels:!_,sectors:l,props:t}),t.children)}var RV={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:wt.area};function kV(e){var{id:t}=e,n=ph(e,hV),{hide:r,className:l,rootTabIndex:u}=e,s=y.useMemo(()=>Nb(e.children,dh),[e.children]),f=pe(m=>AG(m,t,s)),d=y.useRef(null),h=Ie("recharts-pie",l);return r||f==null?(d.current=null,y.createElement(ht,{tabIndex:u,className:h})):y.createElement(yn,{zIndex:e.zIndex},y.createElement(SV,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:f,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:t,activeShape:e.activeShape}),y.createElement(ht,{tabIndex:u,className:h},y.createElement(DV,{props:at(at({},n),{},{sectors:f}),previousSectorsRef:d,id:t})))}function LV(e){var t=Ct(e,RV),{id:n}=t,r=ph(t,mV),l=pn(r);return y.createElement(kb,{id:n,type:"pie"},u=>y.createElement(y.Fragment,null,y.createElement(cV,{type:"pie",id:u,data:r.data,dataKey:r.dataKey,hide:r.hide,angleAxisId:0,radiusAxisId:0,name:r.name,nameKey:r.nameKey,tooltipType:r.tooltipType,legendType:r.legendType,fill:r.fill,cx:r.cx,cy:r.cy,startAngle:r.startAngle,endAngle:r.endAngle,paddingAngle:r.paddingAngle,minAngle:r.minAngle,innerRadius:r.innerRadius,outerRadius:r.outerRadius,cornerRadius:r.cornerRadius,presentationProps:l,maxRadius:t.maxRadius}),y.createElement(bV,Za({},r,{id:u})),y.createElement(kV,Za({},r,{id:u}))))}var H5=LV;H5.displayName="Pie";var zV=["points"];function FA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Ey(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?FA(Object(n),!0).forEach(function(r){IV(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):FA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function IV(e,t,n){return(t=BV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BV(e){var t=UV(e,"string");return typeof t=="symbol"?t:t+""}function UV(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function md(){return md=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},md.apply(null,arguments)}function $V(e,t){if(e==null)return{};var n,r,l=qV(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function qV(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function HV(e){var{option:t,dotProps:n,className:r}=e;if(y.isValidElement(t))return y.cloneElement(t,n);if(typeof t=="function")return t(n);var l=Ie(r,typeof t!="boolean"?t.className:""),u=n??{},{points:s}=u,f=$V(u,zV);return y.createElement(P5,md({},f,{className:l}))}function KV(e,t){return e==null?!1:t?!0:e.length===1}function YV(e){var{points:t,dot:n,className:r,dotClassName:l,dataKey:u,baseProps:s,needClip:f,clipPathId:d,zIndex:h=wt.scatter}=e;if(!KV(t,n))return null;var m=I5(n),v=TL(n),b=t.map((O,_)=>{var w,j,A=Ey(Ey(Ey({r:3},s),v),{},{index:_,cx:(w=O.x)!==null&&w!==void 0?w:void 0,cy:(j=O.y)!==null&&j!==void 0?j:void 0,dataKey:u,value:O.value,payload:O.payload,points:t});return y.createElement(HV,{key:"dot-".concat(_),option:n,dotProps:A,className:l})}),S={};return f&&d!=null&&(S.clipPath="url(#clipPath-".concat(m?"":"dots-").concat(d,")")),y.createElement(yn,{zIndex:h},y.createElement(ht,md({className:r},S),b))}function ZA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function WA(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ZA(Object(n),!0).forEach(function(r){GV(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function GV(e,t,n){return(t=VV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VV(e){var t=XV(e,"string");return typeof t=="symbol"?t:t+""}function XV(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var K5=0,FV={xAxis:{},yAxis:{},zAxis:{}},Y5=Qt({name:"cartesianAxis",initialState:FV,reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=t.payload},prepare:et()},replaceXAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.xAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.xAxis[n.id],e.xAxis[r.id]=r)},prepare:et()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:et()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=t.payload},prepare:et()},replaceYAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.yAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.yAxis[n.id],e.yAxis[r.id]=r)},prepare:et()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:et()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=t.payload},prepare:et()},replaceZAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.zAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.zAxis[n.id],e.zAxis[r.id]=r)},prepare:et()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:et()},updateYAxisWidth(e,t){var{id:n,width:r}=t.payload,l=e.yAxis[n];if(l){var u,s=l.widthHistory||[];if(s.length===3&&s[0]===s[2]&&r===s[1]&&r!==l.width&&Math.abs(r-((u=s[0])!==null&&u!==void 0?u:0))<=1)return;var f=[...s,r].slice(-3);e.yAxis[n]=WA(WA({},l),{},{width:r,widthHistory:f})}}}}),{addXAxis:ZV,replaceXAxis:WV,removeXAxis:QV,addYAxis:JV,replaceYAxis:eX,removeYAxis:tX,addZAxis:KQ,replaceZAxis:YQ,removeZAxis:GQ,updateYAxisWidth:nX}=Y5.actions,rX=Y5.reducer,aX=$([Tt],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),iX=$([aX,oa,sa],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),Lb=()=>pe(iX),lX=()=>pe(FH);function QA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function jy(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?QA(Object(n),!0).forEach(function(r){uX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):QA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function uX(e,t,n){return(t=oX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oX(e){var t=sX(e,"string");return typeof t=="symbol"?t:t+""}function sX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var cX=e=>{var{point:t,childIndex:n,mainColor:r,activeDot:l,dataKey:u,clipPath:s}=e;if(l===!1||t.x==null||t.y==null)return null;var f={index:n,dataKey:u,cx:t.x,cy:t.y,r:4,fill:r??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},d=jy(jy(jy({},f),Bi(l)),Wg(l)),h;return y.isValidElement(l)?h=y.cloneElement(l,d):typeof l=="function"?h=l(d):h=y.createElement(P5,d),y.createElement(ht,{className:"recharts-active-dot",clipPath:s},h)};function JA(e){var{points:t,mainColor:n,activeDot:r,itemDataKey:l,clipPath:u,zIndex:s=wt.activeDot}=e,f=pe(Fa),d=lX();if(t==null||d==null)return null;var h=t.find(m=>d.includes(m.payload));return ut(h)?null:y.createElement(yn,{zIndex:s},y.createElement(cX,{point:h,childIndex:Number(f),mainColor:n,dataKey:l,activeDot:r,clipPath:u}))}var e2=(e,t,n)=>{var r=n??e;if(!ut(r))return Wt(r,t,0)},fX=(e,t,n)=>{var r={},l=e.filter(Qd),u=e.filter(h=>h.stackId==null),s=l.reduce((h,m)=>{var v=h[m.stackId];return v==null&&(v=[]),v.push(m),h[m.stackId]=v,h},r),f=Object.entries(s).map(h=>{var m,[v,b]=h,S=b.map(_=>_.dataKey),O=e2(t,n,(m=b[0])===null||m===void 0?void 0:m.barSize);return{stackId:v,dataKeys:S,barSize:O}}),d=u.map(h=>{var m=[h.dataKey].filter(b=>b!=null),v=e2(t,n,h.barSize);return{stackId:void 0,dataKeys:m,barSize:v}});return[...f,...d]};function t2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function uf(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?t2(Object(n),!0).forEach(function(r){dX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function dX(e,t,n){return(t=hX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hX(e){var t=mX(e,"string");return typeof t=="symbol"?t:t+""}function mX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vX(e,t,n,r,l){var u,s=r.length;if(!(s<1)){var f=Wt(e,n,0,!0),d,h=[];if(je((u=r[0])===null||u===void 0?void 0:u.barSize)){var m=!1,v=n/s,b=r.reduce((A,N)=>A+(N.barSize||0),0);b+=(s-1)*f,b>=n&&(b-=(s-1)*f,f=0),b>=n&&v>0&&(m=!0,v*=.9,b=s*v);var S=(n-b)/2>>0,O={offset:S-f,size:0};d=r.reduce((A,N)=>{var T,P={stackId:N.stackId,dataKeys:N.dataKeys,position:{offset:O.offset+O.size+f,size:m?v:(T=N.barSize)!==null&&T!==void 0?T:0}},M=[...A,P];return O=P.position,M},h)}else{var _=Wt(t,n,0,!0);n-2*_-(s-1)*f<=0&&(f=0);var w=(n-2*_-(s-1)*f)/s;w>1&&(w>>=0);var j=je(l)?Math.min(w,l):w;d=r.reduce((A,N,T)=>[...A,{stackId:N.stackId,dataKeys:N.dataKeys,position:{offset:_+(w+f)*T+(w-j)/2,size:j}}],h)}return d}}var pX=(e,t,n,r,l,u,s)=>{var f=ut(s)?t:s,d=vX(n,r,l!==u?l:u,e,f);return l!==u&&d!=null&&(d=d.map(h=>uf(uf({},h),{},{position:uf(uf({},h.position),{},{offset:h.position.offset-l/2})}))),d},yX=(e,t)=>{var n=Wd(t);if(!(!e||n==null||t==null)){var{stackId:r}=t;if(r!=null){var l=e[r];if(l){var{stackedData:u}=l;if(u)return u.find(s=>s.key===n)}}}},gX=(e,t)=>{if(!(e==null||t==null)){var n=e.find(r=>r.stackId===t.stackId&&t.dataKey!=null&&r.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function bX(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&je(e.zIndex)?e.zIndex:t}var G5=e=>{var{chartData:t}=e,n=Xe(),r=Jt();return y.useEffect(()=>r?()=>{}:(n(cA(t)),()=>{n(cA(void 0))}),[t,n,r]),null},n2={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},V5=Qt({name:"brush",initialState:n2,reducers:{setBrushSettings(e,t){return t.payload==null?n2:t.payload}}}),{setBrushSettings:VQ}=V5.actions,xX=V5.reducer;function SX(e){return(e%180+180)%180}var wX=function(t){var{width:n,height:r}=t,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=SX(l),s=u*Math.PI/180,f=Math.atan(r/n),d=s>f&&s<Math.PI-f?r/Math.sin(s):n/Math.cos(s);return Math.abs(d)},OX={dots:[],areas:[],lines:[]},X5=Qt({name:"referenceElements",initialState:OX,reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=Vn(e).dots.findIndex(r=>r===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=Vn(e).areas.findIndex(r=>r===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var n=Vn(e).lines.findIndex(r=>r===t.payload);n!==-1&&e.lines.splice(n,1)}}}),{addDot:XQ,removeDot:FQ,addArea:ZQ,removeArea:WQ,addLine:QQ,removeLine:JQ}=X5.actions,_X=X5.reducer,EX=y.createContext(void 0),jX=e=>{var{children:t}=e,[n]=y.useState("".concat(Bo("recharts"),"-clip")),r=Lb();if(r==null)return null;var{x:l,y:u,width:s,height:f}=r;return y.createElement(EX.Provider,{value:n},y.createElement("defs",null,y.createElement("clipPath",{id:n},y.createElement("rect",{x:l,y:u,height:f,width:s}))),t)};function F5(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;r<e.length;r+=t){var l=e[r];l!==void 0&&n.push(l)}return n}function AX(e,t,n){var r={width:e.width+t.width,height:e.height+t.height};return wX(r,n)}function CX(e,t,n){var r=n==="width",{x:l,y:u,width:s,height:f}=e;return t===1?{start:r?l:u,end:r?l+s:u+f}:{start:r?l+s:u+f,end:r?l:u}}function Jo(e,t,n,r,l){if(e*t<e*r||e*t>e*l)return!1;var u=n();return e*(t-e*u/2-r)>=0&&e*(t+e*u/2-l)<=0}function TX(e,t){return F5(e,t+1)}function NX(e,t,n,r,l){for(var u=(r||[]).slice(),{start:s,end:f}=t,d=0,h=1,m=s,v=function(){var O=r==null?void 0:r[d];if(O===void 0)return{v:F5(r,h)};var _=d,w,j=()=>(w===void 0&&(w=n(O,_)),w),A=O.coordinate,N=d===0||Jo(e,A,j,m,f);N||(d=0,m=s,h+=1),N&&(m=A+e*(j()/2+l),d+=h)},b;h<=u.length;)if(b=v(),b)return b.v;return[]}function PX(e,t,n,r,l){var u=(r||[]).slice(),s=u.length;if(s===0)return[];for(var{start:f,end:d}=t,h=1;h<=s;h++){for(var m=(s-1)%h,v=f,b=!0,S=function(){var T=r[_];if(T==null)return 0;var P=_,M,R=()=>(M===void 0&&(M=n(T,P)),M),I=T.coordinate,q=_===m||Jo(e,I,R,v,d);if(!q)return b=!1,1;q&&(v=I+e*(R()/2+l))},O,_=m;_<s&&(O=S(),!(O!==0&&O===1));_+=h);if(b){for(var w=[],j=m;j<s;j+=h){var A=r[j];A!=null&&w.push(A)}return w}}return[]}function r2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Ft(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?r2(Object(n),!0).forEach(function(r){MX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function MX(e,t,n){return(t=DX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function DX(e){var t=RX(e,"string");return typeof t=="symbol"?t:t+""}function RX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function kX(e,t,n,r,l){for(var u=(r||[]).slice(),s=u.length,{start:f}=t,{end:d}=t,h=function(b){var S=u[b];if(S==null)return 1;var O=S,_,w=()=>(_===void 0&&(_=n(S,b)),_);if(b===s-1){var j=e*(O.coordinate+e*w()/2-d);u[b]=O=Ft(Ft({},O),{},{tickCoord:j>0?O.coordinate-j*e:O.coordinate})}else u[b]=O=Ft(Ft({},O),{},{tickCoord:O.coordinate});if(O.tickCoord!=null){var A=Jo(e,O.tickCoord,w,f,d);A&&(d=O.tickCoord-e*(w()/2+l),u[b]=Ft(Ft({},O),{},{isShow:!0}))}},m=s-1;m>=0;m--)h(m);return u}function LX(e,t,n,r,l,u){var s=(r||[]).slice(),f=s.length,{start:d,end:h}=t;if(u){var m=r[f-1];if(m!=null){var v=n(m,f-1),b=e*(m.coordinate+e*v/2-h);if(s[f-1]=m=Ft(Ft({},m),{},{tickCoord:b>0?m.coordinate-b*e:m.coordinate}),m.tickCoord!=null){var S=Jo(e,m.tickCoord,()=>v,d,h);S&&(h=m.tickCoord-e*(v/2+l),s[f-1]=Ft(Ft({},m),{},{isShow:!0}))}}}for(var O=u?f-1:f,_=function(A){var N=s[A];if(N==null)return 1;var T=N,P,M=()=>(P===void 0&&(P=n(N,A)),P);if(A===0){var R=e*(T.coordinate-e*M()/2-d);s[A]=T=Ft(Ft({},T),{},{tickCoord:R<0?T.coordinate-R*e:T.coordinate})}else s[A]=T=Ft(Ft({},T),{},{tickCoord:T.coordinate});if(T.tickCoord!=null){var I=Jo(e,T.tickCoord,M,d,h);I&&(d=T.tickCoord+e*(M()/2+l),s[A]=Ft(Ft({},T),{},{isShow:!0}))}},w=0;w<O;w++)_(w);return s}function zb(e,t,n){var{tick:r,ticks:l,viewBox:u,minTickGap:s,orientation:f,interval:d,tickFormatter:h,unit:m,angle:v}=e;if(!l||!l.length||!r)return[];if(de(d)||fs.isSsr){var b;return(b=TX(l,de(d)?d:0))!==null&&b!==void 0?b:[]}var S=[],O=f==="top"||f==="bottom"?"width":"height",_=m&&O==="width"?Ro(m,{fontSize:t,letterSpacing:n}):{width:0,height:0},w=(P,M)=>{var R=typeof h=="function"?h(P.value,M):P.value;return O==="width"?AX(Ro(R,{fontSize:t,letterSpacing:n}),_,v):Ro(R,{fontSize:t,letterSpacing:n})[O]},j=l[0],A=l[1],N=l.length>=2&&j!=null&&A!=null?kt(A.coordinate-j.coordinate):1,T=CX(u,N,O);return d==="equidistantPreserveStart"?NX(N,T,w,l,s):d==="equidistantPreserveEnd"?PX(N,T,w,l,s):(d==="preserveStart"||d==="preserveStartEnd"?S=LX(N,T,w,l,s,d==="preserveStartEnd"):S=kX(N,T,w,l,s),S.filter(P=>P.isShow))}var zX=e=>{var{ticks:t,label:n,labelGapWithTick:r=5,tickSize:l=0,tickMargin:u=0}=e,s=0;if(t){Array.from(t).forEach(m=>{if(m){var v=m.getBoundingClientRect();v.width>s&&(s=v.width)}});var f=n?n.getBoundingClientRect().width:0,d=l+u,h=s+d+f+(n?r:0);return Math.round(h)}return 0},IX={xAxis:{},yAxis:{}},Z5=Qt({name:"renderedTicks",initialState:IX,reducers:{setRenderedTicks:(e,t)=>{var{axisType:n,axisId:r,ticks:l}=t.payload;e[n][r]=l},removeRenderedTicks:(e,t)=>{var{axisType:n,axisId:r}=t.payload;delete e[n][r]}}}),{setRenderedTicks:BX,removeRenderedTicks:UX}=Z5.actions,$X=Z5.reducer,qX=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function HX(e,t){if(e==null)return{};var n,r,l=KX(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function KX(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Xi(){return Xi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xi.apply(null,arguments)}function a2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function ft(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?a2(Object(n),!0).forEach(function(r){YX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YX(e,t,n){return(t=GX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GX(e){var t=VX(e,"string");return typeof t=="symbol"?t:t+""}function VX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ta={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:wt.axis};function XX(e){var{x:t,y:n,width:r,height:l,orientation:u,mirror:s,axisLine:f,otherSvgProps:d}=e;if(!f)return null;var h=ft(ft(ft({},d),pn(f)),{},{fill:"none"});if(u==="top"||u==="bottom"){var m=+(u==="top"&&!s||u==="bottom"&&s);h=ft(ft({},h),{},{x1:t,y1:n+m*l,x2:t+r,y2:n+m*l})}else{var v=+(u==="left"&&!s||u==="right"&&s);h=ft(ft({},h),{},{x1:t+v*r,y1:n,x2:t+v*r,y2:n+l})}return y.createElement("line",Xi({},h,{className:Ie("recharts-cartesian-axis-line",$i(f,"className"))}))}function FX(e,t,n,r,l,u,s,f,d){var h,m,v,b,S,O,_=f?-1:1,w=e.tickSize||s,j=de(e.tickCoord)?e.tickCoord:e.coordinate;switch(u){case"top":h=m=e.coordinate,b=n+ +!f*l,v=b-_*w,O=v-_*d,S=j;break;case"left":v=b=e.coordinate,m=t+ +!f*r,h=m-_*w,S=h-_*d,O=j;break;case"right":v=b=e.coordinate,m=t+ +f*r,h=m+_*w,S=h+_*d,O=j;break;default:h=m=e.coordinate,b=n+ +f*l,v=b+_*w,O=v+_*d,S=j;break}return{line:{x1:h,y1:v,x2:m,y2:b},tick:{x:S,y:O}}}function ZX(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function WX(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function QX(e){var{option:t,tickProps:n,value:r}=e,l,u=Ie(n.className,"recharts-cartesian-axis-tick-value");if(y.isValidElement(t))l=y.cloneElement(t,ft(ft({},n),{},{className:u}));else if(typeof t=="function")l=t(ft(ft({},n),{},{className:u}));else{var s="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(s=Ie(s,k5(t))),l=y.createElement(hh,Xi({},n,{className:s}),r)}return l}function JX(e){var{ticks:t,axisType:n,axisId:r}=e,l=Xe();return y.useEffect(()=>{if(r==null||n==null)return Fi;var u=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return l(BX({ticks:u,axisId:r,axisType:n})),()=>{l(UX({axisId:r,axisType:n}))}},[l,t,r,n]),null}var eF=y.forwardRef((e,t)=>{var{ticks:n=[],tick:r,tickLine:l,stroke:u,tickFormatter:s,unit:f,padding:d,tickTextProps:h,orientation:m,mirror:v,x:b,y:S,width:O,height:_,tickSize:w,tickMargin:j,fontSize:A,letterSpacing:N,getTicksConfig:T,events:P,axisType:M,axisId:R}=e,I=zb(ft(ft({},T),{},{ticks:n}),A,N),q=pn(T),W=Bi(r),X=w5(q.textAnchor)?q.textAnchor:ZX(m,v),U=WX(m,v),se={};typeof l=="object"&&(se=l);var F=ft(ft({},q),{},{fill:"none"},se),J=I.map(ne=>ft({entry:ne},FX(ne,b,S,O,_,m,w,v,j))),z=J.map(ne=>{var{entry:le,line:Q}=ne;return y.createElement(ht,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(le.value,"-").concat(le.coordinate,"-").concat(le.tickCoord)},l&&y.createElement("line",Xi({},F,Q,{className:Ie("recharts-cartesian-axis-tick-line",$i(l,"className"))})))}),V=J.map((ne,le)=>{var Q,D,{entry:K,tick:oe}=ne,ce=ft(ft(ft(ft({verticalAnchor:U},q),{},{textAnchor:X,stroke:"none",fill:u},oe),{},{index:le,payload:K,visibleTicksCount:I.length,tickFormatter:s,padding:d},h),{},{angle:(Q=(D=h==null?void 0:h.angle)!==null&&D!==void 0?D:q.angle)!==null&&Q!==void 0?Q:0}),ge=ft(ft({},ce),W);return y.createElement(ht,Xi({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(K.value,"-").concat(K.coordinate,"-").concat(K.tickCoord)},is(P,K,le)),r&&y.createElement(QX,{option:r,tickProps:ge,value:"".concat(typeof s=="function"?s(K.value,le):K.value).concat(f||"")}))});return y.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(M,"-ticks")},y.createElement(JX,{ticks:I,axisId:R,axisType:M}),V.length>0&&y.createElement(yn,{zIndex:wt.label},y.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(M,"-tick-labels"),ref:t},V)),z.length>0&&y.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(M,"-tick-lines")},z))}),tF=y.forwardRef((e,t)=>{var{axisLine:n,width:r,height:l,className:u,hide:s,ticks:f,axisType:d,axisId:h}=e,m=HX(e,qX),[v,b]=y.useState(""),[S,O]=y.useState(""),_=y.useRef(null);y.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var j;return zX({ticks:_.current,label:(j=e.labelRef)===null||j===void 0?void 0:j.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var w=y.useCallback(j=>{if(j){var A=j.getElementsByClassName("recharts-cartesian-axis-tick-value");_.current=A;var N=A[0];if(N){var T=window.getComputedStyle(N),P=T.fontSize,M=T.letterSpacing;(P!==v||M!==S)&&(b(P),O(M))}}},[v,S]);return s||r!=null&&r<=0||l!=null&&l<=0?null:y.createElement(yn,{zIndex:e.zIndex},y.createElement(ht,{className:Ie("recharts-cartesian-axis",u)},y.createElement(XX,{x:e.x,y:e.y,width:r,height:l,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:pn(e)}),y.createElement(eF,{ref:w,axisType:d,events:m,fontSize:v,getTicksConfig:e,height:e.height,letterSpacing:S,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:f,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:h}),y.createElement(XY,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},y.createElement(aG,{label:e.label,labelRef:e.labelRef}),e.children)))}),Ib=y.forwardRef((e,t)=>{var n=Ct(e,ta);return y.createElement(tF,Xi({},n,{ref:t}))});Ib.displayName="CartesianAxis";var nF=["x1","y1","x2","y2","key"],rF=["offset"],aF=["xAxisId","yAxisId"],iF=["xAxisId","yAxisId"];function i2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Zt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?i2(Object(n),!0).forEach(function(r){lF(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function lF(e,t,n){return(t=uF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uF(e){var t=oF(e,"string");return typeof t=="symbol"?t:t+""}function oF(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Mi(){return Mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mi.apply(null,arguments)}function vd(e,t){if(e==null)return{};var n,r,l=sF(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function sF(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var cF=e=>{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:n,x:r,y:l,width:u,height:s,ry:f}=e;return y.createElement("rect",{x:r,y:l,ry:f,width:u,height:s,stroke:"none",fill:t,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function W5(e){var{option:t,lineItemProps:n}=e,r;if(y.isValidElement(t))r=y.cloneElement(t,n);else if(typeof t=="function")r=t(n);else{var l,{x1:u,y1:s,x2:f,y2:d,key:h}=n,m=vd(n,nF),v=(l=pn(m))!==null&&l!==void 0?l:{},{offset:b}=v,S=vd(v,rF);r=y.createElement("line",Mi({},S,{x1:u,y1:s,x2:f,y2:d,fill:"none",key:h}))}return r}function fF(e){var{x:t,width:n,horizontal:r=!0,horizontalPoints:l}=e;if(!r||!l||!l.length)return null;var{xAxisId:u,yAxisId:s}=e,f=vd(e,aF),d=l.map((h,m)=>{var v=Zt(Zt({},f),{},{x1:t,y1:h,x2:t+n,y2:h,key:"line-".concat(m),index:m});return y.createElement(W5,{key:"line-".concat(m),option:r,lineItemProps:v})});return y.createElement("g",{className:"recharts-cartesian-grid-horizontal"},d)}function dF(e){var{y:t,height:n,vertical:r=!0,verticalPoints:l}=e;if(!r||!l||!l.length)return null;var{xAxisId:u,yAxisId:s}=e,f=vd(e,iF),d=l.map((h,m)=>{var v=Zt(Zt({},f),{},{x1:h,y1:t,x2:h,y2:t+n,key:"line-".concat(m),index:m});return y.createElement(W5,{option:r,lineItemProps:v,key:"line-".concat(m)})});return y.createElement("g",{className:"recharts-cartesian-grid-vertical"},d)}function hF(e){var{horizontalFill:t,fillOpacity:n,x:r,y:l,width:u,height:s,horizontalPoints:f,horizontal:d=!0}=e;if(!d||!t||!t.length||f==null)return null;var h=f.map(v=>Math.round(v+l-l)).sort((v,b)=>v-b);l!==h[0]&&h.unshift(0);var m=h.map((v,b)=>{var S=h[b+1],O=S==null,_=O?l+s-v:S-v;if(_<=0)return null;var w=b%t.length;return y.createElement("rect",{key:"react-".concat(b),y:v,x:r,height:_,width:u,stroke:"none",fill:t[w],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return y.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},m)}function mF(e){var{vertical:t=!0,verticalFill:n,fillOpacity:r,x:l,y:u,width:s,height:f,verticalPoints:d}=e;if(!t||!n||!n.length)return null;var h=d.map(v=>Math.round(v+l-l)).sort((v,b)=>v-b);l!==h[0]&&h.unshift(0);var m=h.map((v,b)=>{var S=h[b+1],O=S==null,_=O?l+s-v:S-v;if(_<=0)return null;var w=b%n.length;return y.createElement("rect",{key:"react-".concat(b),x:v,y:u,width:_,height:f,stroke:"none",fill:n[w],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return y.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},m)}var vF=(e,t)=>{var{xAxis:n,width:r,height:l,offset:u}=e;return TT(zb(Zt(Zt(Zt({},ta),n),{},{ticks:NT(n),viewBox:{x:0,y:0,width:r,height:l}})),u.left,u.left+u.width,t)},pF=(e,t)=>{var{yAxis:n,width:r,height:l,offset:u}=e;return TT(zb(Zt(Zt(Zt({},ta),n),{},{ticks:NT(n),viewBox:{x:0,y:0,width:r,height:l}})),u.top,u.top+u.height,t)},yF={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:wt.grid};function Q5(e){var t=c0(),n=f0(),r=IT(),l=Zt(Zt({},Ct(e,yF)),{},{x:de(e.x)?e.x:r.left,y:de(e.y)?e.y:r.top,width:de(e.width)?e.width:r.width,height:de(e.height)?e.height:r.height}),{xAxisId:u,yAxisId:s,x:f,y:d,width:h,height:m,syncWithTicks:v,horizontalValues:b,verticalValues:S}=l,O=Jt(),_=pe(q=>Wj(q,"xAxis",u,O)),w=pe(q=>Wj(q,"yAxis",s,O));if(!_r(h)||!_r(m)||!de(f)||!de(d))return null;var j=l.verticalCoordinatesGenerator||vF,A=l.horizontalCoordinatesGenerator||pF,{horizontalPoints:N,verticalPoints:T}=l;if((!N||!N.length)&&typeof A=="function"){var P=b&&b.length,M=A({yAxis:w?Zt(Zt({},w),{},{ticks:P?b:w.ticks}):void 0,width:t??h,height:n??m,offset:r},P?!0:v);Bf(Array.isArray(M),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof M,"]")),Array.isArray(M)&&(N=M)}if((!T||!T.length)&&typeof j=="function"){var R=S&&S.length,I=j({xAxis:_?Zt(Zt({},_),{},{ticks:R?S:_.ticks}):void 0,width:t??h,height:n??m,offset:r},R?!0:v);Bf(Array.isArray(I),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof I,"]")),Array.isArray(I)&&(T=I)}return y.createElement(yn,{zIndex:l.zIndex},y.createElement("g",{className:"recharts-cartesian-grid"},y.createElement(cF,{fill:l.fill,fillOpacity:l.fillOpacity,x:l.x,y:l.y,width:l.width,height:l.height,ry:l.ry}),y.createElement(hF,Mi({},l,{horizontalPoints:N})),y.createElement(mF,Mi({},l,{verticalPoints:T})),y.createElement(fF,Mi({},l,{offset:r,horizontalPoints:N,xAxis:_,yAxis:w})),y.createElement(dF,Mi({},l,{offset:r,verticalPoints:T,xAxis:_,yAxis:w}))))}Q5.displayName="CartesianGrid";var gF={},J5=Qt({name:"errorBars",initialState:gF,reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]||(e[n]=[]),e[n].push(r)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:r,next:l}=t.payload;e[n]&&(e[n]=e[n].map(u=>u.dataKey===r.dataKey&&u.direction===r.direction?l:u))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]&&(e[n]=e[n].filter(l=>l.dataKey!==r.dataKey||l.direction!==r.direction))}}}),{addErrorBar:eJ,replaceErrorBar:tJ,removeErrorBar:nJ}=J5.actions,bF=J5.reducer,xF=["children"];function SF(e,t){if(e==null)return{};var n,r,l=wF(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function wF(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var OF={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},_F=y.createContext(OF);function EF(e){var{children:t}=e,n=SF(e,xF);return y.createElement(_F.Provider,{value:n},t)}function Bb(e,t){var n,r,l=pe(h=>fa(h,e)),u=pe(h=>da(h,t)),s=(n=l==null?void 0:l.allowDataOverflow)!==null&&n!==void 0?n:Et.allowDataOverflow,f=(r=u==null?void 0:u.allowDataOverflow)!==null&&r!==void 0?r:jt.allowDataOverflow,d=s||f;return{needClip:d,needClipX:s,needClipY:f}}function eM(e){var{xAxisId:t,yAxisId:n,clipPathId:r}=e,l=Lb(),{needClipX:u,needClipY:s,needClip:f}=Bb(t,n);if(!f||!l)return null;var{x:d,y:h,width:m,height:v}=l;return y.createElement("clipPath",{id:"clipPath-".concat(r)},y.createElement("rect",{x:u?d:d-m/2,y:s?h:h-v/2,width:u?m:m*2,height:s?v:v*2}))}function jF(e){var t=Bi(e),n=3,r=2;if(t!=null){var{r:l,strokeWidth:u}=t,s=Number(l),f=Number(u);return(Number.isNaN(s)||s<0)&&(s=n),(Number.isNaN(f)||f<0)&&(f=r),{r:s,strokeWidth:f}}return{r:n,strokeWidth:r}}function Tr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(l=>l.id===t))===null||r===void 0?void 0:r.xAxisId)!==null&&n!==void 0?n:K5}function Nr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(l=>l.id===t))===null||r===void 0?void 0:r.yAxisId)!==null&&n!==void 0?n:K5}var tM=(e,t,n)=>Xa(e,"xAxis",Tr(e,t),n),nM=(e,t,n)=>Va(e,"xAxis",Tr(e,t),n),rM=(e,t,n)=>Xa(e,"yAxis",Nr(e,t),n),aM=(e,t,n)=>Va(e,"yAxis",Nr(e,t),n),AF=$([ke,tM,rM,nM,aM],(e,t,n,r,l)=>Cr(e,"xAxis")?eu(t,r,!1):eu(n,l,!1)),CF=(e,t)=>t,iM=$([uh,CF],(e,t)=>e.filter(n=>n.type==="area").find(n=>n.id===t)),lM=e=>{var t=ke(e),n=Cr(t,"xAxis");return n?"yAxis":"xAxis"},TF=(e,t)=>{var n=lM(e);return n==="yAxis"?Nr(e,t):Tr(e,t)},NF=(e,t,n)=>ud(e,lM(e),TF(e,t),n),PF=$([iM,NF],(e,t)=>{var n;if(!(e==null||t==null)){var{stackId:r}=e,l=Wd(e);if(!(r==null||l==null)){var u=(n=t[r])===null||n===void 0?void 0:n.stackedData,s=u==null?void 0:u.find(f=>f.key===l);if(s!=null)return s.map(f=>[f[0],f[1]])}}}),MF=$([ke,tM,rM,nM,aM,PF,oN,AF,iM,iU],(e,t,n,r,l,u,s,f,d,h)=>{var{chartData:m,dataStartIndex:v,dataEndIndex:b}=s;if(!(d==null||e!=="horizontal"&&e!=="vertical"||t==null||n==null||r==null||l==null||r.length===0||l.length===0||f==null)){var{data:S}=d,O;if(S&&S.length>0?O=S:O=m==null?void 0:m.slice(v,b+1),O!=null)return QF({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:l,dataStartIndex:v,areaSettings:d,stackedData:u,displayedData:O,chartBaseValue:h,bandSize:f})}}),DF=["id"],RF=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function Li(){return Li=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Li.apply(null,arguments)}function uM(e,t){if(e==null)return{};var n,r,l=kF(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function kF(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function l2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Xl(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?l2(Object(n),!0).forEach(function(r){LF(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function LF(e,t,n){return(t=zF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zF(e){var t=IF(e,"string");return typeof t=="symbol"?t:t+""}function IF(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function pd(e,t){return e&&e!=="none"?e:t}var BF=e=>{var{dataKey:t,name:n,stroke:r,fill:l,legendType:u,hide:s}=e;return[{inactive:s,dataKey:t,type:u,color:pd(r,l),value:du(n,t),payload:e}]},UF=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:l,fill:u,name:s,hide:f,unit:d,tooltipType:h,id:m}=e,v={dataDefinedOnItem:n,getPosition:Fi,settings:{stroke:r,strokeWidth:l,fill:u,dataKey:t,nameKey:void 0,name:du(s,t),hide:f,type:h,color:pd(r,u),unit:d,graphicalItemId:m}};return y.createElement(Rb,{tooltipEntrySettings:v})});function $F(e){var{clipPathId:t,points:n,props:r}=e,{needClip:l,dot:u,dataKey:s}=r,f=pn(r);return y.createElement(YV,{points:n,dot:u,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:f,needClip:l,clipPathId:t})}function qF(e){var{showLabels:t,children:n,points:r}=e,l=r.map(u=>{var s,f,d={x:(s=u.x)!==null&&s!==void 0?s:0,y:(f=u.y)!==null&&f!==void 0?f:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Xl(Xl({},d),{},{value:u.value,payload:u.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return y.createElement(T5,{value:t?l:void 0},n)}function u2(e){var{points:t,baseLine:n,needClip:r,clipPathId:l,props:u}=e,{layout:s,type:f,stroke:d,connectNulls:h,isRange:m}=u,{id:v}=u,b=uM(u,DF),S=pn(b),O=rn(b);return y.createElement(y.Fragment,null,(t==null?void 0:t.length)>1&&y.createElement(ht,{clipPath:r?"url(#clipPath-".concat(l,")"):void 0},y.createElement(Zl,Li({},O,{id:v,points:t,connectNulls:h,type:f,baseLine:n,layout:s,stroke:"none",className:"recharts-area-area"})),d!=="none"&&y.createElement(Zl,Li({},S,{className:"recharts-area-curve",layout:s,type:f,connectNulls:h,fill:"none",points:t})),d!=="none"&&m&&Array.isArray(n)&&y.createElement(Zl,Li({},S,{className:"recharts-area-curve",layout:s,type:f,connectNulls:h,fill:"none",points:n}))),y.createElement($F,{points:t,props:b,clipPathId:l}))}function HF(e){var t,n,{alpha:r,baseLine:l,points:u,strokeWidth:s}=e,f=(t=u[0])===null||t===void 0?void 0:t.y,d=(n=u[u.length-1])===null||n===void 0?void 0:n.y;if(!je(f)||!je(d))return null;var h=r*Math.abs(f-d),m=Math.max(...u.map(v=>v.x||0));return de(l)?m=Math.max(l,m):l&&Array.isArray(l)&&l.length&&(m=Math.max(...l.map(v=>v.x||0),m)),de(m)?y.createElement("rect",{x:0,y:f<d?f:f-h,width:m+(s?parseInt("".concat(s),10):1),height:Math.floor(h)}):null}function KF(e){var t,n,{alpha:r,baseLine:l,points:u,strokeWidth:s}=e,f=(t=u[0])===null||t===void 0?void 0:t.x,d=(n=u[u.length-1])===null||n===void 0?void 0:n.x;if(!je(f)||!je(d))return null;var h=r*Math.abs(f-d),m=Math.max(...u.map(v=>v.y||0));return de(l)?m=Math.max(l,m):l&&Array.isArray(l)&&l.length&&(m=Math.max(...l.map(v=>v.y||0),m)),de(m)?y.createElement("rect",{x:f<d?f:f-h,y:0,width:h,height:Math.floor(m+(s?parseInt("".concat(s),10):1))}):null}function YF(e){var{alpha:t,layout:n,points:r,baseLine:l,strokeWidth:u}=e;return n==="vertical"?y.createElement(HF,{alpha:t,points:r,baseLine:l,strokeWidth:u}):y.createElement(KF,{alpha:t,points:r,baseLine:l,strokeWidth:u})}function GF(e){var{needClip:t,clipPathId:n,props:r,previousPointsRef:l,previousBaselineRef:u}=e,{points:s,baseLine:f,isAnimationActive:d,animationBegin:h,animationDuration:m,animationEasing:v,onAnimationStart:b,onAnimationEnd:S}=r,O=y.useMemo(()=>({points:s,baseLine:f}),[s,f]),_=hs(O,"recharts-area-"),w=d0(),[j,A]=y.useState(!1),N=!j,T=y.useCallback(()=>{typeof S=="function"&&S(),A(!1)},[S]),P=y.useCallback(()=>{typeof b=="function"&&b(),A(!0)},[b]);if(w==null)return null;var M=l.current,R=u.current;return y.createElement(qF,{showLabels:N,points:s},r.children,y.createElement(ds,{animationId:_,begin:h,duration:m,isActive:d,easing:v,onAnimationEnd:T,onAnimationStart:P,key:_},I=>{if(M){var q=M.length/s.length,W=I===1?s:s.map((U,se)=>{var F=Math.floor(se*q);if(M[F]){var J=M[F];return Xl(Xl({},U),{},{x:nt(J.x,U.x,I),y:nt(J.y,U.y,I)})}return U}),X;return de(f)?X=nt(R,f,I):ut(f)||lr(f)?X=nt(R,0,I):X=f.map((U,se)=>{var F=Math.floor(se*q);if(Array.isArray(R)&&R[F]){var J=R[F];return Xl(Xl({},U),{},{x:nt(J.x,U.x,I),y:nt(J.y,U.y,I)})}return U}),I>0&&(l.current=W,u.current=X),y.createElement(u2,{points:W,baseLine:X,needClip:t,clipPathId:n,props:r})}return I>0&&(l.current=s,u.current=f),y.createElement(ht,null,d&&y.createElement("defs",null,y.createElement("clipPath",{id:"animationClipPath-".concat(n)},y.createElement(YF,{alpha:I,points:s,baseLine:f,layout:w,strokeWidth:r.strokeWidth}))),y.createElement(ht,{clipPath:"url(#animationClipPath-".concat(n,")")},y.createElement(u2,{points:s,baseLine:f,needClip:t,clipPathId:n,props:r})))}),y.createElement(Ab,{label:r.label}))}function VF(e){var{needClip:t,clipPathId:n,props:r}=e,l=y.useRef(null),u=y.useRef();return y.createElement(GF,{needClip:t,clipPathId:n,props:r,previousPointsRef:l,previousBaselineRef:u})}class XF extends y.PureComponent{render(){var{hide:t,dot:n,points:r,className:l,top:u,left:s,needClip:f,xAxisId:d,yAxisId:h,width:m,height:v,id:b,baseLine:S,zIndex:O}=this.props;if(t)return null;var _=Ie("recharts-area",l),w=b,{r:j,strokeWidth:A}=jF(n),N=I5(n),T=j*2+A,P=f?"url(#clipPath-".concat(N?"":"dots-").concat(w,")"):void 0;return y.createElement(yn,{zIndex:O},y.createElement(ht,{className:_},f&&y.createElement("defs",null,y.createElement(eM,{clipPathId:w,xAxisId:d,yAxisId:h}),!N&&y.createElement("clipPath",{id:"clipPath-dots-".concat(w)},y.createElement("rect",{x:s-T/2,y:u-T/2,width:m+T,height:v+T}))),y.createElement(VF,{needClip:f,clipPathId:w,props:this.props})),y.createElement(JA,{points:r,mainColor:pd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}),this.props.isRange&&Array.isArray(S)&&y.createElement(JA,{points:S,mainColor:pd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}))}}var FF={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:wt.area};function ZF(e){var t,{activeDot:n,animationBegin:r,animationDuration:l,animationEasing:u,connectNulls:s,dot:f,fill:d,fillOpacity:h,hide:m,isAnimationActive:v,legendType:b,stroke:S,xAxisId:O,yAxisId:_}=e,w=uM(e,RF),j=Zi(),A=s5(),{needClip:N}=Bb(O,_),T=Jt(),{points:P,isRange:M,baseLine:R}=(t=pe(se=>MF(se,e.id,T)))!==null&&t!==void 0?t:{},I=Lb();if(j!=="horizontal"&&j!=="vertical"||I==null||A!=="AreaChart"&&A!=="ComposedChart")return null;var{height:q,width:W,x:X,y:U}=I;return!P||!P.length?null:y.createElement(XF,Li({},w,{activeDot:n,animationBegin:r,animationDuration:l,animationEasing:u,baseLine:R,connectNulls:s,dot:f,fill:d,fillOpacity:h,height:q,hide:m,layout:j,isAnimationActive:v,isRange:M,legendType:b,needClip:N,points:P,stroke:S,width:W,left:X,top:U,xAxisId:O,yAxisId:_}))}var WF=(e,t,n,r,l)=>{var u=n??t;if(de(u))return u;var s=e==="horizontal"?l:r,f=s.scale.domain();if(s.type==="number"){var d=Math.max(f[0],f[1]),h=Math.min(f[0],f[1]);return u==="dataMin"?h:u==="dataMax"||d<0?d:Math.max(Math.min(f[0],f[1]),0)}return u==="dataMin"?f[0]:u==="dataMax"?f[1]:f[0]};function QF(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:r},stackedData:l,layout:u,chartBaseValue:s,xAxis:f,yAxis:d,displayedData:h,dataStartIndex:m,xAxisTicks:v,yAxisTicks:b,bandSize:S}=e,O=l&&l.length,_=WF(u,s,n,f,d),w=u==="horizontal",j=!1,A=h.map((T,P)=>{var M,R,I,q;if(O)q=l[m+P];else{var W=$e(T,r);Array.isArray(W)?(q=W,j=!0):q=[_,W]}var X=(M=(R=q)===null||R===void 0?void 0:R[1])!==null&&M!==void 0?M:null,U=X==null||O&&!t&&$e(T,r)==null;if(w){var se;return{x:H_({axis:f,ticks:v,bandSize:S,entry:T,index:P}),y:U?null:(se=d.scale.map(X))!==null&&se!==void 0?se:null,value:q,payload:T}}return{x:U?null:(I=f.scale.map(X))!==null&&I!==void 0?I:null,y:H_({axis:d,ticks:b,bandSize:S,entry:T,index:P}),value:q,payload:T}}),N;return O||j?N=A.map(T=>{var P,M=Array.isArray(T.value)?T.value[0]:null;if(w){var R;return{x:T.x,y:M!=null&&T.y!=null&&(R=d.scale.map(M))!==null&&R!==void 0?R:null,payload:T.payload}}return{x:M!=null&&(P=f.scale.map(M))!==null&&P!==void 0?P:null,y:T.y,payload:T.payload}}):N=w?d.scale.map(_):f.scale.map(_),{points:A,baseLine:N??0,isRange:j}}function JF(e){var t=Ct(e,FF),n=Jt();return y.createElement(kb,{id:t.id,type:"area"},r=>y.createElement(y.Fragment,null,y.createElement(U5,{legendPayload:BF(t)}),y.createElement(UF,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:r}),y.createElement(q5,{type:"area",id:r,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:PT(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),y.createElement(ZF,Li({},t,{id:r}))))}var oM=y.memo(JF,hu);oM.displayName="Area";var eZ="Invariant failed";function tZ(e,t){throw new Error(eZ)}function bg(){return bg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bg.apply(null,arguments)}function Ub(e){return y.createElement(B5,bg({shapeType:"rectangle",activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"},e))}var nZ=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(r,l)=>{if(de(t))return t;var u=de(r)||ut(r);return u?t(r,l):(u||tZ(),n)}},rZ=(e,t,n)=>n,aZ=(e,t)=>t,Es=$([uh,aZ],(e,t)=>e.filter(n=>n.type==="bar").find(n=>n.id===t)),iZ=$([Es],e=>e==null?void 0:e.maxBarSize),lZ=(e,t,n,r)=>r,uZ=$([ke,uh,Tr,Nr,rZ],(e,t,n,r,l)=>t.filter(u=>e==="horizontal"?u.xAxisId===n:u.yAxisId===r).filter(u=>u.isPanorama===l).filter(u=>u.hide===!1).filter(u=>u.type==="bar")),oZ=(e,t,n)=>{var r=ke(e),l=Tr(e,t),u=Nr(e,t);if(!(l==null||u==null))return r==="horizontal"?ud(e,"yAxis",u,n):ud(e,"xAxis",l,n)},sZ=(e,t)=>{var n=ke(e),r=Tr(e,t),l=Nr(e,t);if(!(r==null||l==null))return n==="horizontal"?Zj(e,"xAxis",r):Zj(e,"yAxis",l)},cZ=$([uZ,aU,sZ],fX),fZ=(e,t,n)=>{var r,l,u=Es(e,t);if(u==null)return 0;var s=Tr(e,t),f=Nr(e,t);if(s==null||f==null)return 0;var d=ke(e),h=xN(e),{maxBarSize:m}=u,v=ut(m)?h:m,b,S;return d==="horizontal"?(b=Xa(e,"xAxis",s,n),S=Va(e,"xAxis",s,n)):(b=Xa(e,"yAxis",f,n),S=Va(e,"yAxis",f,n)),(r=(l=eu(b,S,!0))!==null&&l!==void 0?l:v)!==null&&r!==void 0?r:0},sM=(e,t,n)=>{var r=ke(e),l=Tr(e,t),u=Nr(e,t);if(!(l==null||u==null)){var s,f;return r==="horizontal"?(s=Xa(e,"xAxis",l,n),f=Va(e,"xAxis",l,n)):(s=Xa(e,"yAxis",u,n),f=Va(e,"yAxis",u,n)),eu(s,f)}},dZ=$([cZ,xN,rU,SN,fZ,sM,iZ],pX),hZ=(e,t,n)=>{var r=Tr(e,t);if(r!=null)return Xa(e,"xAxis",r,n)},mZ=(e,t,n)=>{var r=Nr(e,t);if(r!=null)return Xa(e,"yAxis",r,n)},vZ=(e,t,n)=>{var r=Tr(e,t);if(r!=null)return Va(e,"xAxis",r,n)},pZ=(e,t,n)=>{var r=Nr(e,t);if(r!=null)return Va(e,"yAxis",r,n)},yZ=$([dZ,Es],gX),gZ=$([oZ,Es],yX),bZ=$([Tt,l0,hZ,mZ,vZ,pZ,yZ,ke,oN,sM,gZ,Es,lZ],(e,t,n,r,l,u,s,f,d,h,m,v,b)=>{var{chartData:S,dataStartIndex:O,dataEndIndex:_}=d;if(!(v==null||s==null||t==null||f!=="horizontal"&&f!=="vertical"||n==null||r==null||l==null||u==null||h==null)){var{data:w}=v,j;if(w!=null&&w.length>0?j=w:j=S==null?void 0:S.slice(O,_+1),j!=null)return VZ({layout:f,barSettings:v,pos:s,parentViewBox:t,bandSize:h,xAxis:n,yAxis:r,xAxisTicks:l,yAxisTicks:u,stackedData:m,displayedData:j,offset:e,cells:b,dataStartIndex:O})}}),xZ=["index"];function xg(){return xg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xg.apply(null,arguments)}function SZ(e,t){if(e==null)return{};var n,r,l=wZ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function wZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var cM=y.createContext(void 0),OZ=e=>{var t=y.useContext(cM);if(t!=null)return t.stackId;if(e!=null)return PT(e)},_Z=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),EZ=e=>{var t=y.useContext(cM);if(t!=null){var{stackId:n}=t;return"url(#".concat(_Z(n,e),")")}},fM=e=>{var{index:t}=e,n=SZ(e,xZ),r=EZ(t);return y.createElement(ht,xg({className:"recharts-bar-stack-layer",clipPath:r},n))},jZ=["onMouseEnter","onMouseLeave","onClick"],AZ=["value","background","tooltipPosition"],CZ=["id"],TZ=["onMouseEnter","onClick","onMouseLeave"];function Wa(){return Wa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wa.apply(null,arguments)}function o2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function tn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?o2(Object(n),!0).forEach(function(r){NZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function NZ(e,t,n){return(t=PZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PZ(e){var t=MZ(e,"string");return typeof t=="symbol"?t:t+""}function MZ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function yd(e,t){if(e==null)return{};var n,r,l=DZ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function DZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var RZ=e=>{var{dataKey:t,name:n,fill:r,legendType:l,hide:u}=e;return[{inactive:u,dataKey:t,type:l,color:r,value:du(n,t),payload:e}]},kZ=y.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:l,name:u,hide:s,unit:f,tooltipType:d,id:h}=e,m={dataDefinedOnItem:void 0,getPosition:Fi,settings:{stroke:n,strokeWidth:r,fill:l,dataKey:t,nameKey:void 0,name:du(u,t),hide:s,type:d,color:l,unit:f,graphicalItemId:h}};return y.createElement(Rb,{tooltipEntrySettings:m})});function LZ(e){var t=pe(Fa),{data:n,dataKey:r,background:l,allOtherBarProps:u}=e,{onMouseEnter:s,onMouseLeave:f,onClick:d}=u,h=yd(u,jZ),m=Pb(s,r,u.id),v=Mb(f),b=Db(d,r,u.id);if(!l||n==null)return null;var S=Bi(l);return y.createElement(yn,{zIndex:bX(l,wt.barBackground)},n.map((O,_)=>{var{value:w,background:j,tooltipPosition:A}=O,N=yd(O,AZ);if(!j)return null;var T=m(O,_),P=v(O,_),M=b(O,_),R=tn(tn(tn(tn(tn({option:l,isActive:String(_)===t},N),{},{fill:"#eee"},j),S),is(h,O,_)),{},{onMouseEnter:T,onMouseLeave:P,onClick:M,dataKey:r,index:_,className:"recharts-bar-background-rectangle"});return y.createElement(Ub,Wa({key:"background-bar-".concat(_)},R))}))}function zZ(e){var{showLabels:t,children:n,rects:r}=e,l=r==null?void 0:r.map(u=>{var s={x:u.x,y:u.y,width:u.width,lowerWidth:u.width,upperWidth:u.width,height:u.height};return tn(tn({},s),{},{value:u.value,payload:u.payload,parentViewBox:u.parentViewBox,viewBox:s,fill:u.fill})});return y.createElement(T5,{value:t?l:void 0},n)}function IZ(e){var{shape:t,activeBar:n,baseProps:r,entry:l,index:u,dataKey:s}=e,f=pe(Fa),d=pe(bb),h=n&&String(l.originalDataIndex)===f&&(d==null||s===d),[m,v]=y.useState(!1),[b,S]=y.useState(!1);y.useEffect(()=>{var N;return h?(v(!0),N=requestAnimationFrame(()=>{S(!0)})):S(!1),()=>{cancelAnimationFrame(N)}},[h]);var O=y.useCallback(()=>{h||v(!1)},[h]),_=h&&b,w=h||m,j;h?n===!0?j=t:j=n:j=t;var A=y.createElement(Ub,Wa({},r,{name:String(r.name)},l,{isActive:_,option:j,index:u,dataKey:s,onTransitionEnd:O}));return w?y.createElement(yn,{zIndex:wt.activeBar},y.createElement(fM,{index:l.originalDataIndex},A)):A}function BZ(e){var{shape:t,baseProps:n,entry:r,index:l,dataKey:u}=e;return y.createElement(Ub,Wa({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:l,dataKey:u}))}function UZ(e){var t,{data:n,props:r}=e,l=(t=pn(r))!==null&&t!==void 0?t:{},{id:u}=l,s=yd(l,CZ),{shape:f,dataKey:d,activeBar:h}=r,{onMouseEnter:m,onClick:v,onMouseLeave:b}=r,S=yd(r,TZ),O=Pb(m,d,u),_=Mb(b),w=Db(v,d,u);return n?y.createElement(y.Fragment,null,n.map((j,A)=>y.createElement(fM,Wa({index:j.originalDataIndex,key:"rectangle-".concat(j==null?void 0:j.x,"-").concat(j==null?void 0:j.y,"-").concat(j==null?void 0:j.value,"-").concat(A),className:"recharts-bar-rectangle"},is(S,j,A),{onMouseEnter:O(j,A),onMouseLeave:_(j,A),onClick:w(j,A)}),h?y.createElement(IZ,{shape:f,activeBar:h,baseProps:s,entry:j,index:A,dataKey:d}):y.createElement(BZ,{shape:f,baseProps:s,entry:j,index:A,dataKey:d})))):null}function $Z(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:l,isAnimationActive:u,animationBegin:s,animationDuration:f,animationEasing:d,onAnimationEnd:h,onAnimationStart:m}=t,v=n.current,b=hs(t,"recharts-bar-"),[S,O]=y.useState(!1),_=!S,w=y.useCallback(()=>{typeof h=="function"&&h(),O(!1)},[h]),j=y.useCallback(()=>{typeof m=="function"&&m(),O(!0)},[m]);return y.createElement(zZ,{showLabels:_,rects:r},y.createElement(ds,{animationId:b,begin:s,duration:f,isActive:u,easing:d,onAnimationEnd:w,onAnimationStart:j,key:b},A=>{var N=A===1?r:r==null?void 0:r.map((T,P)=>{var M=v&&v[P];if(M)return tn(tn({},T),{},{x:nt(M.x,T.x,A),y:nt(M.y,T.y,A),width:nt(M.width,T.width,A),height:nt(M.height,T.height,A)});if(l==="horizontal"){var R=nt(0,T.height,A),I=nt(T.stackedBarStart,T.y,A);return tn(tn({},T),{},{y:I,height:R})}var q=nt(0,T.width,A),W=nt(T.stackedBarStart,T.x,A);return tn(tn({},T),{},{width:q,x:W})});return A>0&&(n.current=N??null),N==null?null:y.createElement(ht,null,y.createElement(UZ,{props:t,data:N}))}),y.createElement(Ab,{label:t.label}),t.children)}function qZ(e){var t=y.useRef(null);return y.createElement($Z,{previousRectanglesRef:t,props:e})}var dM=0,HZ=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:$e(e,t)}};class KZ extends y.PureComponent{render(){var{hide:t,data:n,dataKey:r,className:l,xAxisId:u,yAxisId:s,needClip:f,background:d,id:h}=this.props;if(t||n==null)return null;var m=Ie("recharts-bar",l),v=h;return y.createElement(ht,{className:m,id:h},f&&y.createElement("defs",null,y.createElement(eM,{clipPathId:v,xAxisId:u,yAxisId:s})),y.createElement(ht,{className:"recharts-bar-rectangles",clipPath:f?"url(#clipPath-".concat(v,")"):void 0},y.createElement(LZ,{data:n,dataKey:r,background:d,allOtherBarProps:this.props}),y.createElement(qZ,this.props)))}}var YZ={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:dM,xAxisId:0,yAxisId:0,zIndex:wt.bar};function GZ(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:l,minPointSize:u,activeBar:s,animationBegin:f,animationDuration:d,animationEasing:h,isAnimationActive:m}=e,{needClip:v}=Bb(t,n),b=Zi(),S=Jt(),O=Nb(e.children,dh),_=pe(A=>bZ(A,e.id,S,O));if(b!=="vertical"&&b!=="horizontal")return null;var w,j=_==null?void 0:_[0];return j==null||j.height==null||j.width==null?w=0:w=b==="vertical"?j.height/2:j.width/2,y.createElement(EF,{xAxisId:t,yAxisId:n,data:_,dataPointFormatter:HZ,errorBarOffset:w},y.createElement(KZ,Wa({},e,{layout:b,needClip:v,data:_,xAxisId:t,yAxisId:n,hide:r,legendType:l,minPointSize:u,activeBar:s,animationBegin:f,animationDuration:d,animationEasing:h,isAnimationActive:m})))}function VZ(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r,hasCustomShape:l},pos:u,bandSize:s,xAxis:f,yAxis:d,xAxisTicks:h,yAxisTicks:m,stackedData:v,displayedData:b,offset:S,cells:O,parentViewBox:_,dataStartIndex:w}=e,j=t==="horizontal"?d:f,A=v?j.scale.domain():null,N=FI({numericAxis:j}),T=j.scale.map(N);return b.map((P,M)=>{var R,I,q,W,X,U;if(v){var se=v[M+w];if(se==null)return null;R=KI(se,A)}else R=$e(P,n),Array.isArray(R)||(R=[N,R]);var F=nZ(r,dM)(R[1],M);if(t==="horizontal"){var J,z=d.scale.map(R[0]),V=d.scale.map(R[1]);if(z==null||V==null)return null;I=K_({axis:f,ticks:h,bandSize:s,offset:u.offset,entry:P,index:M}),q=(J=V??z)!==null&&J!==void 0?J:void 0,W=u.size;var ne=z-V;if(X=lr(ne)?0:ne,U={x:I,y:S.top,width:W,height:S.height},Math.abs(F)>0&&Math.abs(X)<Math.abs(F)){var le=kt(X||F)*(Math.abs(F)-Math.abs(X));q-=le,X+=le}}else{var Q=f.scale.map(R[0]),D=f.scale.map(R[1]);if(Q==null||D==null)return null;if(I=Q,q=K_({axis:d,ticks:m,bandSize:s,offset:u.offset,entry:P,index:M}),W=D-Q,X=u.size,U={x:S.left,y:q,width:S.width,height:X},Math.abs(F)>0&&Math.abs(W)<Math.abs(F)){var K=kt(W||F)*(Math.abs(F)-Math.abs(W));W+=K}}if(I==null||q==null||W==null||X==null||!l&&(W===0||X===0))return null;var oe=tn(tn({},P),{},{stackedBarStart:T,x:I,y:q,width:W,height:X,value:v?R:R[1],payload:P,background:U,tooltipPosition:{x:I+W/2,y:q+X/2},parentViewBox:_,originalDataIndex:M},O&&O[M]&&O[M].props);return oe}).filter(Boolean)}function XZ(e){var t=Ct(e,YZ),n=OZ(t.stackId),r=Jt();return y.createElement(kb,{id:t.id,type:"bar"},l=>y.createElement(y.Fragment,null,y.createElement(U5,{legendPayload:RZ(t)}),y.createElement(kZ,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:l}),y.createElement(q5,{type:"bar",id:l,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r,hasCustomShape:t.shape!=null}),y.createElement(yn,{zIndex:t.zIndex},y.createElement(GZ,Wa({},t,{id:l})))))}var hM=y.memo(XZ,hu);hM.displayName="Bar";var FZ=["domain","range"],ZZ=["domain","range"];function s2(e,t){if(e==null)return{};var n,r,l=WZ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function WZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function c2(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function mM(e,t){if(e===t)return!0;var{domain:n,range:r}=e,l=s2(e,FZ),{domain:u,range:s}=t,f=s2(t,ZZ);return!c2(n,u)||!c2(r,s)?!1:hu(l,f)}var QZ=["type"],JZ=["dangerouslySetInnerHTML","ticks","scale"],eW=["id","scale"];function Sg(){return Sg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Sg.apply(null,arguments)}function f2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function d2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?f2(Object(n),!0).forEach(function(r){tW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function tW(e,t,n){return(t=nW(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nW(e){var t=rW(e,"string");return typeof t=="symbol"?t:t+""}function rW(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wg(e,t){if(e==null)return{};var n,r,l=aW(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function aW(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function iW(e){var t=Xe(),n=y.useRef(null),r=d0(),{type:l}=e,u=wg(e,QZ),s=Fd(r,"xAxis",l),f=y.useMemo(()=>{if(s!=null)return d2(d2({},u),{},{type:s})},[u,s]);return y.useLayoutEffect(()=>{f!=null&&(n.current===null?t(ZV(f)):n.current!==f&&t(WV({prev:n.current,next:f})),n.current=f)},[f,t]),y.useLayoutEffect(()=>()=>{n.current&&(t(QV(n.current)),n.current=null)},[t]),null}var lW=e=>{var{xAxisId:t,className:n}=e,r=pe(l0),l=Jt(),u="xAxis",s=pe(j=>IP(j,u,t,l)),f=pe(j=>kP(j,t)),d=pe(j=>Iq(j,t)),h=pe(j=>hP(j,t));if(f==null||d==null||h==null)return null;var{dangerouslySetInnerHTML:m,ticks:v,scale:b}=e,S=wg(e,JZ),{id:O,scale:_}=h,w=wg(h,eW);return y.createElement(Ib,Sg({},S,w,{x:d.x,y:d.y,width:f.width,height:f.height,className:Ie("recharts-".concat(u," ").concat(u),n),viewBox:r,ticks:s,axisType:u,axisId:t}))},uW={allowDataOverflow:Et.allowDataOverflow,allowDecimals:Et.allowDecimals,allowDuplicatedCategory:Et.allowDuplicatedCategory,angle:Et.angle,axisLine:ta.axisLine,height:Et.height,hide:!1,includeHidden:Et.includeHidden,interval:Et.interval,label:!1,minTickGap:Et.minTickGap,mirror:Et.mirror,orientation:Et.orientation,padding:Et.padding,reversed:Et.reversed,scale:Et.scale,tick:Et.tick,tickCount:Et.tickCount,tickLine:ta.tickLine,tickSize:ta.tickSize,type:Et.type,niceTicks:Et.niceTicks,xAxisId:0},oW=e=>{var t=Ct(e,uW);return y.createElement(y.Fragment,null,y.createElement(iW,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),y.createElement(lW,t))},$b=y.memo(oW,mM);$b.displayName="XAxis";var sW=["type"],cW=["dangerouslySetInnerHTML","ticks","scale"],fW=["id","scale"];function Og(){return Og=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Og.apply(null,arguments)}function h2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function m2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?h2(Object(n),!0).forEach(function(r){dW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function dW(e,t,n){return(t=hW(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hW(e){var t=mW(e,"string");return typeof t=="symbol"?t:t+""}function mW(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _g(e,t){if(e==null)return{};var n,r,l=vW(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function vW(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function pW(e){var t=Xe(),n=y.useRef(null),r=d0(),{type:l}=e,u=_g(e,sW),s=Fd(r,"yAxis",l),f=y.useMemo(()=>{if(s!=null)return m2(m2({},u),{},{type:s})},[s,u]);return y.useLayoutEffect(()=>{f!=null&&(n.current===null?t(JV(f)):n.current!==f&&t(eX({prev:n.current,next:f})),n.current=f)},[f,t]),y.useLayoutEffect(()=>()=>{n.current&&(t(tX(n.current)),n.current=null)},[t]),null}function yW(e){var{yAxisId:t,className:n,width:r,label:l}=e,u=y.useRef(null),s=y.useRef(null),f=pe(l0),d=Jt(),h=Xe(),m="yAxis",v=pe(M=>LP(M,t)),b=pe(M=>Uq(M,t)),S=pe(M=>IP(M,m,t,d)),O=pe(M=>mP(M,t));if(y.useLayoutEffect(()=>{if(!(r!=="auto"||!v||jb(l)||y.isValidElement(l)||O==null)){var M=u.current;if(M){var R=M.getCalculatedWidth();Math.round(v.width)!==Math.round(R)&&h(nX({id:t,width:R}))}}},[S,v,h,l,t,r,O]),v==null||b==null||O==null)return null;var{dangerouslySetInnerHTML:_,ticks:w,scale:j}=e,A=_g(e,cW),{id:N,scale:T}=O,P=_g(O,fW);return y.createElement(Ib,Og({},A,P,{ref:u,labelRef:s,x:b.x,y:b.y,tickTextProps:r==="auto"?{width:void 0}:{width:r},width:v.width,height:v.height,className:Ie("recharts-".concat(m," ").concat(m),n),viewBox:f,ticks:S,axisType:m,axisId:t}))}var gW={allowDataOverflow:jt.allowDataOverflow,allowDecimals:jt.allowDecimals,allowDuplicatedCategory:jt.allowDuplicatedCategory,angle:jt.angle,axisLine:ta.axisLine,hide:!1,includeHidden:jt.includeHidden,interval:jt.interval,label:!1,minTickGap:jt.minTickGap,mirror:jt.mirror,orientation:jt.orientation,padding:jt.padding,reversed:jt.reversed,scale:jt.scale,tick:jt.tick,tickCount:jt.tickCount,tickLine:ta.tickLine,tickSize:ta.tickSize,type:jt.type,niceTicks:jt.niceTicks,width:jt.width,yAxisId:0},bW=e=>{var t=Ct(e,gW);return y.createElement(y.Fragment,null,y.createElement(pW,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),y.createElement(yW,t))},qb=y.memo(bW,mM);qb.displayName="YAxis";var xW=(e,t)=>t,Hb=$([xW,ke,CN,Lt,n5,ha,uK,Tt],mK);function SW(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Kb(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(SW(e)){var l=e.currentTarget.getBBox();n=l.width>0?t.width/l.width:1,r=l.height>0?t.height/l.height:1}else{var u=e.currentTarget;n=u.offsetWidth>0?t.width/u.offsetWidth:1,r=u.offsetHeight>0?t.height/u.offsetHeight:1}var s=(f,d)=>({relativeX:Math.round((f-t.left)/n),relativeY:Math.round((d-t.top)/r)});return"touches"in e?Array.from(e.touches).map(f=>s(f.clientX,f.clientY)):s(e.clientX,e.clientY)}var vM=Pn("mouseClick"),pM=us();pM.startListening({actionCreator:vM,effect:(e,t)=>{var n=e.payload,r=Hb(t.getState(),Kb(n));(r==null?void 0:r.activeIndex)!=null&&t.dispatch(nH({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var Eg=Pn("mouseMove"),yM=us(),Hl=null,Oi=null,Ay=null;yM.startListening({actionCreator:Eg,effect:(e,t)=>{var n=e.payload,r=t.getState(),{throttleDelay:l,throttledEvents:u}=r.eventSettings,s=u==="all"||(u==null?void 0:u.includes("mousemove"));Hl!==null&&(cancelAnimationFrame(Hl),Hl=null),Oi!==null&&(typeof l!="number"||!s)&&(clearTimeout(Oi),Oi=null),Ay=Kb(n);var f=()=>{var d=t.getState(),h=Os(d,d.tooltip.settings.shared);if(!Ay){Hl=null,Oi=null;return}if(h==="axis"){var m=Hb(d,Ay);(m==null?void 0:m.activeIndex)!=null?t.dispatch(GP({activeIndex:m.activeIndex,activeDataKey:void 0,activeCoordinate:m.activeCoordinate})):t.dispatch(YP())}Hl=null,Oi=null};if(!s){f();return}l==="raf"?Hl=requestAnimationFrame(f):typeof l=="number"&&Oi===null&&(Oi=setTimeout(f,l))}});function wW(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var v2={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},gM=Qt({name:"rootProps",initialState:v2,reducers:{updateOptions:(e,t)=>{var n;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(n=t.payload.barGap)!==null&&n!==void 0?n:v2.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),OW=gM.reducer,{updateOptions:_W}=gM.actions,EW=null,jW={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},bM=Qt({name:"polarOptions",initialState:EW,reducers:jW}),{updatePolarOptions:AW}=bM.actions,CW=bM.reducer,xM=Pn("keyDown"),SM=Pn("focus"),wM=Pn("blur"),yh=us(),Kl=null,_i=null,of=null;yh.startListening({actionCreator:xM,effect:(e,t)=>{of=e.payload,Kl!==null&&(cancelAnimationFrame(Kl),Kl=null);var n=t.getState(),{throttleDelay:r,throttledEvents:l}=n.eventSettings,u=l==="all"||l.includes("keydown");_i!==null&&(typeof r!="number"||!u)&&(clearTimeout(_i),_i=null);var s=()=>{try{var f=t.getState(),d=f.rootProps.accessibilityLayer!==!1;if(!d)return;var{keyboardInteraction:h}=f.tooltip,m=of;if(m!=="ArrowRight"&&m!=="ArrowLeft"&&m!=="Enter")return;var v=Do(h,Vi(f),lu(f),uu(f)),b=v==null?-1:Number(v),S=!Number.isFinite(b)||b<0,O=ha(f),_=Vi(f),w=Os(f,f.tooltip.settings.shared);if(m==="Enter"){if(S)return;var j=cd(f,w,"hover",String(h.index));t.dispatch(sd({active:!h.active,activeIndex:h.index,activeCoordinate:j}));return}var A=Yq(f),N=A==="left-to-right"?1:-1,T=m==="ArrowRight"?1:-1,P;if(S){var M=lu(f),R=uu(f),I=T*N,q=F=>({active:!1,index:String(F),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(P=-1,I>0){for(var W=0;W<_.length;W++)if(Do(q(W),_,M,R)!=null){P=W;break}}else for(var X=_.length-1;X>=0;X--)if(Do(q(X),_,M,R)!=null){P=X;break}if(P<0)return}else{P=b+T*N;var U=(O==null?void 0:O.length)||_.length;if(U===0||P>=U||P<0)return}var se=cd(f,w,"hover",String(P));t.dispatch(sd({active:!0,activeIndex:P.toString(),activeCoordinate:se}))}finally{Kl=null,_i=null}};if(!u){s();return}r==="raf"?Kl=requestAnimationFrame(s):typeof r=="number"&&_i===null&&(s(),of=null,_i=setTimeout(()=>{of?s():(_i=null,Kl=null)},r))}});yh.startListening({actionCreator:SM,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:l}=n.tooltip;if(!l.active&&l.index==null){var u="0",s=Os(n,n.tooltip.settings.shared),f=cd(n,s,"hover",String(u));t.dispatch(sd({active:!0,activeIndex:u,activeCoordinate:f}))}}}});yh.startListening({actionCreator:wM,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:l}=n.tooltip;l.active&&t.dispatch(sd({active:!1,activeIndex:l.index,activeCoordinate:l.coordinate}))}}});function OM(e){e.persist();var{currentTarget:t}=e;return new Proxy(e,{get:(n,r)=>{if(r==="currentTarget")return t;var l=Reflect.get(n,r);return typeof l=="function"?l.bind(n):l}})}var Yn=Pn("externalEvent"),_M=us(),sf=new Map,Co=new Map,Cy=new Map;_M.startListening({actionCreator:Yn,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){var l=r.type,u=OM(r);Cy.set(l,{handler:n,reactEvent:u});var s=sf.get(l);s!==void 0&&(cancelAnimationFrame(s),sf.delete(l));var f=t.getState(),{throttleDelay:d,throttledEvents:h}=f.eventSettings,m=h,v=m==="all"||(m==null?void 0:m.includes(l)),b=Co.get(l);b!==void 0&&(typeof d!="number"||!v)&&(clearTimeout(b),Co.delete(l));var S=()=>{var w=Cy.get(l);try{if(!w)return;var{handler:j,reactEvent:A}=w,N=t.getState(),T={activeCoordinate:GH(N),activeDataKey:bb(N),activeIndex:Fa(N),activeLabel:i5(N),activeTooltipIndex:Fa(N),isTooltipActive:VH(N)};j&&j(T,A)}finally{sf.delete(l),Co.delete(l),Cy.delete(l)}};if(!v){S();return}if(d==="raf"){var O=requestAnimationFrame(S);sf.set(l,O)}else if(typeof d=="number"){if(!Co.has(l)){S();var _=setTimeout(S,d);Co.set(l,_)}}else S()}}});var TW=$([Su],e=>e.tooltipItemPayloads),NW=$([TW,(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(u=>u.settings.graphicalItemId===n);if(r!=null){var{getPosition:l}=r;if(l!=null)return l(t)}}}),EM=Pn("touchMove"),jM=us(),Ei=null,Ba=null,p2=null,To=null;jM.startListening({actionCreator:EM,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){To=OM(n);var r=t.getState(),{throttleDelay:l,throttledEvents:u}=r.eventSettings,s=u==="all"||u.includes("touchmove");Ei!==null&&(cancelAnimationFrame(Ei),Ei=null),Ba!==null&&(typeof l!="number"||!s)&&(clearTimeout(Ba),Ba=null),p2=Array.from(n.touches).map(d=>Kb({clientX:d.clientX,clientY:d.clientY,currentTarget:n.currentTarget}));var f=()=>{if(To!=null){var d=t.getState(),h=Os(d,d.tooltip.settings.shared);if(h==="axis"){var m,v=(m=p2)===null||m===void 0?void 0:m[0];if(v==null){Ei=null,Ba=null;return}var b=Hb(d,v);(b==null?void 0:b.activeIndex)!=null&&t.dispatch(GP({activeIndex:b.activeIndex,activeDataKey:void 0,activeCoordinate:b.activeCoordinate}))}else if(h==="item"){var S,O=To.touches[0];if(document.elementFromPoint==null||O==null)return;var _=document.elementFromPoint(O.clientX,O.clientY);if(!_||!_.getAttribute)return;var w=_.getAttribute(DT),j=(S=_.getAttribute(RT))!==null&&S!==void 0?S:void 0,A=Ji(d).find(P=>P.id===j);if(w==null||A==null||j==null)return;var{dataKey:N}=A,T=NW(d,w,j);t.dispatch(KP({activeDataKey:N,activeIndex:w,activeCoordinate:T,activeGraphicalItemId:j}))}Ei=null,Ba=null}};if(!s){f();return}l==="raf"?Ei=requestAnimationFrame(f):typeof l=="number"&&Ba===null&&(f(),To=null,Ba=setTimeout(()=>{To?f():(Ba=null,Ei=null)},l))}}});var Yb={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},AM=Qt({name:"eventSettings",initialState:Yb,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),{setEventSettings:PW}=AM.actions,MW=AM.reducer,DW=eT({brush:xX,cartesianAxis:rX,chartData:KK,errorBars:bF,eventSettings:MW,graphicalItems:uV,layout:BI,legend:Y8,options:BK,polarAxis:xG,polarOptions:CW,referenceElements:_X,renderedTicks:$X,rootProps:OW,tooltip:rH,zIndex:AK}),RW=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return cI({reducer:DW,preloadedState:t,middleware:r=>{var l;return r({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((l="es6")!==null&&l!==void 0?l:"")}).concat([pM.middleware,yM.middleware,yh.middleware,_M.middleware,jM.middleware])},enhancers:r=>{var l=r;return typeof r=="function"&&(l=r()),l.concat(vT({type:"raf"}))},devTools:{serialize:{replacer:wW},name:"recharts-".concat(n)}})};function CM(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,l=Jt(),u=y.useRef(null);if(l)return n;u.current==null&&(u.current=RW(t,r));var s=Jg;return y.createElement(uB,{context:s,store:u.current},n)}function kW(e){var{layout:t,margin:n}=e,r=Xe(),l=Jt();return y.useEffect(()=>{l||(r(LI(t)),r(kI(n)))},[r,l,t,n]),null}var TM=y.memo(kW,hu);function NM(e){var t=Xe();return y.useEffect(()=>{t(_W(e))},[t,e]),null}var LW=e=>{var t=Xe();return y.useEffect(()=>{t(PW(e))},[t,e]),null},PM=y.memo(LW,hu);function y2(e){var{zIndex:t,isPanorama:n}=e,r=y.useRef(null),l=Xe();return y.useLayoutEffect(()=>(r.current&&l(EK({zIndex:t,element:r.current,isPanorama:n})),()=>{l(jK({zIndex:t,isPanorama:n}))}),[l,t,n]),y.createElement("g",{tabIndex:-1,ref:r,className:"recharts-zIndex-layer_".concat(t)})}function g2(e){var{children:t,isPanorama:n}=e,r=pe(pK);if(!r||r.length===0)return t;var l=r.filter(s=>s<0),u=r.filter(s=>s>0);return y.createElement(y.Fragment,null,l.map(s=>y.createElement(y2,{key:s,zIndex:s,isPanorama:n})),t,u.map(s=>y.createElement(y2,{key:s,zIndex:s,isPanorama:n})))}var zW=["children"];function IW(e,t){if(e==null)return{};var n,r,l=BW(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function BW(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function gd(){return gd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gd.apply(null,arguments)}var UW={width:"100%",height:"100%",display:"block"},$W=y.forwardRef((e,t)=>{var n=c0(),r=f0(),l=QT();if(!_r(n)||!_r(r))return null;var{children:u,otherAttributes:s,title:f,desc:d}=e,h,m;return s!=null&&(typeof s.tabIndex=="number"?h=s.tabIndex:h=l?0:void 0,typeof s.role=="string"?m=s.role:m=l?"application":void 0),y.createElement(qg,gd({},s,{title:f,desc:d,role:m,tabIndex:h,width:n,height:r,style:UW,ref:t}),u)}),qW=e=>{var{children:t}=e,n=pe(qd);if(!n)return null;var{width:r,height:l,y:u,x:s}=n;return y.createElement(qg,{width:r,height:l,x:s,y:u},t)},b2=y.forwardRef((e,t)=>{var{children:n}=e,r=IW(e,zW),l=Jt();return l?y.createElement(qW,null,y.createElement(g2,{isPanorama:!0},n)):y.createElement($W,gd({ref:t},r),y.createElement(g2,{isPanorama:!1},n))});function HW(){var e=Xe(),[t,n]=y.useState(null),r=pe(t8);return y.useEffect(()=>{if(t!=null){var l=t.getBoundingClientRect(),u=l.width/t.offsetWidth;je(u)&&u!==r&&e(II(u))}},[t,e,r]),n}function x2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function KW(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?x2(Object(n),!0).forEach(function(r){YW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YW(e,t,n){return(t=GW(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GW(e){var t=VW(e,"string");return typeof t=="symbol"?t:t+""}function VW(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ga(){return Ga=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ga.apply(null,arguments)}var XW=()=>(JK(),null);function bd(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var FW=y.forwardRef((e,t)=>{var n,r,l=y.useRef(null),[u,s]=y.useState({containerWidth:bd((n=e.style)===null||n===void 0?void 0:n.width),containerHeight:bd((r=e.style)===null||r===void 0?void 0:r.height)}),f=y.useCallback((h,m)=>{s(v=>{var b=Math.round(h),S=Math.round(m);return v.containerWidth===b&&v.containerHeight===S?v:{containerWidth:b,containerHeight:S}})},[]),d=y.useCallback(h=>{if(typeof t=="function"&&t(h),l.current!=null&&(l.current.disconnect(),l.current=null),h!=null&&typeof ResizeObserver<"u"){var{width:m,height:v}=h.getBoundingClientRect();f(m,v);var b=O=>{var _=O[0];if(_!=null){var{width:w,height:j}=_.contentRect;f(w,j)}},S=new ResizeObserver(b);S.observe(h),l.current=S}},[t,f]);return y.useEffect(()=>()=>{var h=l.current;h!=null&&h.disconnect()},[f]),y.createElement(y.Fragment,null,y.createElement(ss,{width:u.containerWidth,height:u.containerHeight}),y.createElement("div",Ga({ref:d},e)))}),ZW=y.forwardRef((e,t)=>{var{width:n,height:r}=e,[l,u]=y.useState({containerWidth:bd(n),containerHeight:bd(r)}),s=y.useCallback((d,h)=>{u(m=>{var v=Math.round(d),b=Math.round(h);return m.containerWidth===v&&m.containerHeight===b?m:{containerWidth:v,containerHeight:b}})},[]),f=y.useCallback(d=>{if(typeof t=="function"&&t(d),d!=null){var{width:h,height:m}=d.getBoundingClientRect();s(h,m)}},[t,s]);return y.createElement(y.Fragment,null,y.createElement(ss,{width:l.containerWidth,height:l.containerHeight}),y.createElement("div",Ga({ref:f},e)))}),WW=y.forwardRef((e,t)=>{var{width:n,height:r}=e;return y.createElement(y.Fragment,null,y.createElement(ss,{width:n,height:r}),y.createElement("div",Ga({ref:t},e)))}),QW=y.forwardRef((e,t)=>{var{width:n,height:r}=e;return typeof n=="string"||typeof r=="string"?y.createElement(ZW,Ga({},e,{ref:t})):typeof n=="number"&&typeof r=="number"?y.createElement(WW,Ga({},e,{width:n,height:r,ref:t})):y.createElement(y.Fragment,null,y.createElement(ss,{width:n,height:r}),y.createElement("div",Ga({ref:t},e)))});function JW(e){return e?FW:QW}var eQ=y.forwardRef((e,t)=>{var{children:n,className:r,height:l,onClick:u,onContextMenu:s,onDoubleClick:f,onMouseDown:d,onMouseEnter:h,onMouseLeave:m,onMouseMove:v,onMouseUp:b,onTouchEnd:S,onTouchMove:O,onTouchStart:_,style:w,width:j,responsive:A,dispatchTouchEvents:N=!0}=e,T=y.useRef(null),P=Xe(),[M,R]=y.useState(null),[I,q]=y.useState(null),W=HW(),X=u0(),U=(X==null?void 0:X.width)>0?X.width:j,se=(X==null?void 0:X.height)>0?X.height:l,F=y.useCallback(fe=>{W(fe),typeof t=="function"&&t(fe),R(fe),q(fe),fe!=null&&(T.current=fe)},[W,t,R,q]),J=y.useCallback(fe=>{P(vM(fe)),P(Yn({handler:u,reactEvent:fe}))},[P,u]),z=y.useCallback(fe=>{P(Eg(fe)),P(Yn({handler:h,reactEvent:fe}))},[P,h]),V=y.useCallback(fe=>{P(YP()),P(Yn({handler:m,reactEvent:fe}))},[P,m]),ne=y.useCallback(fe=>{P(Eg(fe)),P(Yn({handler:v,reactEvent:fe}))},[P,v]),le=y.useCallback(()=>{P(SM())},[P]),Q=y.useCallback(()=>{P(wM())},[P]),D=y.useCallback(fe=>{P(xM(fe.key))},[P]),K=y.useCallback(fe=>{P(Yn({handler:s,reactEvent:fe}))},[P,s]),oe=y.useCallback(fe=>{P(Yn({handler:f,reactEvent:fe}))},[P,f]),ce=y.useCallback(fe=>{P(Yn({handler:d,reactEvent:fe}))},[P,d]),ge=y.useCallback(fe=>{P(Yn({handler:b,reactEvent:fe}))},[P,b]),ae=y.useCallback(fe=>{P(Yn({handler:_,reactEvent:fe}))},[P,_]),he=y.useCallback(fe=>{N&&P(EM(fe)),P(Yn({handler:O,reactEvent:fe}))},[P,N,O]),xe=y.useCallback(fe=>{P(Yn({handler:S,reactEvent:fe}))},[P,S]),ie=JW(A);return y.createElement(m5.Provider,{value:M},y.createElement(vC.Provider,{value:I},y.createElement(ie,{width:U??(w==null?void 0:w.width),height:se??(w==null?void 0:w.height),className:Ie("recharts-wrapper",r),style:KW({position:"relative",cursor:"default",width:U,height:se},w),onClick:J,onContextMenu:K,onDoubleClick:oe,onFocus:le,onBlur:Q,onKeyDown:D,onMouseDown:ce,onMouseEnter:z,onMouseLeave:V,onMouseMove:ne,onMouseUp:ge,onTouchEnd:xe,onTouchMove:he,onTouchStart:ae,ref:F},y.createElement(XW,null),n)))}),tQ=["width","height","responsive","children","className","style","compact","title","desc"];function nQ(e,t){if(e==null)return{};var n,r,l=rQ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function rQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var MM=y.forwardRef((e,t)=>{var{width:n,height:r,responsive:l,children:u,className:s,style:f,compact:d,title:h,desc:m}=e,v=nQ(e,tQ),b=pn(v);return d?y.createElement(y.Fragment,null,y.createElement(ss,{width:n,height:r}),y.createElement(b2,{otherAttributes:b,title:h,desc:m},u)):y.createElement(eQ,{className:s,style:f,width:n,height:r,responsive:l??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},y.createElement(b2,{otherAttributes:b,title:h,desc:m,ref:t},y.createElement(jX,null,u)))});function jg(){return jg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jg.apply(null,arguments)}function S2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function aQ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?S2(Object(n),!0).forEach(function(r){iQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function iQ(e,t,n){return(t=lQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lQ(e){var t=uQ(e,"string");return typeof t=="symbol"?t:t+""}function uQ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var oQ={top:5,right:5,bottom:5,left:5},sQ=aQ({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:oQ,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},Yb),DM=y.forwardRef(function(t,n){var r,l=Ct(t.categoricalChartProps,sQ),{chartName:u,defaultTooltipEventType:s,validateTooltipEventTypes:f,tooltipPayloadSearcher:d,categoricalChartProps:h}=t,m={chartName:u,defaultTooltipEventType:s,validateTooltipEventTypes:f,tooltipPayloadSearcher:d,eventEmitter:void 0};return y.createElement(CM,{preloadedState:{options:m},reduxStoreName:(r=h.id)!==null&&r!==void 0?r:u},y.createElement(G5,{chartData:h.data}),y.createElement(TM,{layout:l.layout,margin:l.margin}),y.createElement(PM,{throttleDelay:l.throttleDelay,throttledEvents:l.throttledEvents}),y.createElement(NM,{baseValue:l.baseValue,accessibilityLayer:l.accessibilityLayer,barCategoryGap:l.barCategoryGap,maxBarSize:l.maxBarSize,stackOffset:l.stackOffset,barGap:l.barGap,barSize:l.barSize,syncId:l.syncId,syncMethod:l.syncMethod,className:l.className,reverseStackOrder:l.reverseStackOrder}),y.createElement(MM,jg({},l,{ref:n})))}),cQ=["axis","item"],fQ=y.forwardRef((e,t)=>y.createElement(DM,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:cQ,tooltipPayloadSearcher:_b,categoricalChartProps:e,ref:t}));function dQ(e){var t=Xe();return y.useEffect(()=>{t(AW(e))},[t,e]),null}var hQ=["layout"];function Ag(){return Ag=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ag.apply(null,arguments)}function mQ(e,t){if(e==null)return{};var n,r,l=vQ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function vQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function w2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function pQ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?w2(Object(n),!0).forEach(function(r){yQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function yQ(e,t,n){return(t=gQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gQ(e){var t=bQ(e,"string");return typeof t=="symbol"?t:t+""}function bQ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var xQ={top:5,right:5,bottom:5,left:5},RM=pQ({accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:xQ,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},Yb),SQ=y.forwardRef(function(t,n){var r,l=Ct(t.categoricalChartProps,RM),{layout:u}=l,s=mQ(l,hQ),{chartName:f,defaultTooltipEventType:d,validateTooltipEventTypes:h,tooltipPayloadSearcher:m}=t,v={chartName:f,defaultTooltipEventType:d,validateTooltipEventTypes:h,tooltipPayloadSearcher:m,eventEmitter:void 0};return y.createElement(CM,{preloadedState:{options:v},reduxStoreName:(r=l.id)!==null&&r!==void 0?r:f},y.createElement(G5,{chartData:l.data}),y.createElement(TM,{layout:u,margin:l.margin}),y.createElement(PM,{throttleDelay:l.throttleDelay,throttledEvents:l.throttledEvents}),y.createElement(NM,{baseValue:void 0,accessibilityLayer:l.accessibilityLayer,barCategoryGap:l.barCategoryGap,maxBarSize:l.maxBarSize,stackOffset:l.stackOffset,barGap:l.barGap,barSize:l.barSize,syncId:l.syncId,syncMethod:l.syncMethod,className:l.className,reverseStackOrder:l.reverseStackOrder}),y.createElement(dQ,{cx:l.cx,cy:l.cy,startAngle:l.startAngle,endAngle:l.endAngle,innerRadius:l.innerRadius,outerRadius:l.outerRadius}),y.createElement(MM,Ag({},s,{ref:n})))});function O2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function _2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?O2(Object(n),!0).forEach(function(r){wQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function wQ(e,t,n){return(t=OQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function OQ(e){var t=_Q(e,"string");return typeof t=="symbol"?t:t+""}function _Q(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var EQ=["item"],jQ=_2(_2({},RM),{},{layout:"centric",startAngle:0,endAngle:360}),AQ=y.forwardRef((e,t)=>{var n=Ct(e,jQ);return y.createElement(SQ,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:EQ,tooltipPayloadSearcher:_b,categoricalChartProps:n,ref:t})}),CQ=["axis"],TQ=y.forwardRef((e,t)=>y.createElement(DM,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:CQ,tooltipPayloadSearcher:_b,categoricalChartProps:e,ref:t}));function E2(e){const t=new Date(e);return`${String(t.getHours()).padStart(2,"0")}:00`}function NQ({data:e,height:t=240,color:n="#6366f1"}){return x.jsx(o0,{width:"100%",height:t,children:x.jsxs(TQ,{data:e,children:[x.jsx("defs",{children:x.jsxs("linearGradient",{id:"areaGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[x.jsx("stop",{offset:"0%",stopColor:n,stopOpacity:.3}),x.jsx("stop",{offset:"100%",stopColor:n,stopOpacity:0})]})}),x.jsx(Q5,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),x.jsx($b,{dataKey:"bucket",tickFormatter:E2,tick:{fontSize:12,fill:"#6b7280"},axisLine:{stroke:"#e5e7eb"},tickLine:!1}),x.jsx(qb,{allowDecimals:!1,tick:{fontSize:12,fill:"#6b7280"},axisLine:!1,tickLine:!1,width:40}),x.jsx(Eb,{labelFormatter:r=>E2(String(r)),formatter:r=>[String(r),"Actions"],contentStyle:{fontSize:12,borderRadius:6,border:"1px solid #e5e7eb"}}),x.jsx(oM,{type:"monotone",dataKey:"count",stroke:n,strokeWidth:2,fill:"url(#areaGradient)"})]})})}function PQ(e){const t=e.decision??"";return x.jsx(v0,{...e,fill:iC[t]??lC})}function MQ({data:e,height:t=260}){const n=e.map(r=>({name:zg(r.decision),value:r.count,decision:r.decision,fill:iC[r.decision]??lC}));return x.jsx(o0,{width:"100%",height:t,children:x.jsxs(AQ,{children:[x.jsx(H5,{data:n,dataKey:"value",nameKey:"name",cx:"50%",cy:"45%",innerRadius:"55%",outerRadius:"80%",paddingAngle:2,shape:PQ}),x.jsx(Eb,{formatter:r=>[String(r),"Actions"],contentStyle:{fontSize:12,borderRadius:6,border:"1px solid #e5e7eb"}}),x.jsx(ZT,{verticalAlign:"bottom",iconType:"circle",iconSize:8,wrapperStyle:{fontSize:12}})]})})}function DQ(e){const t=e.reduce((n,r)=>Math.max(n,r.tool_name.length),0);return Math.min(t*7.5+12,220)}function j2({data:e,height:t}){const n=t??Math.max(120,e.length*36+20),r=y.useMemo(()=>DQ(e),[e]);return x.jsx(o0,{width:"100%",height:n,children:x.jsxs(fQ,{data:e,layout:"vertical",margin:{left:8,right:16,top:4,bottom:4},children:[x.jsx($b,{type:"number",allowDecimals:!1,tick:{fontSize:12,fill:"#6b7280"},axisLine:{stroke:"#e5e7eb"},tickLine:!1}),x.jsx(qb,{type:"category",dataKey:"tool_name",width:r,tick:{fontSize:12,fill:"#374151"},axisLine:!1,tickLine:!1}),x.jsx(Eb,{cursor:!1,formatter:l=>[String(l),"Calls"],contentStyle:{fontSize:12,borderRadius:6,border:"1px solid #e5e7eb"}}),x.jsx(hM,{dataKey:"count",fill:"#6366f1",barSize:20,radius:[0,4,4,0]})]})})}function RQ(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[l,u]=y.useState(null),[s,f]=y.useState(Io),d=y.useCallback(w=>{const j=new Date(Date.now()-s).toISOString();i4(j,void 0).then(A=>{t(A),u(null),w&&r(!1)}).catch(A=>{w&&(u(A instanceof Error?A.message:"Failed to load analytics"),r(!1))})},[s]);y.useEffect(()=>{r(!0),d(!0)},[d]);function h(w){w!==s&&f(w)}if(n)return x.jsxs("div",{className:"flex flex-col gap-6",children:[x.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:Array.from({length:4},(w,j)=>x.jsx("div",{className:"h-20 animate-pulse rounded-md bg-gray-100"},j))}),x.jsx("div",{className:"h-64 animate-pulse rounded-md bg-gray-100"}),x.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[x.jsx("div",{className:"h-72 animate-pulse rounded-md bg-gray-100"}),x.jsx("div",{className:"h-72 animate-pulse rounded-md bg-gray-100"})]})]});if(l)return x.jsx(Ii,{error:l});if(!e||e.total===0)return x.jsxs("div",{className:"flex h-full flex-col gap-6",children:[x.jsxs("div",{children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Analytics"}),x.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Tool call volume and decision breakdown"})]}),x.jsx(A2,{activePreset:s,onPresetChange:h}),x.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 text-gray-500",children:[x.jsxs("svg",{className:"h-10 w-10 text-gray-300",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",children:[x.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6a7.5 7.5 0 1 0 7.5 7.5h-7.5V6Z"}),x.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 10.5H21A7.5 7.5 0 0 0 13.5 3v7.5Z"})]}),x.jsx("p",{className:"text-sm font-medium",children:"No data yet"}),x.jsx("p",{className:"text-xs text-gray-400",children:"Start sending tool calls through Helio"})]})]});const m=e.allowed_total??"—",v=e.blocked_total??"—",b=e.by_block_reason===void 0,S=(e.by_block_reason??[]).map(w=>({tool_name:zg(w.reason),count:w.count})),O=e.top_tools.map(w=>({tool_name:w.upstream?`${w.tool_name} (${w.upstream})`:w.tool_name,count:w.count})),_=e.approval_rate!=null?`${String(Math.round(e.approval_rate*100))}%`:"—";return x.jsxs("div",{className:"flex h-full flex-col gap-6 overflow-y-auto",children:[x.jsxs("div",{children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Analytics"}),x.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Tool call volume and decision breakdown"})]}),x.jsx(A2,{activePreset:s,onPresetChange:h}),x.jsx("section",{children:x.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[x.jsx(cf,{label:"Total Actions",value:e.total}),x.jsx(cf,{label:"Allowed",value:m,color:"emerald"}),x.jsx(cf,{label:"Blocked",value:v,color:"red"}),x.jsx(cf,{label:"Approval Rate",value:_,color:"amber"})]})}),x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Actions Per Hour"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:x.jsx(NQ,{data:e.per_hour})})]}),x.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Matched Actions"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:e.by_decision.length>0?x.jsx(MQ,{data:e.by_decision}):x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"No decision data"})})]}),x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Top Tools"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:O.length>0?x.jsx(j2,{data:O}):x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"No tool data"})})]})]}),x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Blocked by Reason"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:b?x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"Requires a newer proxy version"}):S.length>0?x.jsx(j2,{data:S}):x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"No blocked actions"})})]})]})}function A2({activePreset:e,onPresetChange:t}){return x.jsx("div",{className:"flex gap-1.5",children:oC.map(n=>x.jsx("button",{type:"button",onClick:()=>{t(n.ms)},className:`rounded-md px-3 py-1.5 text-sm transition-colors ${e===n.ms?"bg-gray-900 text-white":"border border-gray-200 bg-white text-gray-600 hover:bg-gray-50"}`,children:n.label},n.label))})}const kQ={emerald:"text-emerald-700",red:"text-red-700",amber:"text-amber-700"};function cf({label:e,value:t,color:n}){const r=(n&&kQ[n])??"text-gray-900";return x.jsxs("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:[x.jsx("p",{className:"text-sm font-medium text-gray-500",children:e}),x.jsx("p",{className:`mt-1 text-2xl font-semibold tabular-nums ${r}`,children:typeof t=="number"?t.toLocaleString():t})]})}function LQ(){const[e,t]=y.useState("booting"),[n,r]=y.useState(!1),[l,u]=y.useState(""),[s,f]=y.useState(null),d=y.useCallback(()=>{Si(void 0),t("locked"),f("Session expired. Enter the dashboard secret again.")},[]),h=y.useCallback(async()=>{t("booting");try{const b=await J2();if(r(b.auth_required),!b.auth_required||b.authenticated){Si(b.csrf_token),f(null),t("ready");return}Si(void 0),t("locked"),f(null)}catch{Si(void 0),t("locked"),f("Unable to check session state. Verify the proxy is running and try again.")}},[]);y.useEffect(()=>{h()},[h]),y.useEffect(()=>(oO(d),()=>{oO(void 0)}),[d]);async function m(b){if(b.preventDefault(),!l.trim()){f("Enter the dashboard secret from your Helio config.");return}t("authenticating"),f(null);try{const S=await e4(l.trim());r(S.auth_required),Si(S.csrf_token),u(""),t("ready")}catch(S){Si(void 0),t("locked"),S instanceof Q2&&S.status===401?f("Invalid dashboard secret. Check your Helio config and try again."):f("Sign in failed due to a network or server error. Try again.")}}async function v(){try{await t4()}catch{}Si(void 0),t("locked"),f("Signed out. Enter the dashboard secret to unlock.")}return e==="booting"?x.jsx("div",{className:"flex min-h-screen items-center justify-center bg-gray-50 px-4",children:x.jsxs("div",{className:"w-full max-w-md rounded-lg border border-gray-200 bg-white p-6 text-center shadow-sm",children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Helio Dashboard"}),x.jsx("p",{className:"mt-2 text-sm text-gray-600",children:"Checking session status..."})]})}):e==="locked"||e==="authenticating"?x.jsx("div",{className:"flex min-h-screen items-center justify-center bg-gray-50 px-4",children:x.jsxs("form",{onSubmit:b=>{m(b)},className:"w-full max-w-md rounded-lg border border-gray-200 bg-white p-6 shadow-sm",children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Dashboard Locked"}),x.jsxs("p",{className:"mt-2 text-sm text-gray-600",children:["Enter your dashboard secret, the ",x.jsx("code",{children:"dashboard.api_secret"})," value from your Helio config. If that is an env placeholder (for example"," ",x.jsx("code",{children:"${HELIO_DASHBOARD_SECRET}"}),"), enter the value it resolves to."]}),x.jsx("label",{htmlFor:"dashboard-secret",className:"mt-4 block text-sm font-medium text-gray-700",children:"Dashboard secret"}),x.jsx("input",{id:"dashboard-secret",type:"password",autoComplete:"current-password",value:l,onChange:b=>{u(b.target.value)},disabled:e==="authenticating",className:"mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 shadow-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:cursor-not-allowed disabled:bg-gray-100"}),s&&x.jsx("p",{className:"mt-3 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800",children:s}),x.jsx("button",{type:"submit",disabled:e==="authenticating",className:"mt-4 inline-flex w-full items-center justify-center rounded-md bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-500 disabled:cursor-not-allowed disabled:bg-blue-300",children:e==="authenticating"?"Unlocking...":"Unlock Dashboard"})]})}):x.jsx(Kk,{children:x.jsx(f4,{children:x.jsx(c4,{onSessionExpired:d,children:x.jsx(xk,{children:x.jsxs(Ua,{element:x.jsx(y4,{onLogout:n?()=>void v():void 0}),children:[x.jsx(Ua,{index:!0,element:x.jsx(z4,{})}),x.jsx(Ua,{path:"approvals",element:x.jsx(Y4,{})}),x.jsx(Ua,{path:"audit",element:x.jsx(fL,{})}),x.jsx(Ua,{path:"limits",element:x.jsx(vL,{})}),x.jsx(Ua,{path:"budgets",element:x.jsx(SL,{})}),x.jsx(Ua,{path:"analytics",element:x.jsx(RQ,{})})]})})})})})}const kM=document.getElementById("root");if(!kM)throw new Error("Dashboard mount point #root not found in index.html");yR.createRoot(kM).render(x.jsx(y.StrictMode,{children:x.jsx(LQ,{})}));
128
+ */var MA;function CG(){if(MA)return Ve;MA=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),b=Symbol.for("react.view_transition"),S=Symbol.for("react.client.reference");function O(_){if(typeof _=="object"&&_!==null){var w=_.$$typeof;switch(w){case e:switch(_=_.type,_){case n:case l:case r:case d:case h:case b:return _;default:switch(_=_&&_.$$typeof,_){case s:case f:case v:case m:return _;case u:return _;default:return w}}case t:return w}}}return Ve.ContextConsumer=u,Ve.ContextProvider=s,Ve.Element=e,Ve.ForwardRef=f,Ve.Fragment=n,Ve.Lazy=v,Ve.Memo=m,Ve.Portal=t,Ve.Profiler=l,Ve.StrictMode=r,Ve.Suspense=d,Ve.SuspenseList=h,Ve.isContextConsumer=function(_){return O(_)===u},Ve.isContextProvider=function(_){return O(_)===s},Ve.isElement=function(_){return typeof _=="object"&&_!==null&&_.$$typeof===e},Ve.isForwardRef=function(_){return O(_)===f},Ve.isFragment=function(_){return O(_)===n},Ve.isLazy=function(_){return O(_)===v},Ve.isMemo=function(_){return O(_)===m},Ve.isPortal=function(_){return O(_)===t},Ve.isProfiler=function(_){return O(_)===l},Ve.isStrictMode=function(_){return O(_)===r},Ve.isSuspense=function(_){return O(_)===d},Ve.isSuspenseList=function(_){return O(_)===h},Ve.isValidElementType=function(_){return typeof _=="string"||typeof _=="function"||_===n||_===l||_===r||_===d||_===h||typeof _=="object"&&_!==null&&(_.$$typeof===v||_.$$typeof===m||_.$$typeof===s||_.$$typeof===u||_.$$typeof===f||_.$$typeof===S||_.getModuleId!==void 0)},Ve.typeOf=O,Ve}var DA;function TG(){return DA||(DA=1,xy.exports=CG()),xy.exports}var NG=TG(),RA=e=>typeof e=="string"?e:e?e.displayName||e.name||"Component":"",kA=null,Sy=null,z5=e=>{if(e===kA&&Array.isArray(Sy))return Sy;var t=[];return y.Children.forEach(e,n=>{ut(n)||(NG.isFragment(n)?t=t.concat(z5(n.props.children)):t.push(n))}),Sy=t,kA=e,t};function Nb(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(l=>RA(l)):r=[RA(t)],z5(e).forEach(l=>{var u=$i(l,"type.displayName")||$i(l,"type.name");u&&r.indexOf(u)!==-1&&n.push(l)}),n}var I5=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0,wy={},LA;function PG(){return LA||(LA=1,(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});function t(n){var l;if(typeof n!="object"||n==null)return!1;if(Object.getPrototypeOf(n)===null)return!0;if(Object.prototype.toString.call(n)!=="[object Object]"){const u=n[Symbol.toStringTag];return u==null||!((l=Object.getOwnPropertyDescriptor(n,Symbol.toStringTag))!=null&&l.writable)?!1:n.toString()===`[object ${u}]`}let r=n;for(;Object.getPrototypeOf(r)!==null;)r=Object.getPrototypeOf(r);return Object.getPrototypeOf(n)===r}e.isPlainObject=t})(wy)),wy}var Oy,zA;function MG(){return zA||(zA=1,Oy=PG().isPlainObject),Oy}var DG=MG();const RG=Qa(DG);var IA,BA,UA,$A,qA;function HA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function KA(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?HA(Object(n),!0).forEach(function(r){kG(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):HA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function kG(e,t,n){return(t=LG(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function LG(e){var t=zG(e,"string");return typeof t=="symbol"?t:t+""}function zG(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function dd(){return dd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},dd.apply(null,arguments)}function Ao(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var YA=(e,t,n,r,l)=>{var u=n-r,s;return s=dt(IA||(IA=Ao(["M ",",",""])),e,t),s+=dt(BA||(BA=Ao(["L ",",",""])),e+n,t),s+=dt(UA||(UA=Ao(["L ",",",""])),e+n-u/2,t+l),s+=dt($A||($A=Ao(["L ",",",""])),e+n-u/2-r,t+l),s+=dt(qA||(qA=Ao(["L ",","," Z"])),e,t),s},IG={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},BG=e=>{var t=Ct(e,IG),{x:n,y:r,upperWidth:l,lowerWidth:u,height:s,className:f}=t,{animationEasing:d,animationDuration:h,animationBegin:m,isUpdateAnimationActive:v}=t,b=y.useRef(null),[S,O]=y.useState(-1),_=y.useRef(l),w=y.useRef(u),j=y.useRef(s),A=y.useRef(n),N=y.useRef(r),T=hs(e,"trapezoid-");if(y.useEffect(()=>{if(b.current&&b.current.getTotalLength)try{var F=b.current.getTotalLength();F&&O(F)}catch{}},[]),n!==+n||r!==+r||l!==+l||u!==+u||s!==+s||l===0&&u===0||s===0)return null;var P=Ie("recharts-trapezoid",f);if(!v)return y.createElement("g",null,y.createElement("path",dd({},rn(t),{className:P,d:YA(n,r,l,u,s)})));var M=_.current,R=w.current,I=j.current,q=A.current,W=N.current,X="0px ".concat(S===-1?1:S,"px"),U="".concat(S,"px ").concat(S,"px"),se=JT(["strokeDasharray"],h,d);return y.createElement(ds,{animationId:T,key:T,canBegin:S>0,duration:h,easing:d,isActive:v,begin:m},F=>{var J=nt(M,l,F),z=nt(R,u,F),V=nt(I,s,F),ne=nt(q,n,F),le=nt(W,r,F);b.current&&(_.current=J,w.current=z,j.current=V,A.current=ne,N.current=le);var Q=F>0?{transition:se,strokeDasharray:U}:{strokeDasharray:X};return y.createElement("path",dd({},rn(t),{className:P,d:YA(ne,le,J,z,V),ref:b,style:KA(KA({},Q),t.style)}))})},UG=["option","shapeType","activeClassName","inActiveClassName"];function $G(e,t){if(e==null)return{};var n,r,l=qG(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function qG(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function GA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function hd(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?GA(Object(n),!0).forEach(function(r){HG(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):GA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function HG(e,t,n){return(t=KG(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function KG(e){var t=YG(e,"string");return typeof t=="symbol"?t:t+""}function YG(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function GG(e,t){return hd(hd({},t),e)}function VG(e,t){return e==="symbols"}function VA(e){var{shapeType:t,elementProps:n}=e;switch(t){case"rectangle":return y.createElement(rN,n);case"trapezoid":return y.createElement(BG,n);case"sector":return y.createElement(v0,n);case"symbols":if(VG(t))return y.createElement(Zg,n);break;case"curve":return y.createElement(Zl,n);default:return null}}function XG(e){return y.isValidElement(e)?e.props:e}function B5(e){var{option:t,shapeType:n,activeClassName:r="recharts-active-shape",inActiveClassName:l="recharts-shape"}=e,u=$G(e,UG),s;if(y.isValidElement(t))s=y.cloneElement(t,hd(hd({},u),XG(t)));else if(typeof t=="function")s=t(u,u.index);else if(RG(t)&&typeof t!="boolean"){var f=GG(t,u);s=y.createElement(VA,{shapeType:n,elementProps:f})}else{var d=u;s=y.createElement(VA,{shapeType:n,elementProps:d})}return u.isActive?y.createElement(ht,{className:r},s):y.createElement(ht,{className:l},s)}var Pb=(e,t,n)=>{var r=Xe();return(l,u)=>s=>{e==null||e(l,u,s),r(KP({activeIndex:String(u),activeDataKey:t,activeCoordinate:l.tooltipPosition,activeGraphicalItemId:n}))}},Mb=e=>{var t=Xe();return(n,r)=>l=>{e==null||e(n,r,l),t(eH())}},Db=(e,t,n)=>{var r=Xe();return(l,u)=>s=>{e==null||e(l,u,s),r(tH({activeIndex:String(u),activeDataKey:t,activeCoordinate:l.tooltipPosition,activeGraphicalItemId:n}))}};function Rb(e){var{tooltipEntrySettings:t}=e,n=Xe(),r=Jt(),l=y.useRef(null);return y.useLayoutEffect(()=>{r||(l.current===null?n(Zq(t)):l.current!==t&&n(Wq({prev:l.current,next:t})),l.current=t)},[t,n,r]),y.useLayoutEffect(()=>()=>{l.current&&(n(Qq(l.current)),l.current=null)},[n]),null}function U5(e){var{legendPayload:t}=e,n=Xe(),r=Jt(),l=y.useRef(null);return y.useLayoutEffect(()=>{r||(l.current===null?n(VT(t)):l.current!==t&&n(XT({prev:l.current,next:t})),l.current=t)},[n,r,t]),y.useLayoutEffect(()=>()=>{l.current&&(n(FT(l.current)),l.current=null)},[n]),null}function FG(e){var{legendPayload:t}=e,n=Xe(),r=pe(ke),l=y.useRef(null);return y.useLayoutEffect(()=>{r!=="centric"&&r!=="radial"||(l.current===null?n(VT(t)):l.current!==t&&n(XT({prev:l.current,next:t})),l.current=t)},[n,r,t]),y.useLayoutEffect(()=>()=>{l.current&&(n(FT(l.current)),l.current=null)},[n]),null}var _y,ZG=()=>{var[e]=y.useState(()=>Bo("uid-"));return e},WG=(_y=fR.useId)!==null&&_y!==void 0?_y:ZG;function QG(e,t){var n=WG();return t||(e?"".concat(e,"-").concat(n):n)}var JG=y.createContext(void 0),kb=e=>{var{id:t,type:n,children:r}=e,l=QG("recharts-".concat(n),t);return y.createElement(JG.Provider,{value:l},r(l))},eV={cartesianItems:[],polarItems:[]},$5=Qt({name:"graphicalItems",initialState:eV,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:et()},replaceCartesianGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,l=Vn(e).cartesianItems.indexOf(n);l>-1&&(e.cartesianItems[l]=r)},prepare:et()},removeCartesianGraphicalItem:{reducer(e,t){var n=Vn(e).cartesianItems.indexOf(t.payload);n>-1&&e.cartesianItems.splice(n,1)},prepare:et()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:et()},removePolarGraphicalItem:{reducer(e,t){var n=Vn(e).polarItems.indexOf(t.payload);n>-1&&e.polarItems.splice(n,1)},prepare:et()},replacePolarGraphicalItem:{reducer(e,t){var{prev:n,next:r}=t.payload,l=Vn(e).polarItems.indexOf(n);l>-1&&(e.polarItems[l]=r)},prepare:et()}}}),{addCartesianGraphicalItem:tV,replaceCartesianGraphicalItem:nV,removeCartesianGraphicalItem:rV,addPolarGraphicalItem:aV,removePolarGraphicalItem:iV,replacePolarGraphicalItem:lV}=$5.actions,uV=$5.reducer,oV=e=>{var t=Xe(),n=y.useRef(null);return y.useLayoutEffect(()=>{n.current===null?t(tV(e)):n.current!==e&&t(nV({prev:n.current,next:e})),n.current=e},[t,e]),y.useLayoutEffect(()=>()=>{n.current&&(t(rV(n.current)),n.current=null)},[t]),null},q5=y.memo(oV),sV=e=>{var t=Xe(),n=y.useRef(null);return y.useLayoutEffect(()=>{n.current===null?t(aV(e)):n.current!==e&&t(lV({prev:n.current,next:e})),n.current=e},[t,e]),y.useLayoutEffect(()=>()=>{n.current&&(t(iV(n.current)),n.current=null)},[t]),null},cV=y.memo(sV),fV=["key"],dV=["onMouseEnter","onClick","onMouseLeave"],hV=["id"],mV=["id"];function Za(){return Za=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Za.apply(null,arguments)}function ph(e,t){if(e==null)return{};var n,r,l=vV(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function vV(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function XA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function at(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?XA(Object(n),!0).forEach(function(r){pV(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):XA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function pV(e,t,n){return(t=yV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yV(e){var t=gV(e,"string");return typeof t=="symbol"?t:t+""}function gV(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function bV(e){var t=y.useMemo(()=>Nb(e.children,dh),[e.children]),n=pe(r=>jG(r,e.id,t));return n==null?null:y.createElement(FG,{legendPayload:n})}function xV(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(y.isValidElement(e)){var t,n=(t=e.props)===null||t===void 0?void 0:t.fill;return typeof n=="string"?n:void 0}var{fill:r}=e;return typeof r=="string"?r:void 0}}var SV=y.memo(e=>{var{dataKey:t,nameKey:n,sectors:r,stroke:l,strokeWidth:u,fill:s,name:f,hide:d,tooltipType:h,id:m,activeShape:v}=e,b=xV(v),S=r.map(_=>{var w=_.tooltipPayload;return b==null||w==null?w:w.map(j=>at(at({},j),{},{color:b,fill:b}))}),O={dataDefinedOnItem:S,getPosition:_=>{var w;return(w=r[Number(_)])===null||w===void 0?void 0:w.tooltipPosition},settings:{stroke:l,strokeWidth:u,fill:s,dataKey:t,nameKey:n,name:du(f,t),hide:d,type:h,color:s,unit:"",graphicalItemId:m}};return y.createElement(Rb,{tooltipEntrySettings:O})}),wV=(e,t)=>e>t?"start":e<t?"end":"middle",OV=(e,t,n)=>Wt(typeof t=="function"?t(e):t,n,n*.8),_V=(e,t,n)=>{var{top:r,left:l,width:u,height:s}=t,f=aN(u,s),d=l+Wt(e.cx,u,u/2),h=r+Wt(e.cy,s,s/2),m=Wt(e.innerRadius,f,0),v=OV(n,e.outerRadius,f),b=e.maxRadius||Math.sqrt(u*u+s*s)/2;return{cx:d,cy:h,innerRadius:m,outerRadius:v,maxRadius:b}},EV=(e,t)=>{var n=kt(t-e),r=Math.min(Math.abs(t-e),360);return n*r},jV=(e,t)=>{if(y.isValidElement(e))return y.cloneElement(e,t);if(typeof e=="function")return e(t);var n=Ie("recharts-pie-label-line",typeof e!="boolean"?e.className:""),{key:r}=t,l=ph(t,fV);return y.createElement(Zl,Za({},l,{type:"linear",className:n}))},AV=(e,t,n)=>{if(y.isValidElement(e))return y.cloneElement(e,t);var r=n;if(typeof e=="function"&&(r=e(t),y.isValidElement(r)))return r;var l=Ie("recharts-pie-label-text",k5(e));return y.createElement(hh,Za({},t,{alignmentBaseline:"middle",className:l}),r)};function CV(e){var{sectors:t,props:n,showLabels:r}=e,{label:l,labelLine:u,dataKey:s}=n;if(!r||!l||!t)return null;var f=pn(n),d=Bi(l),h=Bi(u),m=typeof l=="object"&&"offsetRadius"in l&&typeof l.offsetRadius=="number"&&l.offsetRadius||20,v=t.map((b,S)=>{var O=(b.startAngle+b.endAngle)/2,_=St(b.cx,b.cy,b.outerRadius+m,O),w=at(at(at(at({},f),b),{},{stroke:"none"},d),{},{index:S,textAnchor:wV(_.x,b.cx)},_),j=at(at(at(at({},f),b),{},{fill:"none",stroke:b.fill},h),{},{index:S,points:[St(b.cx,b.cy,b.outerRadius,O),_],key:"line"});return y.createElement(yn,{zIndex:wt.label,key:"label-".concat(b.startAngle,"-").concat(b.endAngle,"-").concat(b.midAngle,"-").concat(S)},y.createElement(ht,null,u&&jV(u,j),AV(l,w,$e(b,s))))});return y.createElement(ht,{className:"recharts-pie-labels"},v)}function TV(e){var{sectors:t,props:n,showLabels:r}=e,{label:l}=n;return typeof l=="object"&&l!=null&&"position"in l?y.createElement(Ab,{label:l}):y.createElement(CV,{sectors:t,props:n,showLabels:r})}function NV(e){var{sectors:t,activeShape:n,inactiveShape:r,allOtherPieProps:l,shape:u,id:s}=e,f=pe(Fa),d=pe(bb),h=pe(l5),{onMouseEnter:m,onClick:v,onMouseLeave:b}=l,S=ph(l,dV),O=Pb(m,l.dataKey,s),_=Mb(b),w=Db(v,l.dataKey,s);return t==null||t.length===0?null:y.createElement(y.Fragment,null,t.map((j,A)=>{if((j==null?void 0:j.startAngle)===0&&(j==null?void 0:j.endAngle)===0&&t.length!==1)return null;var N=h==null||h===s,T=String(A)===f&&(d==null||l.dataKey===d)&&N,P=f?r:null,M=n&&T?n:P,R=at(at({},j),{},{stroke:j.stroke,tabIndex:-1,[DT]:A,[RT]:s});return y.createElement(ht,Za({key:"sector-".concat(j==null?void 0:j.startAngle,"-").concat(j==null?void 0:j.endAngle,"-").concat(j.midAngle,"-").concat(A),tabIndex:-1,className:"recharts-pie-sector"},is(S,j,A),{onMouseEnter:O(j,A),onMouseLeave:_(j,A),onClick:w(j,A)}),y.createElement(B5,Za({option:u??M,index:A,shapeType:"sector",isActive:T},R)))}))}function PV(e){var t,{pieSettings:n,displayedData:r,cells:l,offset:u}=e,{cornerRadius:s,startAngle:f,endAngle:d,dataKey:h,nameKey:m,tooltipType:v}=n,b=Math.abs(n.minAngle),S=EV(f,d),O=Math.abs(S),_=r.length<=1?0:(t=n.paddingAngle)!==null&&t!==void 0?t:0,w=r.filter(I=>$e(I,h,0)!==0).length,j=(O>=360?w:w-1)*_,A=r.reduce((I,q)=>{var W=$e(q,h,0);return I+(de(W)?W:0)},0),N=b>0&&A>0&&r.some(I=>{var q=$e(I,h,0),W=(de(q)?q:0)/A;return q!==0&&W*O<b}),T=N?b:0,P=O-w*T-j,M;if(A>0){var R;M=r.map((I,q)=>{var W=$e(I,h,0),X=$e(I,m,q),U=_V(n,u,I),se=(de(W)?W:0)/A,F,J=at(at({},I),l&&l[q]&&l[q].props),z=J!=null&&"fill"in J&&typeof J.fill=="string"?J.fill:n.fill;q?F=R.endAngle+kt(S)*_*(W!==0?1:0):F=f;var V=F+kt(S)*((W!==0?T:0)+se*P),ne=(F+V)/2,le=(U.innerRadius+U.outerRadius)/2,Q=[{name:X,value:W,payload:J,dataKey:h,type:v,color:z,fill:z,graphicalItemId:n.id}],D=St(U.cx,U.cy,le,ne);return R=at(at(at(at({},n.presentationProps),{},{percent:se,cornerRadius:typeof s=="string"?parseFloat(s):s,name:X,tooltipPayload:Q,midAngle:ne,middleRadius:le,tooltipPosition:D},J),U),{},{value:W,dataKey:h,startAngle:F,endAngle:V,payload:J,paddingAngle:W!==0?kt(S)*_:0}),R})}return M}function MV(e){var{showLabels:t,sectors:n,children:r}=e,l=y.useMemo(()=>!t||!n?[]:n.map(u=>({value:u.value,payload:u.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:u.cx,cy:u.cy,innerRadius:u.innerRadius,outerRadius:u.outerRadius,startAngle:u.startAngle,endAngle:u.endAngle,clockWise:!1},fill:u.fill})),[n,t]);return y.createElement(sG,{value:t?l:void 0},r)}function DV(e){var{props:t,previousSectorsRef:n,id:r}=e,{sectors:l,isAnimationActive:u,animationBegin:s,animationDuration:f,animationEasing:d,activeShape:h,inactiveShape:m,onAnimationStart:v,onAnimationEnd:b}=t,S=hs(t,"recharts-pie-"),O=n.current,[_,w]=y.useState(!1),j=y.useCallback(()=>{typeof b=="function"&&b(),w(!1)},[b]),A=y.useCallback(()=>{typeof v=="function"&&v(),w(!0)},[v]);return y.createElement(MV,{showLabels:!_,sectors:l},y.createElement(ds,{animationId:S,begin:s,duration:f,isActive:u,easing:d,onAnimationStart:A,onAnimationEnd:j,key:S},N=>{var T,P=[],M=l&&l[0],R=(T=M==null?void 0:M.startAngle)!==null&&T!==void 0?T:0;return l==null||l.forEach((I,q)=>{var W=O&&O[q],X=q>0?$i(I,"paddingAngle",0):0;if(W){var U=nt(W.endAngle-W.startAngle,I.endAngle-I.startAngle,N),se=at(at({},I),{},{startAngle:R+X,endAngle:R+U+X});P.push(se),R=se.endAngle}else{var{endAngle:F,startAngle:J}=I,z=nt(0,F-J,N),V=at(at({},I),{},{startAngle:R+X,endAngle:R+z+X});P.push(V),R=V.endAngle}}),n.current=P,y.createElement(ht,null,y.createElement(NV,{sectors:P,activeShape:h,inactiveShape:m,allOtherPieProps:t,shape:t.shape,id:r}))}),y.createElement(TV,{showLabels:!_,sectors:l,props:t}),t.children)}var RV={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:wt.area};function kV(e){var{id:t}=e,n=ph(e,hV),{hide:r,className:l,rootTabIndex:u}=e,s=y.useMemo(()=>Nb(e.children,dh),[e.children]),f=pe(m=>AG(m,t,s)),d=y.useRef(null),h=Ie("recharts-pie",l);return r||f==null?(d.current=null,y.createElement(ht,{tabIndex:u,className:h})):y.createElement(yn,{zIndex:e.zIndex},y.createElement(SV,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:f,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:t,activeShape:e.activeShape}),y.createElement(ht,{tabIndex:u,className:h},y.createElement(DV,{props:at(at({},n),{},{sectors:f}),previousSectorsRef:d,id:t})))}function LV(e){var t=Ct(e,RV),{id:n}=t,r=ph(t,mV),l=pn(r);return y.createElement(kb,{id:n,type:"pie"},u=>y.createElement(y.Fragment,null,y.createElement(cV,{type:"pie",id:u,data:r.data,dataKey:r.dataKey,hide:r.hide,angleAxisId:0,radiusAxisId:0,name:r.name,nameKey:r.nameKey,tooltipType:r.tooltipType,legendType:r.legendType,fill:r.fill,cx:r.cx,cy:r.cy,startAngle:r.startAngle,endAngle:r.endAngle,paddingAngle:r.paddingAngle,minAngle:r.minAngle,innerRadius:r.innerRadius,outerRadius:r.outerRadius,cornerRadius:r.cornerRadius,presentationProps:l,maxRadius:t.maxRadius}),y.createElement(bV,Za({},r,{id:u})),y.createElement(kV,Za({},r,{id:u}))))}var H5=LV;H5.displayName="Pie";var zV=["points"];function FA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Ey(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?FA(Object(n),!0).forEach(function(r){IV(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):FA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function IV(e,t,n){return(t=BV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function BV(e){var t=UV(e,"string");return typeof t=="symbol"?t:t+""}function UV(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function md(){return md=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},md.apply(null,arguments)}function $V(e,t){if(e==null)return{};var n,r,l=qV(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function qV(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function HV(e){var{option:t,dotProps:n,className:r}=e;if(y.isValidElement(t))return y.cloneElement(t,n);if(typeof t=="function")return t(n);var l=Ie(r,typeof t!="boolean"?t.className:""),u=n??{},{points:s}=u,f=$V(u,zV);return y.createElement(P5,md({},f,{className:l}))}function KV(e,t){return e==null?!1:t?!0:e.length===1}function YV(e){var{points:t,dot:n,className:r,dotClassName:l,dataKey:u,baseProps:s,needClip:f,clipPathId:d,zIndex:h=wt.scatter}=e;if(!KV(t,n))return null;var m=I5(n),v=TL(n),b=t.map((O,_)=>{var w,j,A=Ey(Ey(Ey({r:3},s),v),{},{index:_,cx:(w=O.x)!==null&&w!==void 0?w:void 0,cy:(j=O.y)!==null&&j!==void 0?j:void 0,dataKey:u,value:O.value,payload:O.payload,points:t});return y.createElement(HV,{key:"dot-".concat(_),option:n,dotProps:A,className:l})}),S={};return f&&d!=null&&(S.clipPath="url(#clipPath-".concat(m?"":"dots-").concat(d,")")),y.createElement(yn,{zIndex:h},y.createElement(ht,md({className:r},S),b))}function ZA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function WA(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ZA(Object(n),!0).forEach(function(r){GV(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function GV(e,t,n){return(t=VV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function VV(e){var t=XV(e,"string");return typeof t=="symbol"?t:t+""}function XV(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var K5=0,FV={xAxis:{},yAxis:{},zAxis:{}},Y5=Qt({name:"cartesianAxis",initialState:FV,reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=t.payload},prepare:et()},replaceXAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.xAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.xAxis[n.id],e.xAxis[r.id]=r)},prepare:et()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:et()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=t.payload},prepare:et()},replaceYAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.yAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.yAxis[n.id],e.yAxis[r.id]=r)},prepare:et()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:et()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=t.payload},prepare:et()},replaceZAxis:{reducer(e,t){var{prev:n,next:r}=t.payload;e.zAxis[n.id]!==void 0&&(n.id!==r.id&&delete e.zAxis[n.id],e.zAxis[r.id]=r)},prepare:et()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:et()},updateYAxisWidth(e,t){var{id:n,width:r}=t.payload,l=e.yAxis[n];if(l){var u,s=l.widthHistory||[];if(s.length===3&&s[0]===s[2]&&r===s[1]&&r!==l.width&&Math.abs(r-((u=s[0])!==null&&u!==void 0?u:0))<=1)return;var f=[...s,r].slice(-3);e.yAxis[n]=WA(WA({},l),{},{width:r,widthHistory:f})}}}}),{addXAxis:ZV,replaceXAxis:WV,removeXAxis:QV,addYAxis:JV,replaceYAxis:eX,removeYAxis:tX,addZAxis:KQ,replaceZAxis:YQ,removeZAxis:GQ,updateYAxisWidth:nX}=Y5.actions,rX=Y5.reducer,aX=$([Tt],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),iX=$([aX,oa,sa],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),Lb=()=>pe(iX),lX=()=>pe(FH);function QA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function jy(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?QA(Object(n),!0).forEach(function(r){uX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):QA(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function uX(e,t,n){return(t=oX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oX(e){var t=sX(e,"string");return typeof t=="symbol"?t:t+""}function sX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var cX=e=>{var{point:t,childIndex:n,mainColor:r,activeDot:l,dataKey:u,clipPath:s}=e;if(l===!1||t.x==null||t.y==null)return null;var f={index:n,dataKey:u,cx:t.x,cy:t.y,r:4,fill:r??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},d=jy(jy(jy({},f),Bi(l)),Wg(l)),h;return y.isValidElement(l)?h=y.cloneElement(l,d):typeof l=="function"?h=l(d):h=y.createElement(P5,d),y.createElement(ht,{className:"recharts-active-dot",clipPath:s},h)};function JA(e){var{points:t,mainColor:n,activeDot:r,itemDataKey:l,clipPath:u,zIndex:s=wt.activeDot}=e,f=pe(Fa),d=lX();if(t==null||d==null)return null;var h=t.find(m=>d.includes(m.payload));return ut(h)?null:y.createElement(yn,{zIndex:s},y.createElement(cX,{point:h,childIndex:Number(f),mainColor:n,dataKey:l,activeDot:r,clipPath:u}))}var e2=(e,t,n)=>{var r=n??e;if(!ut(r))return Wt(r,t,0)},fX=(e,t,n)=>{var r={},l=e.filter(Qd),u=e.filter(h=>h.stackId==null),s=l.reduce((h,m)=>{var v=h[m.stackId];return v==null&&(v=[]),v.push(m),h[m.stackId]=v,h},r),f=Object.entries(s).map(h=>{var m,[v,b]=h,S=b.map(_=>_.dataKey),O=e2(t,n,(m=b[0])===null||m===void 0?void 0:m.barSize);return{stackId:v,dataKeys:S,barSize:O}}),d=u.map(h=>{var m=[h.dataKey].filter(b=>b!=null),v=e2(t,n,h.barSize);return{stackId:void 0,dataKeys:m,barSize:v}});return[...f,...d]};function t2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function uf(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?t2(Object(n),!0).forEach(function(r){dX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function dX(e,t,n){return(t=hX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hX(e){var t=mX(e,"string");return typeof t=="symbol"?t:t+""}function mX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function vX(e,t,n,r,l){var u,s=r.length;if(!(s<1)){var f=Wt(e,n,0,!0),d,h=[];if(je((u=r[0])===null||u===void 0?void 0:u.barSize)){var m=!1,v=n/s,b=r.reduce((A,N)=>A+(N.barSize||0),0);b+=(s-1)*f,b>=n&&(b-=(s-1)*f,f=0),b>=n&&v>0&&(m=!0,v*=.9,b=s*v);var S=(n-b)/2>>0,O={offset:S-f,size:0};d=r.reduce((A,N)=>{var T,P={stackId:N.stackId,dataKeys:N.dataKeys,position:{offset:O.offset+O.size+f,size:m?v:(T=N.barSize)!==null&&T!==void 0?T:0}},M=[...A,P];return O=P.position,M},h)}else{var _=Wt(t,n,0,!0);n-2*_-(s-1)*f<=0&&(f=0);var w=(n-2*_-(s-1)*f)/s;w>1&&(w>>=0);var j=je(l)?Math.min(w,l):w;d=r.reduce((A,N,T)=>[...A,{stackId:N.stackId,dataKeys:N.dataKeys,position:{offset:_+(w+f)*T+(w-j)/2,size:j}}],h)}return d}}var pX=(e,t,n,r,l,u,s)=>{var f=ut(s)?t:s,d=vX(n,r,l!==u?l:u,e,f);return l!==u&&d!=null&&(d=d.map(h=>uf(uf({},h),{},{position:uf(uf({},h.position),{},{offset:h.position.offset-l/2})}))),d},yX=(e,t)=>{var n=Wd(t);if(!(!e||n==null||t==null)){var{stackId:r}=t;if(r!=null){var l=e[r];if(l){var{stackedData:u}=l;if(u)return u.find(s=>s.key===n)}}}},gX=(e,t)=>{if(!(e==null||t==null)){var n=e.find(r=>r.stackId===t.stackId&&t.dataKey!=null&&r.dataKeys.includes(t.dataKey));if(n!=null)return n.position}};function bX(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&je(e.zIndex)?e.zIndex:t}var G5=e=>{var{chartData:t}=e,n=Xe(),r=Jt();return y.useEffect(()=>r?()=>{}:(n(cA(t)),()=>{n(cA(void 0))}),[t,n,r]),null},n2={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},V5=Qt({name:"brush",initialState:n2,reducers:{setBrushSettings(e,t){return t.payload==null?n2:t.payload}}}),{setBrushSettings:VQ}=V5.actions,xX=V5.reducer;function SX(e){return(e%180+180)%180}var wX=function(t){var{width:n,height:r}=t,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=SX(l),s=u*Math.PI/180,f=Math.atan(r/n),d=s>f&&s<Math.PI-f?r/Math.sin(s):n/Math.cos(s);return Math.abs(d)},OX={dots:[],areas:[],lines:[]},X5=Qt({name:"referenceElements",initialState:OX,reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=Vn(e).dots.findIndex(r=>r===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=Vn(e).areas.findIndex(r=>r===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var n=Vn(e).lines.findIndex(r=>r===t.payload);n!==-1&&e.lines.splice(n,1)}}}),{addDot:XQ,removeDot:FQ,addArea:ZQ,removeArea:WQ,addLine:QQ,removeLine:JQ}=X5.actions,_X=X5.reducer,EX=y.createContext(void 0),jX=e=>{var{children:t}=e,[n]=y.useState("".concat(Bo("recharts"),"-clip")),r=Lb();if(r==null)return null;var{x:l,y:u,width:s,height:f}=r;return y.createElement(EX.Provider,{value:n},y.createElement("defs",null,y.createElement("clipPath",{id:n},y.createElement("rect",{x:l,y:u,height:f,width:s}))),t)};function F5(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;r<e.length;r+=t){var l=e[r];l!==void 0&&n.push(l)}return n}function AX(e,t,n){var r={width:e.width+t.width,height:e.height+t.height};return wX(r,n)}function CX(e,t,n){var r=n==="width",{x:l,y:u,width:s,height:f}=e;return t===1?{start:r?l:u,end:r?l+s:u+f}:{start:r?l+s:u+f,end:r?l:u}}function Jo(e,t,n,r,l){if(e*t<e*r||e*t>e*l)return!1;var u=n();return e*(t-e*u/2-r)>=0&&e*(t+e*u/2-l)<=0}function TX(e,t){return F5(e,t+1)}function NX(e,t,n,r,l){for(var u=(r||[]).slice(),{start:s,end:f}=t,d=0,h=1,m=s,v=function(){var O=r==null?void 0:r[d];if(O===void 0)return{v:F5(r,h)};var _=d,w,j=()=>(w===void 0&&(w=n(O,_)),w),A=O.coordinate,N=d===0||Jo(e,A,j,m,f);N||(d=0,m=s,h+=1),N&&(m=A+e*(j()/2+l),d+=h)},b;h<=u.length;)if(b=v(),b)return b.v;return[]}function PX(e,t,n,r,l){var u=(r||[]).slice(),s=u.length;if(s===0)return[];for(var{start:f,end:d}=t,h=1;h<=s;h++){for(var m=(s-1)%h,v=f,b=!0,S=function(){var T=r[_];if(T==null)return 0;var P=_,M,R=()=>(M===void 0&&(M=n(T,P)),M),I=T.coordinate,q=_===m||Jo(e,I,R,v,d);if(!q)return b=!1,1;q&&(v=I+e*(R()/2+l))},O,_=m;_<s&&(O=S(),!(O!==0&&O===1));_+=h);if(b){for(var w=[],j=m;j<s;j+=h){var A=r[j];A!=null&&w.push(A)}return w}}return[]}function r2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Ft(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?r2(Object(n),!0).forEach(function(r){MX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function MX(e,t,n){return(t=DX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function DX(e){var t=RX(e,"string");return typeof t=="symbol"?t:t+""}function RX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function kX(e,t,n,r,l){for(var u=(r||[]).slice(),s=u.length,{start:f}=t,{end:d}=t,h=function(b){var S=u[b];if(S==null)return 1;var O=S,_,w=()=>(_===void 0&&(_=n(S,b)),_);if(b===s-1){var j=e*(O.coordinate+e*w()/2-d);u[b]=O=Ft(Ft({},O),{},{tickCoord:j>0?O.coordinate-j*e:O.coordinate})}else u[b]=O=Ft(Ft({},O),{},{tickCoord:O.coordinate});if(O.tickCoord!=null){var A=Jo(e,O.tickCoord,w,f,d);A&&(d=O.tickCoord-e*(w()/2+l),u[b]=Ft(Ft({},O),{},{isShow:!0}))}},m=s-1;m>=0;m--)h(m);return u}function LX(e,t,n,r,l,u){var s=(r||[]).slice(),f=s.length,{start:d,end:h}=t;if(u){var m=r[f-1];if(m!=null){var v=n(m,f-1),b=e*(m.coordinate+e*v/2-h);if(s[f-1]=m=Ft(Ft({},m),{},{tickCoord:b>0?m.coordinate-b*e:m.coordinate}),m.tickCoord!=null){var S=Jo(e,m.tickCoord,()=>v,d,h);S&&(h=m.tickCoord-e*(v/2+l),s[f-1]=Ft(Ft({},m),{},{isShow:!0}))}}}for(var O=u?f-1:f,_=function(A){var N=s[A];if(N==null)return 1;var T=N,P,M=()=>(P===void 0&&(P=n(N,A)),P);if(A===0){var R=e*(T.coordinate-e*M()/2-d);s[A]=T=Ft(Ft({},T),{},{tickCoord:R<0?T.coordinate-R*e:T.coordinate})}else s[A]=T=Ft(Ft({},T),{},{tickCoord:T.coordinate});if(T.tickCoord!=null){var I=Jo(e,T.tickCoord,M,d,h);I&&(d=T.tickCoord+e*(M()/2+l),s[A]=Ft(Ft({},T),{},{isShow:!0}))}},w=0;w<O;w++)_(w);return s}function zb(e,t,n){var{tick:r,ticks:l,viewBox:u,minTickGap:s,orientation:f,interval:d,tickFormatter:h,unit:m,angle:v}=e;if(!l||!l.length||!r)return[];if(de(d)||fs.isSsr){var b;return(b=TX(l,de(d)?d:0))!==null&&b!==void 0?b:[]}var S=[],O=f==="top"||f==="bottom"?"width":"height",_=m&&O==="width"?Ro(m,{fontSize:t,letterSpacing:n}):{width:0,height:0},w=(P,M)=>{var R=typeof h=="function"?h(P.value,M):P.value;return O==="width"?AX(Ro(R,{fontSize:t,letterSpacing:n}),_,v):Ro(R,{fontSize:t,letterSpacing:n})[O]},j=l[0],A=l[1],N=l.length>=2&&j!=null&&A!=null?kt(A.coordinate-j.coordinate):1,T=CX(u,N,O);return d==="equidistantPreserveStart"?NX(N,T,w,l,s):d==="equidistantPreserveEnd"?PX(N,T,w,l,s):(d==="preserveStart"||d==="preserveStartEnd"?S=LX(N,T,w,l,s,d==="preserveStartEnd"):S=kX(N,T,w,l,s),S.filter(P=>P.isShow))}var zX=e=>{var{ticks:t,label:n,labelGapWithTick:r=5,tickSize:l=0,tickMargin:u=0}=e,s=0;if(t){Array.from(t).forEach(m=>{if(m){var v=m.getBoundingClientRect();v.width>s&&(s=v.width)}});var f=n?n.getBoundingClientRect().width:0,d=l+u,h=s+d+f+(n?r:0);return Math.round(h)}return 0},IX={xAxis:{},yAxis:{}},Z5=Qt({name:"renderedTicks",initialState:IX,reducers:{setRenderedTicks:(e,t)=>{var{axisType:n,axisId:r,ticks:l}=t.payload;e[n][r]=l},removeRenderedTicks:(e,t)=>{var{axisType:n,axisId:r}=t.payload;delete e[n][r]}}}),{setRenderedTicks:BX,removeRenderedTicks:UX}=Z5.actions,$X=Z5.reducer,qX=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function HX(e,t){if(e==null)return{};var n,r,l=KX(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function KX(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Xi(){return Xi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Xi.apply(null,arguments)}function a2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function ft(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?a2(Object(n),!0).forEach(function(r){YX(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YX(e,t,n){return(t=GX(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GX(e){var t=VX(e,"string");return typeof t=="symbol"?t:t+""}function VX(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ta={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:wt.axis};function XX(e){var{x:t,y:n,width:r,height:l,orientation:u,mirror:s,axisLine:f,otherSvgProps:d}=e;if(!f)return null;var h=ft(ft(ft({},d),pn(f)),{},{fill:"none"});if(u==="top"||u==="bottom"){var m=+(u==="top"&&!s||u==="bottom"&&s);h=ft(ft({},h),{},{x1:t,y1:n+m*l,x2:t+r,y2:n+m*l})}else{var v=+(u==="left"&&!s||u==="right"&&s);h=ft(ft({},h),{},{x1:t+v*r,y1:n,x2:t+v*r,y2:n+l})}return y.createElement("line",Xi({},h,{className:Ie("recharts-cartesian-axis-line",$i(f,"className"))}))}function FX(e,t,n,r,l,u,s,f,d){var h,m,v,b,S,O,_=f?-1:1,w=e.tickSize||s,j=de(e.tickCoord)?e.tickCoord:e.coordinate;switch(u){case"top":h=m=e.coordinate,b=n+ +!f*l,v=b-_*w,O=v-_*d,S=j;break;case"left":v=b=e.coordinate,m=t+ +!f*r,h=m-_*w,S=h-_*d,O=j;break;case"right":v=b=e.coordinate,m=t+ +f*r,h=m+_*w,S=h+_*d,O=j;break;default:h=m=e.coordinate,b=n+ +f*l,v=b+_*w,O=v+_*d,S=j;break}return{line:{x1:h,y1:v,x2:m,y2:b},tick:{x:S,y:O}}}function ZX(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function WX(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function QX(e){var{option:t,tickProps:n,value:r}=e,l,u=Ie(n.className,"recharts-cartesian-axis-tick-value");if(y.isValidElement(t))l=y.cloneElement(t,ft(ft({},n),{},{className:u}));else if(typeof t=="function")l=t(ft(ft({},n),{},{className:u}));else{var s="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(s=Ie(s,k5(t))),l=y.createElement(hh,Xi({},n,{className:s}),r)}return l}function JX(e){var{ticks:t,axisType:n,axisId:r}=e,l=Xe();return y.useEffect(()=>{if(r==null||n==null)return Fi;var u=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return l(BX({ticks:u,axisId:r,axisType:n})),()=>{l(UX({axisId:r,axisType:n}))}},[l,t,r,n]),null}var eF=y.forwardRef((e,t)=>{var{ticks:n=[],tick:r,tickLine:l,stroke:u,tickFormatter:s,unit:f,padding:d,tickTextProps:h,orientation:m,mirror:v,x:b,y:S,width:O,height:_,tickSize:w,tickMargin:j,fontSize:A,letterSpacing:N,getTicksConfig:T,events:P,axisType:M,axisId:R}=e,I=zb(ft(ft({},T),{},{ticks:n}),A,N),q=pn(T),W=Bi(r),X=w5(q.textAnchor)?q.textAnchor:ZX(m,v),U=WX(m,v),se={};typeof l=="object"&&(se=l);var F=ft(ft({},q),{},{fill:"none"},se),J=I.map(ne=>ft({entry:ne},FX(ne,b,S,O,_,m,w,v,j))),z=J.map(ne=>{var{entry:le,line:Q}=ne;return y.createElement(ht,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(le.value,"-").concat(le.coordinate,"-").concat(le.tickCoord)},l&&y.createElement("line",Xi({},F,Q,{className:Ie("recharts-cartesian-axis-tick-line",$i(l,"className"))})))}),V=J.map((ne,le)=>{var Q,D,{entry:K,tick:oe}=ne,ce=ft(ft(ft(ft({verticalAnchor:U},q),{},{textAnchor:X,stroke:"none",fill:u},oe),{},{index:le,payload:K,visibleTicksCount:I.length,tickFormatter:s,padding:d},h),{},{angle:(Q=(D=h==null?void 0:h.angle)!==null&&D!==void 0?D:q.angle)!==null&&Q!==void 0?Q:0}),ge=ft(ft({},ce),W);return y.createElement(ht,Xi({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(K.value,"-").concat(K.coordinate,"-").concat(K.tickCoord)},is(P,K,le)),r&&y.createElement(QX,{option:r,tickProps:ge,value:"".concat(typeof s=="function"?s(K.value,le):K.value).concat(f||"")}))});return y.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(M,"-ticks")},y.createElement(JX,{ticks:I,axisId:R,axisType:M}),V.length>0&&y.createElement(yn,{zIndex:wt.label},y.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(M,"-tick-labels"),ref:t},V)),z.length>0&&y.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(M,"-tick-lines")},z))}),tF=y.forwardRef((e,t)=>{var{axisLine:n,width:r,height:l,className:u,hide:s,ticks:f,axisType:d,axisId:h}=e,m=HX(e,qX),[v,b]=y.useState(""),[S,O]=y.useState(""),_=y.useRef(null);y.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var j;return zX({ticks:_.current,label:(j=e.labelRef)===null||j===void 0?void 0:j.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var w=y.useCallback(j=>{if(j){var A=j.getElementsByClassName("recharts-cartesian-axis-tick-value");_.current=A;var N=A[0];if(N){var T=window.getComputedStyle(N),P=T.fontSize,M=T.letterSpacing;(P!==v||M!==S)&&(b(P),O(M))}}},[v,S]);return s||r!=null&&r<=0||l!=null&&l<=0?null:y.createElement(yn,{zIndex:e.zIndex},y.createElement(ht,{className:Ie("recharts-cartesian-axis",u)},y.createElement(XX,{x:e.x,y:e.y,width:r,height:l,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:pn(e)}),y.createElement(eF,{ref:w,axisType:d,events:m,fontSize:v,getTicksConfig:e,height:e.height,letterSpacing:S,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:f,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:h}),y.createElement(XY,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},y.createElement(aG,{label:e.label,labelRef:e.labelRef}),e.children)))}),Ib=y.forwardRef((e,t)=>{var n=Ct(e,ta);return y.createElement(tF,Xi({},n,{ref:t}))});Ib.displayName="CartesianAxis";var nF=["x1","y1","x2","y2","key"],rF=["offset"],aF=["xAxisId","yAxisId"],iF=["xAxisId","yAxisId"];function i2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Zt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?i2(Object(n),!0).forEach(function(r){lF(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function lF(e,t,n){return(t=uF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uF(e){var t=oF(e,"string");return typeof t=="symbol"?t:t+""}function oF(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Mi(){return Mi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Mi.apply(null,arguments)}function vd(e,t){if(e==null)return{};var n,r,l=sF(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function sF(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var cF=e=>{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:n,x:r,y:l,width:u,height:s,ry:f}=e;return y.createElement("rect",{x:r,y:l,ry:f,width:u,height:s,stroke:"none",fill:t,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function W5(e){var{option:t,lineItemProps:n}=e,r;if(y.isValidElement(t))r=y.cloneElement(t,n);else if(typeof t=="function")r=t(n);else{var l,{x1:u,y1:s,x2:f,y2:d,key:h}=n,m=vd(n,nF),v=(l=pn(m))!==null&&l!==void 0?l:{},{offset:b}=v,S=vd(v,rF);r=y.createElement("line",Mi({},S,{x1:u,y1:s,x2:f,y2:d,fill:"none",key:h}))}return r}function fF(e){var{x:t,width:n,horizontal:r=!0,horizontalPoints:l}=e;if(!r||!l||!l.length)return null;var{xAxisId:u,yAxisId:s}=e,f=vd(e,aF),d=l.map((h,m)=>{var v=Zt(Zt({},f),{},{x1:t,y1:h,x2:t+n,y2:h,key:"line-".concat(m),index:m});return y.createElement(W5,{key:"line-".concat(m),option:r,lineItemProps:v})});return y.createElement("g",{className:"recharts-cartesian-grid-horizontal"},d)}function dF(e){var{y:t,height:n,vertical:r=!0,verticalPoints:l}=e;if(!r||!l||!l.length)return null;var{xAxisId:u,yAxisId:s}=e,f=vd(e,iF),d=l.map((h,m)=>{var v=Zt(Zt({},f),{},{x1:h,y1:t,x2:h,y2:t+n,key:"line-".concat(m),index:m});return y.createElement(W5,{option:r,lineItemProps:v,key:"line-".concat(m)})});return y.createElement("g",{className:"recharts-cartesian-grid-vertical"},d)}function hF(e){var{horizontalFill:t,fillOpacity:n,x:r,y:l,width:u,height:s,horizontalPoints:f,horizontal:d=!0}=e;if(!d||!t||!t.length||f==null)return null;var h=f.map(v=>Math.round(v+l-l)).sort((v,b)=>v-b);l!==h[0]&&h.unshift(0);var m=h.map((v,b)=>{var S=h[b+1],O=S==null,_=O?l+s-v:S-v;if(_<=0)return null;var w=b%t.length;return y.createElement("rect",{key:"react-".concat(b),y:v,x:r,height:_,width:u,stroke:"none",fill:t[w],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return y.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},m)}function mF(e){var{vertical:t=!0,verticalFill:n,fillOpacity:r,x:l,y:u,width:s,height:f,verticalPoints:d}=e;if(!t||!n||!n.length)return null;var h=d.map(v=>Math.round(v+l-l)).sort((v,b)=>v-b);l!==h[0]&&h.unshift(0);var m=h.map((v,b)=>{var S=h[b+1],O=S==null,_=O?l+s-v:S-v;if(_<=0)return null;var w=b%n.length;return y.createElement("rect",{key:"react-".concat(b),x:v,y:u,width:_,height:f,stroke:"none",fill:n[w],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return y.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},m)}var vF=(e,t)=>{var{xAxis:n,width:r,height:l,offset:u}=e;return TT(zb(Zt(Zt(Zt({},ta),n),{},{ticks:NT(n),viewBox:{x:0,y:0,width:r,height:l}})),u.left,u.left+u.width,t)},pF=(e,t)=>{var{yAxis:n,width:r,height:l,offset:u}=e;return TT(zb(Zt(Zt(Zt({},ta),n),{},{ticks:NT(n),viewBox:{x:0,y:0,width:r,height:l}})),u.top,u.top+u.height,t)},yF={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:wt.grid};function Q5(e){var t=c0(),n=f0(),r=IT(),l=Zt(Zt({},Ct(e,yF)),{},{x:de(e.x)?e.x:r.left,y:de(e.y)?e.y:r.top,width:de(e.width)?e.width:r.width,height:de(e.height)?e.height:r.height}),{xAxisId:u,yAxisId:s,x:f,y:d,width:h,height:m,syncWithTicks:v,horizontalValues:b,verticalValues:S}=l,O=Jt(),_=pe(q=>Wj(q,"xAxis",u,O)),w=pe(q=>Wj(q,"yAxis",s,O));if(!_r(h)||!_r(m)||!de(f)||!de(d))return null;var j=l.verticalCoordinatesGenerator||vF,A=l.horizontalCoordinatesGenerator||pF,{horizontalPoints:N,verticalPoints:T}=l;if((!N||!N.length)&&typeof A=="function"){var P=b&&b.length,M=A({yAxis:w?Zt(Zt({},w),{},{ticks:P?b:w.ticks}):void 0,width:t??h,height:n??m,offset:r},P?!0:v);Bf(Array.isArray(M),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof M,"]")),Array.isArray(M)&&(N=M)}if((!T||!T.length)&&typeof j=="function"){var R=S&&S.length,I=j({xAxis:_?Zt(Zt({},_),{},{ticks:R?S:_.ticks}):void 0,width:t??h,height:n??m,offset:r},R?!0:v);Bf(Array.isArray(I),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof I,"]")),Array.isArray(I)&&(T=I)}return y.createElement(yn,{zIndex:l.zIndex},y.createElement("g",{className:"recharts-cartesian-grid"},y.createElement(cF,{fill:l.fill,fillOpacity:l.fillOpacity,x:l.x,y:l.y,width:l.width,height:l.height,ry:l.ry}),y.createElement(hF,Mi({},l,{horizontalPoints:N})),y.createElement(mF,Mi({},l,{verticalPoints:T})),y.createElement(fF,Mi({},l,{offset:r,horizontalPoints:N,xAxis:_,yAxis:w})),y.createElement(dF,Mi({},l,{offset:r,verticalPoints:T,xAxis:_,yAxis:w}))))}Q5.displayName="CartesianGrid";var gF={},J5=Qt({name:"errorBars",initialState:gF,reducers:{addErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]||(e[n]=[]),e[n].push(r)},replaceErrorBar:(e,t)=>{var{itemId:n,prev:r,next:l}=t.payload;e[n]&&(e[n]=e[n].map(u=>u.dataKey===r.dataKey&&u.direction===r.direction?l:u))},removeErrorBar:(e,t)=>{var{itemId:n,errorBar:r}=t.payload;e[n]&&(e[n]=e[n].filter(l=>l.dataKey!==r.dataKey||l.direction!==r.direction))}}}),{addErrorBar:eJ,replaceErrorBar:tJ,removeErrorBar:nJ}=J5.actions,bF=J5.reducer,xF=["children"];function SF(e,t){if(e==null)return{};var n,r,l=wF(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function wF(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var OF={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},_F=y.createContext(OF);function EF(e){var{children:t}=e,n=SF(e,xF);return y.createElement(_F.Provider,{value:n},t)}function Bb(e,t){var n,r,l=pe(h=>fa(h,e)),u=pe(h=>da(h,t)),s=(n=l==null?void 0:l.allowDataOverflow)!==null&&n!==void 0?n:Et.allowDataOverflow,f=(r=u==null?void 0:u.allowDataOverflow)!==null&&r!==void 0?r:jt.allowDataOverflow,d=s||f;return{needClip:d,needClipX:s,needClipY:f}}function eM(e){var{xAxisId:t,yAxisId:n,clipPathId:r}=e,l=Lb(),{needClipX:u,needClipY:s,needClip:f}=Bb(t,n);if(!f||!l)return null;var{x:d,y:h,width:m,height:v}=l;return y.createElement("clipPath",{id:"clipPath-".concat(r)},y.createElement("rect",{x:u?d:d-m/2,y:s?h:h-v/2,width:u?m:m*2,height:s?v:v*2}))}function jF(e){var t=Bi(e),n=3,r=2;if(t!=null){var{r:l,strokeWidth:u}=t,s=Number(l),f=Number(u);return(Number.isNaN(s)||s<0)&&(s=n),(Number.isNaN(f)||f<0)&&(f=r),{r:s,strokeWidth:f}}return{r:n,strokeWidth:r}}function Tr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(l=>l.id===t))===null||r===void 0?void 0:r.xAxisId)!==null&&n!==void 0?n:K5}function Nr(e,t){var n,r;return(n=(r=e.graphicalItems.cartesianItems.find(l=>l.id===t))===null||r===void 0?void 0:r.yAxisId)!==null&&n!==void 0?n:K5}var tM=(e,t,n)=>Xa(e,"xAxis",Tr(e,t),n),nM=(e,t,n)=>Va(e,"xAxis",Tr(e,t),n),rM=(e,t,n)=>Xa(e,"yAxis",Nr(e,t),n),aM=(e,t,n)=>Va(e,"yAxis",Nr(e,t),n),AF=$([ke,tM,rM,nM,aM],(e,t,n,r,l)=>Cr(e,"xAxis")?eu(t,r,!1):eu(n,l,!1)),CF=(e,t)=>t,iM=$([uh,CF],(e,t)=>e.filter(n=>n.type==="area").find(n=>n.id===t)),lM=e=>{var t=ke(e),n=Cr(t,"xAxis");return n?"yAxis":"xAxis"},TF=(e,t)=>{var n=lM(e);return n==="yAxis"?Nr(e,t):Tr(e,t)},NF=(e,t,n)=>ud(e,lM(e),TF(e,t),n),PF=$([iM,NF],(e,t)=>{var n;if(!(e==null||t==null)){var{stackId:r}=e,l=Wd(e);if(!(r==null||l==null)){var u=(n=t[r])===null||n===void 0?void 0:n.stackedData,s=u==null?void 0:u.find(f=>f.key===l);if(s!=null)return s.map(f=>[f[0],f[1]])}}}),MF=$([ke,tM,rM,nM,aM,PF,oN,AF,iM,iU],(e,t,n,r,l,u,s,f,d,h)=>{var{chartData:m,dataStartIndex:v,dataEndIndex:b}=s;if(!(d==null||e!=="horizontal"&&e!=="vertical"||t==null||n==null||r==null||l==null||r.length===0||l.length===0||f==null)){var{data:S}=d,O;if(S&&S.length>0?O=S:O=m==null?void 0:m.slice(v,b+1),O!=null)return QF({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:l,dataStartIndex:v,areaSettings:d,stackedData:u,displayedData:O,chartBaseValue:h,bandSize:f})}}),DF=["id"],RF=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function Li(){return Li=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Li.apply(null,arguments)}function uM(e,t){if(e==null)return{};var n,r,l=kF(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function kF(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function l2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function Xl(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?l2(Object(n),!0).forEach(function(r){LF(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function LF(e,t,n){return(t=zF(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zF(e){var t=IF(e,"string");return typeof t=="symbol"?t:t+""}function IF(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function pd(e,t){return e&&e!=="none"?e:t}var BF=e=>{var{dataKey:t,name:n,stroke:r,fill:l,legendType:u,hide:s}=e;return[{inactive:s,dataKey:t,type:u,color:pd(r,l),value:du(n,t),payload:e}]},UF=y.memo(e=>{var{dataKey:t,data:n,stroke:r,strokeWidth:l,fill:u,name:s,hide:f,unit:d,tooltipType:h,id:m}=e,v={dataDefinedOnItem:n,getPosition:Fi,settings:{stroke:r,strokeWidth:l,fill:u,dataKey:t,nameKey:void 0,name:du(s,t),hide:f,type:h,color:pd(r,u),unit:d,graphicalItemId:m}};return y.createElement(Rb,{tooltipEntrySettings:v})});function $F(e){var{clipPathId:t,points:n,props:r}=e,{needClip:l,dot:u,dataKey:s}=r,f=pn(r);return y.createElement(YV,{points:n,dot:u,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:f,needClip:l,clipPathId:t})}function qF(e){var{showLabels:t,children:n,points:r}=e,l=r.map(u=>{var s,f,d={x:(s=u.x)!==null&&s!==void 0?s:0,y:(f=u.y)!==null&&f!==void 0?f:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Xl(Xl({},d),{},{value:u.value,payload:u.payload,parentViewBox:void 0,viewBox:d,fill:void 0})});return y.createElement(T5,{value:t?l:void 0},n)}function u2(e){var{points:t,baseLine:n,needClip:r,clipPathId:l,props:u}=e,{layout:s,type:f,stroke:d,connectNulls:h,isRange:m}=u,{id:v}=u,b=uM(u,DF),S=pn(b),O=rn(b);return y.createElement(y.Fragment,null,(t==null?void 0:t.length)>1&&y.createElement(ht,{clipPath:r?"url(#clipPath-".concat(l,")"):void 0},y.createElement(Zl,Li({},O,{id:v,points:t,connectNulls:h,type:f,baseLine:n,layout:s,stroke:"none",className:"recharts-area-area"})),d!=="none"&&y.createElement(Zl,Li({},S,{className:"recharts-area-curve",layout:s,type:f,connectNulls:h,fill:"none",points:t})),d!=="none"&&m&&Array.isArray(n)&&y.createElement(Zl,Li({},S,{className:"recharts-area-curve",layout:s,type:f,connectNulls:h,fill:"none",points:n}))),y.createElement($F,{points:t,props:b,clipPathId:l}))}function HF(e){var t,n,{alpha:r,baseLine:l,points:u,strokeWidth:s}=e,f=(t=u[0])===null||t===void 0?void 0:t.y,d=(n=u[u.length-1])===null||n===void 0?void 0:n.y;if(!je(f)||!je(d))return null;var h=r*Math.abs(f-d),m=Math.max(...u.map(v=>v.x||0));return de(l)?m=Math.max(l,m):l&&Array.isArray(l)&&l.length&&(m=Math.max(...l.map(v=>v.x||0),m)),de(m)?y.createElement("rect",{x:0,y:f<d?f:f-h,width:m+(s?parseInt("".concat(s),10):1),height:Math.floor(h)}):null}function KF(e){var t,n,{alpha:r,baseLine:l,points:u,strokeWidth:s}=e,f=(t=u[0])===null||t===void 0?void 0:t.x,d=(n=u[u.length-1])===null||n===void 0?void 0:n.x;if(!je(f)||!je(d))return null;var h=r*Math.abs(f-d),m=Math.max(...u.map(v=>v.y||0));return de(l)?m=Math.max(l,m):l&&Array.isArray(l)&&l.length&&(m=Math.max(...l.map(v=>v.y||0),m)),de(m)?y.createElement("rect",{x:f<d?f:f-h,y:0,width:h,height:Math.floor(m+(s?parseInt("".concat(s),10):1))}):null}function YF(e){var{alpha:t,layout:n,points:r,baseLine:l,strokeWidth:u}=e;return n==="vertical"?y.createElement(HF,{alpha:t,points:r,baseLine:l,strokeWidth:u}):y.createElement(KF,{alpha:t,points:r,baseLine:l,strokeWidth:u})}function GF(e){var{needClip:t,clipPathId:n,props:r,previousPointsRef:l,previousBaselineRef:u}=e,{points:s,baseLine:f,isAnimationActive:d,animationBegin:h,animationDuration:m,animationEasing:v,onAnimationStart:b,onAnimationEnd:S}=r,O=y.useMemo(()=>({points:s,baseLine:f}),[s,f]),_=hs(O,"recharts-area-"),w=d0(),[j,A]=y.useState(!1),N=!j,T=y.useCallback(()=>{typeof S=="function"&&S(),A(!1)},[S]),P=y.useCallback(()=>{typeof b=="function"&&b(),A(!0)},[b]);if(w==null)return null;var M=l.current,R=u.current;return y.createElement(qF,{showLabels:N,points:s},r.children,y.createElement(ds,{animationId:_,begin:h,duration:m,isActive:d,easing:v,onAnimationEnd:T,onAnimationStart:P,key:_},I=>{if(M){var q=M.length/s.length,W=I===1?s:s.map((U,se)=>{var F=Math.floor(se*q);if(M[F]){var J=M[F];return Xl(Xl({},U),{},{x:nt(J.x,U.x,I),y:nt(J.y,U.y,I)})}return U}),X;return de(f)?X=nt(R,f,I):ut(f)||lr(f)?X=nt(R,0,I):X=f.map((U,se)=>{var F=Math.floor(se*q);if(Array.isArray(R)&&R[F]){var J=R[F];return Xl(Xl({},U),{},{x:nt(J.x,U.x,I),y:nt(J.y,U.y,I)})}return U}),I>0&&(l.current=W,u.current=X),y.createElement(u2,{points:W,baseLine:X,needClip:t,clipPathId:n,props:r})}return I>0&&(l.current=s,u.current=f),y.createElement(ht,null,d&&y.createElement("defs",null,y.createElement("clipPath",{id:"animationClipPath-".concat(n)},y.createElement(YF,{alpha:I,points:s,baseLine:f,layout:w,strokeWidth:r.strokeWidth}))),y.createElement(ht,{clipPath:"url(#animationClipPath-".concat(n,")")},y.createElement(u2,{points:s,baseLine:f,needClip:t,clipPathId:n,props:r})))}),y.createElement(Ab,{label:r.label}))}function VF(e){var{needClip:t,clipPathId:n,props:r}=e,l=y.useRef(null),u=y.useRef();return y.createElement(GF,{needClip:t,clipPathId:n,props:r,previousPointsRef:l,previousBaselineRef:u})}class XF extends y.PureComponent{render(){var{hide:t,dot:n,points:r,className:l,top:u,left:s,needClip:f,xAxisId:d,yAxisId:h,width:m,height:v,id:b,baseLine:S,zIndex:O}=this.props;if(t)return null;var _=Ie("recharts-area",l),w=b,{r:j,strokeWidth:A}=jF(n),N=I5(n),T=j*2+A,P=f?"url(#clipPath-".concat(N?"":"dots-").concat(w,")"):void 0;return y.createElement(yn,{zIndex:O},y.createElement(ht,{className:_},f&&y.createElement("defs",null,y.createElement(eM,{clipPathId:w,xAxisId:d,yAxisId:h}),!N&&y.createElement("clipPath",{id:"clipPath-dots-".concat(w)},y.createElement("rect",{x:s-T/2,y:u-T/2,width:m+T,height:v+T}))),y.createElement(VF,{needClip:f,clipPathId:w,props:this.props})),y.createElement(JA,{points:r,mainColor:pd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}),this.props.isRange&&Array.isArray(S)&&y.createElement(JA,{points:S,mainColor:pd(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:P}))}}var FF={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:wt.area};function ZF(e){var t,{activeDot:n,animationBegin:r,animationDuration:l,animationEasing:u,connectNulls:s,dot:f,fill:d,fillOpacity:h,hide:m,isAnimationActive:v,legendType:b,stroke:S,xAxisId:O,yAxisId:_}=e,w=uM(e,RF),j=Zi(),A=s5(),{needClip:N}=Bb(O,_),T=Jt(),{points:P,isRange:M,baseLine:R}=(t=pe(se=>MF(se,e.id,T)))!==null&&t!==void 0?t:{},I=Lb();if(j!=="horizontal"&&j!=="vertical"||I==null||A!=="AreaChart"&&A!=="ComposedChart")return null;var{height:q,width:W,x:X,y:U}=I;return!P||!P.length?null:y.createElement(XF,Li({},w,{activeDot:n,animationBegin:r,animationDuration:l,animationEasing:u,baseLine:R,connectNulls:s,dot:f,fill:d,fillOpacity:h,height:q,hide:m,layout:j,isAnimationActive:v,isRange:M,legendType:b,needClip:N,points:P,stroke:S,width:W,left:X,top:U,xAxisId:O,yAxisId:_}))}var WF=(e,t,n,r,l)=>{var u=n??t;if(de(u))return u;var s=e==="horizontal"?l:r,f=s.scale.domain();if(s.type==="number"){var d=Math.max(f[0],f[1]),h=Math.min(f[0],f[1]);return u==="dataMin"?h:u==="dataMax"||d<0?d:Math.max(Math.min(f[0],f[1]),0)}return u==="dataMin"?f[0]:u==="dataMax"?f[1]:f[0]};function QF(e){var{areaSettings:{connectNulls:t,baseValue:n,dataKey:r},stackedData:l,layout:u,chartBaseValue:s,xAxis:f,yAxis:d,displayedData:h,dataStartIndex:m,xAxisTicks:v,yAxisTicks:b,bandSize:S}=e,O=l&&l.length,_=WF(u,s,n,f,d),w=u==="horizontal",j=!1,A=h.map((T,P)=>{var M,R,I,q;if(O)q=l[m+P];else{var W=$e(T,r);Array.isArray(W)?(q=W,j=!0):q=[_,W]}var X=(M=(R=q)===null||R===void 0?void 0:R[1])!==null&&M!==void 0?M:null,U=X==null||O&&!t&&$e(T,r)==null;if(w){var se;return{x:H_({axis:f,ticks:v,bandSize:S,entry:T,index:P}),y:U?null:(se=d.scale.map(X))!==null&&se!==void 0?se:null,value:q,payload:T}}return{x:U?null:(I=f.scale.map(X))!==null&&I!==void 0?I:null,y:H_({axis:d,ticks:b,bandSize:S,entry:T,index:P}),value:q,payload:T}}),N;return O||j?N=A.map(T=>{var P,M=Array.isArray(T.value)?T.value[0]:null;if(w){var R;return{x:T.x,y:M!=null&&T.y!=null&&(R=d.scale.map(M))!==null&&R!==void 0?R:null,payload:T.payload}}return{x:M!=null&&(P=f.scale.map(M))!==null&&P!==void 0?P:null,y:T.y,payload:T.payload}}):N=w?d.scale.map(_):f.scale.map(_),{points:A,baseLine:N??0,isRange:j}}function JF(e){var t=Ct(e,FF),n=Jt();return y.createElement(kb,{id:t.id,type:"area"},r=>y.createElement(y.Fragment,null,y.createElement(U5,{legendPayload:BF(t)}),y.createElement(UF,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:r}),y.createElement(q5,{type:"area",id:r,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:PT(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),y.createElement(ZF,Li({},t,{id:r}))))}var oM=y.memo(JF,hu);oM.displayName="Area";var eZ="Invariant failed";function tZ(e,t){throw new Error(eZ)}function bg(){return bg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},bg.apply(null,arguments)}function Ub(e){return y.createElement(B5,bg({shapeType:"rectangle",activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"},e))}var nZ=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(r,l)=>{if(de(t))return t;var u=de(r)||ut(r);return u?t(r,l):(u||tZ(),n)}},rZ=(e,t,n)=>n,aZ=(e,t)=>t,Es=$([uh,aZ],(e,t)=>e.filter(n=>n.type==="bar").find(n=>n.id===t)),iZ=$([Es],e=>e==null?void 0:e.maxBarSize),lZ=(e,t,n,r)=>r,uZ=$([ke,uh,Tr,Nr,rZ],(e,t,n,r,l)=>t.filter(u=>e==="horizontal"?u.xAxisId===n:u.yAxisId===r).filter(u=>u.isPanorama===l).filter(u=>u.hide===!1).filter(u=>u.type==="bar")),oZ=(e,t,n)=>{var r=ke(e),l=Tr(e,t),u=Nr(e,t);if(!(l==null||u==null))return r==="horizontal"?ud(e,"yAxis",u,n):ud(e,"xAxis",l,n)},sZ=(e,t)=>{var n=ke(e),r=Tr(e,t),l=Nr(e,t);if(!(r==null||l==null))return n==="horizontal"?Zj(e,"xAxis",r):Zj(e,"yAxis",l)},cZ=$([uZ,aU,sZ],fX),fZ=(e,t,n)=>{var r,l,u=Es(e,t);if(u==null)return 0;var s=Tr(e,t),f=Nr(e,t);if(s==null||f==null)return 0;var d=ke(e),h=xN(e),{maxBarSize:m}=u,v=ut(m)?h:m,b,S;return d==="horizontal"?(b=Xa(e,"xAxis",s,n),S=Va(e,"xAxis",s,n)):(b=Xa(e,"yAxis",f,n),S=Va(e,"yAxis",f,n)),(r=(l=eu(b,S,!0))!==null&&l!==void 0?l:v)!==null&&r!==void 0?r:0},sM=(e,t,n)=>{var r=ke(e),l=Tr(e,t),u=Nr(e,t);if(!(l==null||u==null)){var s,f;return r==="horizontal"?(s=Xa(e,"xAxis",l,n),f=Va(e,"xAxis",l,n)):(s=Xa(e,"yAxis",u,n),f=Va(e,"yAxis",u,n)),eu(s,f)}},dZ=$([cZ,xN,rU,SN,fZ,sM,iZ],pX),hZ=(e,t,n)=>{var r=Tr(e,t);if(r!=null)return Xa(e,"xAxis",r,n)},mZ=(e,t,n)=>{var r=Nr(e,t);if(r!=null)return Xa(e,"yAxis",r,n)},vZ=(e,t,n)=>{var r=Tr(e,t);if(r!=null)return Va(e,"xAxis",r,n)},pZ=(e,t,n)=>{var r=Nr(e,t);if(r!=null)return Va(e,"yAxis",r,n)},yZ=$([dZ,Es],gX),gZ=$([oZ,Es],yX),bZ=$([Tt,l0,hZ,mZ,vZ,pZ,yZ,ke,oN,sM,gZ,Es,lZ],(e,t,n,r,l,u,s,f,d,h,m,v,b)=>{var{chartData:S,dataStartIndex:O,dataEndIndex:_}=d;if(!(v==null||s==null||t==null||f!=="horizontal"&&f!=="vertical"||n==null||r==null||l==null||u==null||h==null)){var{data:w}=v,j;if(w!=null&&w.length>0?j=w:j=S==null?void 0:S.slice(O,_+1),j!=null)return VZ({layout:f,barSettings:v,pos:s,parentViewBox:t,bandSize:h,xAxis:n,yAxis:r,xAxisTicks:l,yAxisTicks:u,stackedData:m,displayedData:j,offset:e,cells:b,dataStartIndex:O})}}),xZ=["index"];function xg(){return xg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xg.apply(null,arguments)}function SZ(e,t){if(e==null)return{};var n,r,l=wZ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function wZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var cM=y.createContext(void 0),OZ=e=>{var t=y.useContext(cM);if(t!=null)return t.stackId;if(e!=null)return PT(e)},_Z=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),EZ=e=>{var t=y.useContext(cM);if(t!=null){var{stackId:n}=t;return"url(#".concat(_Z(n,e),")")}},fM=e=>{var{index:t}=e,n=SZ(e,xZ),r=EZ(t);return y.createElement(ht,xg({className:"recharts-bar-stack-layer",clipPath:r},n))},jZ=["onMouseEnter","onMouseLeave","onClick"],AZ=["value","background","tooltipPosition"],CZ=["id"],TZ=["onMouseEnter","onClick","onMouseLeave"];function Wa(){return Wa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wa.apply(null,arguments)}function o2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function tn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?o2(Object(n),!0).forEach(function(r){NZ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function NZ(e,t,n){return(t=PZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PZ(e){var t=MZ(e,"string");return typeof t=="symbol"?t:t+""}function MZ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function yd(e,t){if(e==null)return{};var n,r,l=DZ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function DZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var RZ=e=>{var{dataKey:t,name:n,fill:r,legendType:l,hide:u}=e;return[{inactive:u,dataKey:t,type:l,color:r,value:du(n,t),payload:e}]},kZ=y.memo(e=>{var{dataKey:t,stroke:n,strokeWidth:r,fill:l,name:u,hide:s,unit:f,tooltipType:d,id:h}=e,m={dataDefinedOnItem:void 0,getPosition:Fi,settings:{stroke:n,strokeWidth:r,fill:l,dataKey:t,nameKey:void 0,name:du(u,t),hide:s,type:d,color:l,unit:f,graphicalItemId:h}};return y.createElement(Rb,{tooltipEntrySettings:m})});function LZ(e){var t=pe(Fa),{data:n,dataKey:r,background:l,allOtherBarProps:u}=e,{onMouseEnter:s,onMouseLeave:f,onClick:d}=u,h=yd(u,jZ),m=Pb(s,r,u.id),v=Mb(f),b=Db(d,r,u.id);if(!l||n==null)return null;var S=Bi(l);return y.createElement(yn,{zIndex:bX(l,wt.barBackground)},n.map((O,_)=>{var{value:w,background:j,tooltipPosition:A}=O,N=yd(O,AZ);if(!j)return null;var T=m(O,_),P=v(O,_),M=b(O,_),R=tn(tn(tn(tn(tn({option:l,isActive:String(_)===t},N),{},{fill:"#eee"},j),S),is(h,O,_)),{},{onMouseEnter:T,onMouseLeave:P,onClick:M,dataKey:r,index:_,className:"recharts-bar-background-rectangle"});return y.createElement(Ub,Wa({key:"background-bar-".concat(_)},R))}))}function zZ(e){var{showLabels:t,children:n,rects:r}=e,l=r==null?void 0:r.map(u=>{var s={x:u.x,y:u.y,width:u.width,lowerWidth:u.width,upperWidth:u.width,height:u.height};return tn(tn({},s),{},{value:u.value,payload:u.payload,parentViewBox:u.parentViewBox,viewBox:s,fill:u.fill})});return y.createElement(T5,{value:t?l:void 0},n)}function IZ(e){var{shape:t,activeBar:n,baseProps:r,entry:l,index:u,dataKey:s}=e,f=pe(Fa),d=pe(bb),h=n&&String(l.originalDataIndex)===f&&(d==null||s===d),[m,v]=y.useState(!1),[b,S]=y.useState(!1);y.useEffect(()=>{var N;return h?(v(!0),N=requestAnimationFrame(()=>{S(!0)})):S(!1),()=>{cancelAnimationFrame(N)}},[h]);var O=y.useCallback(()=>{h||v(!1)},[h]),_=h&&b,w=h||m,j;h?n===!0?j=t:j=n:j=t;var A=y.createElement(Ub,Wa({},r,{name:String(r.name)},l,{isActive:_,option:j,index:u,dataKey:s,onTransitionEnd:O}));return w?y.createElement(yn,{zIndex:wt.activeBar},y.createElement(fM,{index:l.originalDataIndex},A)):A}function BZ(e){var{shape:t,baseProps:n,entry:r,index:l,dataKey:u}=e;return y.createElement(Ub,Wa({},n,{name:String(n.name)},r,{isActive:!1,option:t,index:l,dataKey:u}))}function UZ(e){var t,{data:n,props:r}=e,l=(t=pn(r))!==null&&t!==void 0?t:{},{id:u}=l,s=yd(l,CZ),{shape:f,dataKey:d,activeBar:h}=r,{onMouseEnter:m,onClick:v,onMouseLeave:b}=r,S=yd(r,TZ),O=Pb(m,d,u),_=Mb(b),w=Db(v,d,u);return n?y.createElement(y.Fragment,null,n.map((j,A)=>y.createElement(fM,Wa({index:j.originalDataIndex,key:"rectangle-".concat(j==null?void 0:j.x,"-").concat(j==null?void 0:j.y,"-").concat(j==null?void 0:j.value,"-").concat(A),className:"recharts-bar-rectangle"},is(S,j,A),{onMouseEnter:O(j,A),onMouseLeave:_(j,A),onClick:w(j,A)}),h?y.createElement(IZ,{shape:f,activeBar:h,baseProps:s,entry:j,index:A,dataKey:d}):y.createElement(BZ,{shape:f,baseProps:s,entry:j,index:A,dataKey:d})))):null}function $Z(e){var{props:t,previousRectanglesRef:n}=e,{data:r,layout:l,isAnimationActive:u,animationBegin:s,animationDuration:f,animationEasing:d,onAnimationEnd:h,onAnimationStart:m}=t,v=n.current,b=hs(t,"recharts-bar-"),[S,O]=y.useState(!1),_=!S,w=y.useCallback(()=>{typeof h=="function"&&h(),O(!1)},[h]),j=y.useCallback(()=>{typeof m=="function"&&m(),O(!0)},[m]);return y.createElement(zZ,{showLabels:_,rects:r},y.createElement(ds,{animationId:b,begin:s,duration:f,isActive:u,easing:d,onAnimationEnd:w,onAnimationStart:j,key:b},A=>{var N=A===1?r:r==null?void 0:r.map((T,P)=>{var M=v&&v[P];if(M)return tn(tn({},T),{},{x:nt(M.x,T.x,A),y:nt(M.y,T.y,A),width:nt(M.width,T.width,A),height:nt(M.height,T.height,A)});if(l==="horizontal"){var R=nt(0,T.height,A),I=nt(T.stackedBarStart,T.y,A);return tn(tn({},T),{},{y:I,height:R})}var q=nt(0,T.width,A),W=nt(T.stackedBarStart,T.x,A);return tn(tn({},T),{},{width:q,x:W})});return A>0&&(n.current=N??null),N==null?null:y.createElement(ht,null,y.createElement(UZ,{props:t,data:N}))}),y.createElement(Ab,{label:t.label}),t.children)}function qZ(e){var t=y.useRef(null);return y.createElement($Z,{previousRectanglesRef:t,props:e})}var dM=0,HZ=(e,t)=>{var n=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:n,errorVal:$e(e,t)}};class KZ extends y.PureComponent{render(){var{hide:t,data:n,dataKey:r,className:l,xAxisId:u,yAxisId:s,needClip:f,background:d,id:h}=this.props;if(t||n==null)return null;var m=Ie("recharts-bar",l),v=h;return y.createElement(ht,{className:m,id:h},f&&y.createElement("defs",null,y.createElement(eM,{clipPathId:v,xAxisId:u,yAxisId:s})),y.createElement(ht,{className:"recharts-bar-rectangles",clipPath:f?"url(#clipPath-".concat(v,")"):void 0},y.createElement(LZ,{data:n,dataKey:r,background:d,allOtherBarProps:this.props}),y.createElement(qZ,this.props)))}}var YZ={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:dM,xAxisId:0,yAxisId:0,zIndex:wt.bar};function GZ(e){var{xAxisId:t,yAxisId:n,hide:r,legendType:l,minPointSize:u,activeBar:s,animationBegin:f,animationDuration:d,animationEasing:h,isAnimationActive:m}=e,{needClip:v}=Bb(t,n),b=Zi(),S=Jt(),O=Nb(e.children,dh),_=pe(A=>bZ(A,e.id,S,O));if(b!=="vertical"&&b!=="horizontal")return null;var w,j=_==null?void 0:_[0];return j==null||j.height==null||j.width==null?w=0:w=b==="vertical"?j.height/2:j.width/2,y.createElement(EF,{xAxisId:t,yAxisId:n,data:_,dataPointFormatter:HZ,errorBarOffset:w},y.createElement(KZ,Wa({},e,{layout:b,needClip:v,data:_,xAxisId:t,yAxisId:n,hide:r,legendType:l,minPointSize:u,activeBar:s,animationBegin:f,animationDuration:d,animationEasing:h,isAnimationActive:m})))}function VZ(e){var{layout:t,barSettings:{dataKey:n,minPointSize:r,hasCustomShape:l},pos:u,bandSize:s,xAxis:f,yAxis:d,xAxisTicks:h,yAxisTicks:m,stackedData:v,displayedData:b,offset:S,cells:O,parentViewBox:_,dataStartIndex:w}=e,j=t==="horizontal"?d:f,A=v?j.scale.domain():null,N=FI({numericAxis:j}),T=j.scale.map(N);return b.map((P,M)=>{var R,I,q,W,X,U;if(v){var se=v[M+w];if(se==null)return null;R=KI(se,A)}else R=$e(P,n),Array.isArray(R)||(R=[N,R]);var F=nZ(r,dM)(R[1],M);if(t==="horizontal"){var J,z=d.scale.map(R[0]),V=d.scale.map(R[1]);if(z==null||V==null)return null;I=K_({axis:f,ticks:h,bandSize:s,offset:u.offset,entry:P,index:M}),q=(J=V??z)!==null&&J!==void 0?J:void 0,W=u.size;var ne=z-V;if(X=lr(ne)?0:ne,U={x:I,y:S.top,width:W,height:S.height},Math.abs(F)>0&&Math.abs(X)<Math.abs(F)){var le=kt(X||F)*(Math.abs(F)-Math.abs(X));q-=le,X+=le}}else{var Q=f.scale.map(R[0]),D=f.scale.map(R[1]);if(Q==null||D==null)return null;if(I=Q,q=K_({axis:d,ticks:m,bandSize:s,offset:u.offset,entry:P,index:M}),W=D-Q,X=u.size,U={x:S.left,y:q,width:S.width,height:X},Math.abs(F)>0&&Math.abs(W)<Math.abs(F)){var K=kt(W||F)*(Math.abs(F)-Math.abs(W));W+=K}}if(I==null||q==null||W==null||X==null||!l&&(W===0||X===0))return null;var oe=tn(tn({},P),{},{stackedBarStart:T,x:I,y:q,width:W,height:X,value:v?R:R[1],payload:P,background:U,tooltipPosition:{x:I+W/2,y:q+X/2},parentViewBox:_,originalDataIndex:M},O&&O[M]&&O[M].props);return oe}).filter(Boolean)}function XZ(e){var t=Ct(e,YZ),n=OZ(t.stackId),r=Jt();return y.createElement(kb,{id:t.id,type:"bar"},l=>y.createElement(y.Fragment,null,y.createElement(U5,{legendPayload:RZ(t)}),y.createElement(kZ,{dataKey:t.dataKey,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:l}),y.createElement(q5,{type:"bar",id:l,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:n,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:r,hasCustomShape:t.shape!=null}),y.createElement(yn,{zIndex:t.zIndex},y.createElement(GZ,Wa({},t,{id:l})))))}var hM=y.memo(XZ,hu);hM.displayName="Bar";var FZ=["domain","range"],ZZ=["domain","range"];function s2(e,t){if(e==null)return{};var n,r,l=WZ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function WZ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function c2(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function mM(e,t){if(e===t)return!0;var{domain:n,range:r}=e,l=s2(e,FZ),{domain:u,range:s}=t,f=s2(t,ZZ);return!c2(n,u)||!c2(r,s)?!1:hu(l,f)}var QZ=["type"],JZ=["dangerouslySetInnerHTML","ticks","scale"],eW=["id","scale"];function Sg(){return Sg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Sg.apply(null,arguments)}function f2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function d2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?f2(Object(n),!0).forEach(function(r){tW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function tW(e,t,n){return(t=nW(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nW(e){var t=rW(e,"string");return typeof t=="symbol"?t:t+""}function rW(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wg(e,t){if(e==null)return{};var n,r,l=aW(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function aW(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function iW(e){var t=Xe(),n=y.useRef(null),r=d0(),{type:l}=e,u=wg(e,QZ),s=Fd(r,"xAxis",l),f=y.useMemo(()=>{if(s!=null)return d2(d2({},u),{},{type:s})},[u,s]);return y.useLayoutEffect(()=>{f!=null&&(n.current===null?t(ZV(f)):n.current!==f&&t(WV({prev:n.current,next:f})),n.current=f)},[f,t]),y.useLayoutEffect(()=>()=>{n.current&&(t(QV(n.current)),n.current=null)},[t]),null}var lW=e=>{var{xAxisId:t,className:n}=e,r=pe(l0),l=Jt(),u="xAxis",s=pe(j=>IP(j,u,t,l)),f=pe(j=>kP(j,t)),d=pe(j=>Iq(j,t)),h=pe(j=>hP(j,t));if(f==null||d==null||h==null)return null;var{dangerouslySetInnerHTML:m,ticks:v,scale:b}=e,S=wg(e,JZ),{id:O,scale:_}=h,w=wg(h,eW);return y.createElement(Ib,Sg({},S,w,{x:d.x,y:d.y,width:f.width,height:f.height,className:Ie("recharts-".concat(u," ").concat(u),n),viewBox:r,ticks:s,axisType:u,axisId:t}))},uW={allowDataOverflow:Et.allowDataOverflow,allowDecimals:Et.allowDecimals,allowDuplicatedCategory:Et.allowDuplicatedCategory,angle:Et.angle,axisLine:ta.axisLine,height:Et.height,hide:!1,includeHidden:Et.includeHidden,interval:Et.interval,label:!1,minTickGap:Et.minTickGap,mirror:Et.mirror,orientation:Et.orientation,padding:Et.padding,reversed:Et.reversed,scale:Et.scale,tick:Et.tick,tickCount:Et.tickCount,tickLine:ta.tickLine,tickSize:ta.tickSize,type:Et.type,niceTicks:Et.niceTicks,xAxisId:0},oW=e=>{var t=Ct(e,uW);return y.createElement(y.Fragment,null,y.createElement(iW,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),y.createElement(lW,t))},$b=y.memo(oW,mM);$b.displayName="XAxis";var sW=["type"],cW=["dangerouslySetInnerHTML","ticks","scale"],fW=["id","scale"];function Og(){return Og=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Og.apply(null,arguments)}function h2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function m2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?h2(Object(n),!0).forEach(function(r){dW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function dW(e,t,n){return(t=hW(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hW(e){var t=mW(e,"string");return typeof t=="symbol"?t:t+""}function mW(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function _g(e,t){if(e==null)return{};var n,r,l=vW(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function vW(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function pW(e){var t=Xe(),n=y.useRef(null),r=d0(),{type:l}=e,u=_g(e,sW),s=Fd(r,"yAxis",l),f=y.useMemo(()=>{if(s!=null)return m2(m2({},u),{},{type:s})},[s,u]);return y.useLayoutEffect(()=>{f!=null&&(n.current===null?t(JV(f)):n.current!==f&&t(eX({prev:n.current,next:f})),n.current=f)},[f,t]),y.useLayoutEffect(()=>()=>{n.current&&(t(tX(n.current)),n.current=null)},[t]),null}function yW(e){var{yAxisId:t,className:n,width:r,label:l}=e,u=y.useRef(null),s=y.useRef(null),f=pe(l0),d=Jt(),h=Xe(),m="yAxis",v=pe(M=>LP(M,t)),b=pe(M=>Uq(M,t)),S=pe(M=>IP(M,m,t,d)),O=pe(M=>mP(M,t));if(y.useLayoutEffect(()=>{if(!(r!=="auto"||!v||jb(l)||y.isValidElement(l)||O==null)){var M=u.current;if(M){var R=M.getCalculatedWidth();Math.round(v.width)!==Math.round(R)&&h(nX({id:t,width:R}))}}},[S,v,h,l,t,r,O]),v==null||b==null||O==null)return null;var{dangerouslySetInnerHTML:_,ticks:w,scale:j}=e,A=_g(e,cW),{id:N,scale:T}=O,P=_g(O,fW);return y.createElement(Ib,Og({},A,P,{ref:u,labelRef:s,x:b.x,y:b.y,tickTextProps:r==="auto"?{width:void 0}:{width:r},width:v.width,height:v.height,className:Ie("recharts-".concat(m," ").concat(m),n),viewBox:f,ticks:S,axisType:m,axisId:t}))}var gW={allowDataOverflow:jt.allowDataOverflow,allowDecimals:jt.allowDecimals,allowDuplicatedCategory:jt.allowDuplicatedCategory,angle:jt.angle,axisLine:ta.axisLine,hide:!1,includeHidden:jt.includeHidden,interval:jt.interval,label:!1,minTickGap:jt.minTickGap,mirror:jt.mirror,orientation:jt.orientation,padding:jt.padding,reversed:jt.reversed,scale:jt.scale,tick:jt.tick,tickCount:jt.tickCount,tickLine:ta.tickLine,tickSize:ta.tickSize,type:jt.type,niceTicks:jt.niceTicks,width:jt.width,yAxisId:0},bW=e=>{var t=Ct(e,gW);return y.createElement(y.Fragment,null,y.createElement(pW,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),y.createElement(yW,t))},qb=y.memo(bW,mM);qb.displayName="YAxis";var xW=(e,t)=>t,Hb=$([xW,ke,CN,Lt,n5,ha,uK,Tt],mK);function SW(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Kb(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(SW(e)){var l=e.currentTarget.getBBox();n=l.width>0?t.width/l.width:1,r=l.height>0?t.height/l.height:1}else{var u=e.currentTarget;n=u.offsetWidth>0?t.width/u.offsetWidth:1,r=u.offsetHeight>0?t.height/u.offsetHeight:1}var s=(f,d)=>({relativeX:Math.round((f-t.left)/n),relativeY:Math.round((d-t.top)/r)});return"touches"in e?Array.from(e.touches).map(f=>s(f.clientX,f.clientY)):s(e.clientX,e.clientY)}var vM=Pn("mouseClick"),pM=us();pM.startListening({actionCreator:vM,effect:(e,t)=>{var n=e.payload,r=Hb(t.getState(),Kb(n));(r==null?void 0:r.activeIndex)!=null&&t.dispatch(nH({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var Eg=Pn("mouseMove"),yM=us(),Hl=null,Oi=null,Ay=null;yM.startListening({actionCreator:Eg,effect:(e,t)=>{var n=e.payload,r=t.getState(),{throttleDelay:l,throttledEvents:u}=r.eventSettings,s=u==="all"||(u==null?void 0:u.includes("mousemove"));Hl!==null&&(cancelAnimationFrame(Hl),Hl=null),Oi!==null&&(typeof l!="number"||!s)&&(clearTimeout(Oi),Oi=null),Ay=Kb(n);var f=()=>{var d=t.getState(),h=Os(d,d.tooltip.settings.shared);if(!Ay){Hl=null,Oi=null;return}if(h==="axis"){var m=Hb(d,Ay);(m==null?void 0:m.activeIndex)!=null?t.dispatch(GP({activeIndex:m.activeIndex,activeDataKey:void 0,activeCoordinate:m.activeCoordinate})):t.dispatch(YP())}Hl=null,Oi=null};if(!s){f();return}l==="raf"?Hl=requestAnimationFrame(f):typeof l=="number"&&Oi===null&&(Oi=setTimeout(f,l))}});function wW(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var v2={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},gM=Qt({name:"rootProps",initialState:v2,reducers:{updateOptions:(e,t)=>{var n;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(n=t.payload.barGap)!==null&&n!==void 0?n:v2.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),OW=gM.reducer,{updateOptions:_W}=gM.actions,EW=null,jW={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},bM=Qt({name:"polarOptions",initialState:EW,reducers:jW}),{updatePolarOptions:AW}=bM.actions,CW=bM.reducer,xM=Pn("keyDown"),SM=Pn("focus"),wM=Pn("blur"),yh=us(),Kl=null,_i=null,of=null;yh.startListening({actionCreator:xM,effect:(e,t)=>{of=e.payload,Kl!==null&&(cancelAnimationFrame(Kl),Kl=null);var n=t.getState(),{throttleDelay:r,throttledEvents:l}=n.eventSettings,u=l==="all"||l.includes("keydown");_i!==null&&(typeof r!="number"||!u)&&(clearTimeout(_i),_i=null);var s=()=>{try{var f=t.getState(),d=f.rootProps.accessibilityLayer!==!1;if(!d)return;var{keyboardInteraction:h}=f.tooltip,m=of;if(m!=="ArrowRight"&&m!=="ArrowLeft"&&m!=="Enter")return;var v=Do(h,Vi(f),lu(f),uu(f)),b=v==null?-1:Number(v),S=!Number.isFinite(b)||b<0,O=ha(f),_=Vi(f),w=Os(f,f.tooltip.settings.shared);if(m==="Enter"){if(S)return;var j=cd(f,w,"hover",String(h.index));t.dispatch(sd({active:!h.active,activeIndex:h.index,activeCoordinate:j}));return}var A=Yq(f),N=A==="left-to-right"?1:-1,T=m==="ArrowRight"?1:-1,P;if(S){var M=lu(f),R=uu(f),I=T*N,q=F=>({active:!1,index:String(F),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(P=-1,I>0){for(var W=0;W<_.length;W++)if(Do(q(W),_,M,R)!=null){P=W;break}}else for(var X=_.length-1;X>=0;X--)if(Do(q(X),_,M,R)!=null){P=X;break}if(P<0)return}else{P=b+T*N;var U=(O==null?void 0:O.length)||_.length;if(U===0||P>=U||P<0)return}var se=cd(f,w,"hover",String(P));t.dispatch(sd({active:!0,activeIndex:P.toString(),activeCoordinate:se}))}finally{Kl=null,_i=null}};if(!u){s();return}r==="raf"?Kl=requestAnimationFrame(s):typeof r=="number"&&_i===null&&(s(),of=null,_i=setTimeout(()=>{of?s():(_i=null,Kl=null)},r))}});yh.startListening({actionCreator:SM,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:l}=n.tooltip;if(!l.active&&l.index==null){var u="0",s=Os(n,n.tooltip.settings.shared),f=cd(n,s,"hover",String(u));t.dispatch(sd({active:!0,activeIndex:u,activeCoordinate:f}))}}}});yh.startListening({actionCreator:wM,effect:(e,t)=>{var n=t.getState(),r=n.rootProps.accessibilityLayer!==!1;if(r){var{keyboardInteraction:l}=n.tooltip;l.active&&t.dispatch(sd({active:!1,activeIndex:l.index,activeCoordinate:l.coordinate}))}}});function OM(e){e.persist();var{currentTarget:t}=e;return new Proxy(e,{get:(n,r)=>{if(r==="currentTarget")return t;var l=Reflect.get(n,r);return typeof l=="function"?l.bind(n):l}})}var Yn=Pn("externalEvent"),_M=us(),sf=new Map,Co=new Map,Cy=new Map;_M.startListening({actionCreator:Yn,effect:(e,t)=>{var{handler:n,reactEvent:r}=e.payload;if(n!=null){var l=r.type,u=OM(r);Cy.set(l,{handler:n,reactEvent:u});var s=sf.get(l);s!==void 0&&(cancelAnimationFrame(s),sf.delete(l));var f=t.getState(),{throttleDelay:d,throttledEvents:h}=f.eventSettings,m=h,v=m==="all"||(m==null?void 0:m.includes(l)),b=Co.get(l);b!==void 0&&(typeof d!="number"||!v)&&(clearTimeout(b),Co.delete(l));var S=()=>{var w=Cy.get(l);try{if(!w)return;var{handler:j,reactEvent:A}=w,N=t.getState(),T={activeCoordinate:GH(N),activeDataKey:bb(N),activeIndex:Fa(N),activeLabel:i5(N),activeTooltipIndex:Fa(N),isTooltipActive:VH(N)};j&&j(T,A)}finally{sf.delete(l),Co.delete(l),Cy.delete(l)}};if(!v){S();return}if(d==="raf"){var O=requestAnimationFrame(S);sf.set(l,O)}else if(typeof d=="number"){if(!Co.has(l)){S();var _=setTimeout(S,d);Co.set(l,_)}}else S()}}});var TW=$([Su],e=>e.tooltipItemPayloads),NW=$([TW,(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(u=>u.settings.graphicalItemId===n);if(r!=null){var{getPosition:l}=r;if(l!=null)return l(t)}}}),EM=Pn("touchMove"),jM=us(),Ei=null,Ba=null,p2=null,To=null;jM.startListening({actionCreator:EM,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){To=OM(n);var r=t.getState(),{throttleDelay:l,throttledEvents:u}=r.eventSettings,s=u==="all"||u.includes("touchmove");Ei!==null&&(cancelAnimationFrame(Ei),Ei=null),Ba!==null&&(typeof l!="number"||!s)&&(clearTimeout(Ba),Ba=null),p2=Array.from(n.touches).map(d=>Kb({clientX:d.clientX,clientY:d.clientY,currentTarget:n.currentTarget}));var f=()=>{if(To!=null){var d=t.getState(),h=Os(d,d.tooltip.settings.shared);if(h==="axis"){var m,v=(m=p2)===null||m===void 0?void 0:m[0];if(v==null){Ei=null,Ba=null;return}var b=Hb(d,v);(b==null?void 0:b.activeIndex)!=null&&t.dispatch(GP({activeIndex:b.activeIndex,activeDataKey:void 0,activeCoordinate:b.activeCoordinate}))}else if(h==="item"){var S,O=To.touches[0];if(document.elementFromPoint==null||O==null)return;var _=document.elementFromPoint(O.clientX,O.clientY);if(!_||!_.getAttribute)return;var w=_.getAttribute(DT),j=(S=_.getAttribute(RT))!==null&&S!==void 0?S:void 0,A=Ji(d).find(P=>P.id===j);if(w==null||A==null||j==null)return;var{dataKey:N}=A,T=NW(d,w,j);t.dispatch(KP({activeDataKey:N,activeIndex:w,activeCoordinate:T,activeGraphicalItemId:j}))}Ei=null,Ba=null}};if(!s){f();return}l==="raf"?Ei=requestAnimationFrame(f):typeof l=="number"&&Ba===null&&(f(),To=null,Ba=setTimeout(()=>{To?f():(Ba=null,Ei=null)},l))}}});var Yb={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},AM=Qt({name:"eventSettings",initialState:Yb,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),{setEventSettings:PW}=AM.actions,MW=AM.reducer,DW=eT({brush:xX,cartesianAxis:rX,chartData:KK,errorBars:bF,eventSettings:MW,graphicalItems:uV,layout:BI,legend:Y8,options:BK,polarAxis:xG,polarOptions:CW,referenceElements:_X,renderedTicks:$X,rootProps:OW,tooltip:rH,zIndex:AK}),RW=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return cI({reducer:DW,preloadedState:t,middleware:r=>{var l;return r({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((l="es6")!==null&&l!==void 0?l:"")}).concat([pM.middleware,yM.middleware,yh.middleware,_M.middleware,jM.middleware])},enhancers:r=>{var l=r;return typeof r=="function"&&(l=r()),l.concat(vT({type:"raf"}))},devTools:{serialize:{replacer:wW},name:"recharts-".concat(n)}})};function CM(e){var{preloadedState:t,children:n,reduxStoreName:r}=e,l=Jt(),u=y.useRef(null);if(l)return n;u.current==null&&(u.current=RW(t,r));var s=Jg;return y.createElement(uB,{context:s,store:u.current},n)}function kW(e){var{layout:t,margin:n}=e,r=Xe(),l=Jt();return y.useEffect(()=>{l||(r(LI(t)),r(kI(n)))},[r,l,t,n]),null}var TM=y.memo(kW,hu);function NM(e){var t=Xe();return y.useEffect(()=>{t(_W(e))},[t,e]),null}var LW=e=>{var t=Xe();return y.useEffect(()=>{t(PW(e))},[t,e]),null},PM=y.memo(LW,hu);function y2(e){var{zIndex:t,isPanorama:n}=e,r=y.useRef(null),l=Xe();return y.useLayoutEffect(()=>(r.current&&l(EK({zIndex:t,element:r.current,isPanorama:n})),()=>{l(jK({zIndex:t,isPanorama:n}))}),[l,t,n]),y.createElement("g",{tabIndex:-1,ref:r,className:"recharts-zIndex-layer_".concat(t)})}function g2(e){var{children:t,isPanorama:n}=e,r=pe(pK);if(!r||r.length===0)return t;var l=r.filter(s=>s<0),u=r.filter(s=>s>0);return y.createElement(y.Fragment,null,l.map(s=>y.createElement(y2,{key:s,zIndex:s,isPanorama:n})),t,u.map(s=>y.createElement(y2,{key:s,zIndex:s,isPanorama:n})))}var zW=["children"];function IW(e,t){if(e==null)return{};var n,r,l=BW(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function BW(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function gd(){return gd=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},gd.apply(null,arguments)}var UW={width:"100%",height:"100%",display:"block"},$W=y.forwardRef((e,t)=>{var n=c0(),r=f0(),l=QT();if(!_r(n)||!_r(r))return null;var{children:u,otherAttributes:s,title:f,desc:d}=e,h,m;return s!=null&&(typeof s.tabIndex=="number"?h=s.tabIndex:h=l?0:void 0,typeof s.role=="string"?m=s.role:m=l?"application":void 0),y.createElement(qg,gd({},s,{title:f,desc:d,role:m,tabIndex:h,width:n,height:r,style:UW,ref:t}),u)}),qW=e=>{var{children:t}=e,n=pe(qd);if(!n)return null;var{width:r,height:l,y:u,x:s}=n;return y.createElement(qg,{width:r,height:l,x:s,y:u},t)},b2=y.forwardRef((e,t)=>{var{children:n}=e,r=IW(e,zW),l=Jt();return l?y.createElement(qW,null,y.createElement(g2,{isPanorama:!0},n)):y.createElement($W,gd({ref:t},r),y.createElement(g2,{isPanorama:!1},n))});function HW(){var e=Xe(),[t,n]=y.useState(null),r=pe(t8);return y.useEffect(()=>{if(t!=null){var l=t.getBoundingClientRect(),u=l.width/t.offsetWidth;je(u)&&u!==r&&e(II(u))}},[t,e,r]),n}function x2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function KW(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?x2(Object(n),!0).forEach(function(r){YW(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function YW(e,t,n){return(t=GW(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GW(e){var t=VW(e,"string");return typeof t=="symbol"?t:t+""}function VW(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ga(){return Ga=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ga.apply(null,arguments)}var XW=()=>(JK(),null);function bd(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var FW=y.forwardRef((e,t)=>{var n,r,l=y.useRef(null),[u,s]=y.useState({containerWidth:bd((n=e.style)===null||n===void 0?void 0:n.width),containerHeight:bd((r=e.style)===null||r===void 0?void 0:r.height)}),f=y.useCallback((h,m)=>{s(v=>{var b=Math.round(h),S=Math.round(m);return v.containerWidth===b&&v.containerHeight===S?v:{containerWidth:b,containerHeight:S}})},[]),d=y.useCallback(h=>{if(typeof t=="function"&&t(h),l.current!=null&&(l.current.disconnect(),l.current=null),h!=null&&typeof ResizeObserver<"u"){var{width:m,height:v}=h.getBoundingClientRect();f(m,v);var b=O=>{var _=O[0];if(_!=null){var{width:w,height:j}=_.contentRect;f(w,j)}},S=new ResizeObserver(b);S.observe(h),l.current=S}},[t,f]);return y.useEffect(()=>()=>{var h=l.current;h!=null&&h.disconnect()},[f]),y.createElement(y.Fragment,null,y.createElement(ss,{width:u.containerWidth,height:u.containerHeight}),y.createElement("div",Ga({ref:d},e)))}),ZW=y.forwardRef((e,t)=>{var{width:n,height:r}=e,[l,u]=y.useState({containerWidth:bd(n),containerHeight:bd(r)}),s=y.useCallback((d,h)=>{u(m=>{var v=Math.round(d),b=Math.round(h);return m.containerWidth===v&&m.containerHeight===b?m:{containerWidth:v,containerHeight:b}})},[]),f=y.useCallback(d=>{if(typeof t=="function"&&t(d),d!=null){var{width:h,height:m}=d.getBoundingClientRect();s(h,m)}},[t,s]);return y.createElement(y.Fragment,null,y.createElement(ss,{width:l.containerWidth,height:l.containerHeight}),y.createElement("div",Ga({ref:f},e)))}),WW=y.forwardRef((e,t)=>{var{width:n,height:r}=e;return y.createElement(y.Fragment,null,y.createElement(ss,{width:n,height:r}),y.createElement("div",Ga({ref:t},e)))}),QW=y.forwardRef((e,t)=>{var{width:n,height:r}=e;return typeof n=="string"||typeof r=="string"?y.createElement(ZW,Ga({},e,{ref:t})):typeof n=="number"&&typeof r=="number"?y.createElement(WW,Ga({},e,{width:n,height:r,ref:t})):y.createElement(y.Fragment,null,y.createElement(ss,{width:n,height:r}),y.createElement("div",Ga({ref:t},e)))});function JW(e){return e?FW:QW}var eQ=y.forwardRef((e,t)=>{var{children:n,className:r,height:l,onClick:u,onContextMenu:s,onDoubleClick:f,onMouseDown:d,onMouseEnter:h,onMouseLeave:m,onMouseMove:v,onMouseUp:b,onTouchEnd:S,onTouchMove:O,onTouchStart:_,style:w,width:j,responsive:A,dispatchTouchEvents:N=!0}=e,T=y.useRef(null),P=Xe(),[M,R]=y.useState(null),[I,q]=y.useState(null),W=HW(),X=u0(),U=(X==null?void 0:X.width)>0?X.width:j,se=(X==null?void 0:X.height)>0?X.height:l,F=y.useCallback(fe=>{W(fe),typeof t=="function"&&t(fe),R(fe),q(fe),fe!=null&&(T.current=fe)},[W,t,R,q]),J=y.useCallback(fe=>{P(vM(fe)),P(Yn({handler:u,reactEvent:fe}))},[P,u]),z=y.useCallback(fe=>{P(Eg(fe)),P(Yn({handler:h,reactEvent:fe}))},[P,h]),V=y.useCallback(fe=>{P(YP()),P(Yn({handler:m,reactEvent:fe}))},[P,m]),ne=y.useCallback(fe=>{P(Eg(fe)),P(Yn({handler:v,reactEvent:fe}))},[P,v]),le=y.useCallback(()=>{P(SM())},[P]),Q=y.useCallback(()=>{P(wM())},[P]),D=y.useCallback(fe=>{P(xM(fe.key))},[P]),K=y.useCallback(fe=>{P(Yn({handler:s,reactEvent:fe}))},[P,s]),oe=y.useCallback(fe=>{P(Yn({handler:f,reactEvent:fe}))},[P,f]),ce=y.useCallback(fe=>{P(Yn({handler:d,reactEvent:fe}))},[P,d]),ge=y.useCallback(fe=>{P(Yn({handler:b,reactEvent:fe}))},[P,b]),ae=y.useCallback(fe=>{P(Yn({handler:_,reactEvent:fe}))},[P,_]),he=y.useCallback(fe=>{N&&P(EM(fe)),P(Yn({handler:O,reactEvent:fe}))},[P,N,O]),xe=y.useCallback(fe=>{P(Yn({handler:S,reactEvent:fe}))},[P,S]),ie=JW(A);return y.createElement(m5.Provider,{value:M},y.createElement(vC.Provider,{value:I},y.createElement(ie,{width:U??(w==null?void 0:w.width),height:se??(w==null?void 0:w.height),className:Ie("recharts-wrapper",r),style:KW({position:"relative",cursor:"default",width:U,height:se},w),onClick:J,onContextMenu:K,onDoubleClick:oe,onFocus:le,onBlur:Q,onKeyDown:D,onMouseDown:ce,onMouseEnter:z,onMouseLeave:V,onMouseMove:ne,onMouseUp:ge,onTouchEnd:xe,onTouchMove:he,onTouchStart:ae,ref:F},y.createElement(XW,null),n)))}),tQ=["width","height","responsive","children","className","style","compact","title","desc"];function nQ(e,t){if(e==null)return{};var n,r,l=rQ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function rQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var MM=y.forwardRef((e,t)=>{var{width:n,height:r,responsive:l,children:u,className:s,style:f,compact:d,title:h,desc:m}=e,v=nQ(e,tQ),b=pn(v);return d?y.createElement(y.Fragment,null,y.createElement(ss,{width:n,height:r}),y.createElement(b2,{otherAttributes:b,title:h,desc:m},u)):y.createElement(eQ,{className:s,style:f,width:n,height:r,responsive:l??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},y.createElement(b2,{otherAttributes:b,title:h,desc:m,ref:t},y.createElement(jX,null,u)))});function jg(){return jg=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},jg.apply(null,arguments)}function S2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function aQ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?S2(Object(n),!0).forEach(function(r){iQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function iQ(e,t,n){return(t=lQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lQ(e){var t=uQ(e,"string");return typeof t=="symbol"?t:t+""}function uQ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var oQ={top:5,right:5,bottom:5,left:5},sQ=aQ({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:oQ,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},Yb),DM=y.forwardRef(function(t,n){var r,l=Ct(t.categoricalChartProps,sQ),{chartName:u,defaultTooltipEventType:s,validateTooltipEventTypes:f,tooltipPayloadSearcher:d,categoricalChartProps:h}=t,m={chartName:u,defaultTooltipEventType:s,validateTooltipEventTypes:f,tooltipPayloadSearcher:d,eventEmitter:void 0};return y.createElement(CM,{preloadedState:{options:m},reduxStoreName:(r=h.id)!==null&&r!==void 0?r:u},y.createElement(G5,{chartData:h.data}),y.createElement(TM,{layout:l.layout,margin:l.margin}),y.createElement(PM,{throttleDelay:l.throttleDelay,throttledEvents:l.throttledEvents}),y.createElement(NM,{baseValue:l.baseValue,accessibilityLayer:l.accessibilityLayer,barCategoryGap:l.barCategoryGap,maxBarSize:l.maxBarSize,stackOffset:l.stackOffset,barGap:l.barGap,barSize:l.barSize,syncId:l.syncId,syncMethod:l.syncMethod,className:l.className,reverseStackOrder:l.reverseStackOrder}),y.createElement(MM,jg({},l,{ref:n})))}),cQ=["axis","item"],fQ=y.forwardRef((e,t)=>y.createElement(DM,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:cQ,tooltipPayloadSearcher:_b,categoricalChartProps:e,ref:t}));function dQ(e){var t=Xe();return y.useEffect(()=>{t(AW(e))},[t,e]),null}var hQ=["layout"];function Ag(){return Ag=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ag.apply(null,arguments)}function mQ(e,t){if(e==null)return{};var n,r,l=vQ(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}function vQ(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function w2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function pQ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?w2(Object(n),!0).forEach(function(r){yQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function yQ(e,t,n){return(t=gQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gQ(e){var t=bQ(e,"string");return typeof t=="symbol"?t:t+""}function bQ(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var xQ={top:5,right:5,bottom:5,left:5},RM=pQ({accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:xQ,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},Yb),SQ=y.forwardRef(function(t,n){var r,l=Ct(t.categoricalChartProps,RM),{layout:u}=l,s=mQ(l,hQ),{chartName:f,defaultTooltipEventType:d,validateTooltipEventTypes:h,tooltipPayloadSearcher:m}=t,v={chartName:f,defaultTooltipEventType:d,validateTooltipEventTypes:h,tooltipPayloadSearcher:m,eventEmitter:void 0};return y.createElement(CM,{preloadedState:{options:v},reduxStoreName:(r=l.id)!==null&&r!==void 0?r:f},y.createElement(G5,{chartData:l.data}),y.createElement(TM,{layout:u,margin:l.margin}),y.createElement(PM,{throttleDelay:l.throttleDelay,throttledEvents:l.throttledEvents}),y.createElement(NM,{baseValue:void 0,accessibilityLayer:l.accessibilityLayer,barCategoryGap:l.barCategoryGap,maxBarSize:l.maxBarSize,stackOffset:l.stackOffset,barGap:l.barGap,barSize:l.barSize,syncId:l.syncId,syncMethod:l.syncMethod,className:l.className,reverseStackOrder:l.reverseStackOrder}),y.createElement(dQ,{cx:l.cx,cy:l.cy,startAngle:l.startAngle,endAngle:l.endAngle,innerRadius:l.innerRadius,outerRadius:l.outerRadius}),y.createElement(MM,Ag({},s,{ref:n})))});function O2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable})),n.push.apply(n,r)}return n}function _2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?O2(Object(n),!0).forEach(function(r){wQ(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O2(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function wQ(e,t,n){return(t=OQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function OQ(e){var t=_Q(e,"string");return typeof t=="symbol"?t:t+""}function _Q(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var EQ=["item"],jQ=_2(_2({},RM),{},{layout:"centric",startAngle:0,endAngle:360}),AQ=y.forwardRef((e,t)=>{var n=Ct(e,jQ);return y.createElement(SQ,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:EQ,tooltipPayloadSearcher:_b,categoricalChartProps:n,ref:t})}),CQ=["axis"],TQ=y.forwardRef((e,t)=>y.createElement(DM,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:CQ,tooltipPayloadSearcher:_b,categoricalChartProps:e,ref:t}));function E2(e){const t=new Date(e);return`${String(t.getHours()).padStart(2,"0")}:00`}function NQ({data:e,height:t=240,color:n="#6366f1"}){return x.jsx(o0,{width:"100%",height:t,children:x.jsxs(TQ,{data:e,children:[x.jsx("defs",{children:x.jsxs("linearGradient",{id:"areaGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[x.jsx("stop",{offset:"0%",stopColor:n,stopOpacity:.3}),x.jsx("stop",{offset:"100%",stopColor:n,stopOpacity:0})]})}),x.jsx(Q5,{strokeDasharray:"3 3",stroke:"#e5e7eb"}),x.jsx($b,{dataKey:"bucket",tickFormatter:E2,tick:{fontSize:12,fill:"#6b7280"},axisLine:{stroke:"#e5e7eb"},tickLine:!1}),x.jsx(qb,{allowDecimals:!1,tick:{fontSize:12,fill:"#6b7280"},axisLine:!1,tickLine:!1,width:40}),x.jsx(Eb,{labelFormatter:r=>E2(String(r)),formatter:r=>[String(r),"Actions"],contentStyle:{fontSize:12,borderRadius:6,border:"1px solid #e5e7eb"}}),x.jsx(oM,{type:"monotone",dataKey:"count",stroke:n,strokeWidth:2,fill:"url(#areaGradient)"})]})})}function PQ(e){const t=e.decision??"";return x.jsx(v0,{...e,fill:iC[t]??lC})}function MQ({data:e,height:t=260}){const n=e.map(r=>({name:zg(r.decision),value:r.count,decision:r.decision,fill:iC[r.decision]??lC}));return x.jsx(o0,{width:"100%",height:t,children:x.jsxs(AQ,{children:[x.jsx(H5,{data:n,dataKey:"value",nameKey:"name",cx:"50%",cy:"45%",innerRadius:"55%",outerRadius:"80%",paddingAngle:2,shape:PQ}),x.jsx(Eb,{formatter:r=>[String(r),"Actions"],contentStyle:{fontSize:12,borderRadius:6,border:"1px solid #e5e7eb"}}),x.jsx(ZT,{verticalAlign:"bottom",iconType:"circle",iconSize:8,wrapperStyle:{fontSize:12}})]})})}function DQ(e){const t=e.reduce((n,r)=>Math.max(n,r.tool_name.length),0);return Math.min(t*7.5+12,220)}function j2({data:e,height:t}){const n=t??Math.max(120,e.length*36+20),r=y.useMemo(()=>DQ(e),[e]);return x.jsx(o0,{width:"100%",height:n,children:x.jsxs(fQ,{data:e,layout:"vertical",margin:{left:8,right:16,top:4,bottom:4},children:[x.jsx($b,{type:"number",allowDecimals:!1,tick:{fontSize:12,fill:"#6b7280"},axisLine:{stroke:"#e5e7eb"},tickLine:!1}),x.jsx(qb,{type:"category",dataKey:"tool_name",width:r,tick:{fontSize:12,fill:"#374151"},axisLine:!1,tickLine:!1}),x.jsx(Eb,{cursor:!1,formatter:l=>[String(l),"Calls"],contentStyle:{fontSize:12,borderRadius:6,border:"1px solid #e5e7eb"}}),x.jsx(hM,{dataKey:"count",fill:"#6366f1",barSize:20,radius:[0,4,4,0]})]})})}function RQ(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[l,u]=y.useState(null),[s,f]=y.useState(Io),d=y.useCallback(w=>{const j=new Date(Date.now()-s).toISOString();i4(j,void 0).then(A=>{t(A),u(null),w&&r(!1)}).catch(A=>{w&&(u(A instanceof Error?A.message:"Failed to load analytics"),r(!1))})},[s]);y.useEffect(()=>{r(!0),d(!0)},[d]);function h(w){w!==s&&f(w)}if(n)return x.jsxs("div",{className:"flex flex-col gap-6",children:[x.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:Array.from({length:4},(w,j)=>x.jsx("div",{className:"h-20 animate-pulse rounded-md bg-gray-100"},j))}),x.jsx("div",{className:"h-64 animate-pulse rounded-md bg-gray-100"}),x.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[x.jsx("div",{className:"h-72 animate-pulse rounded-md bg-gray-100"}),x.jsx("div",{className:"h-72 animate-pulse rounded-md bg-gray-100"})]})]});if(l)return x.jsx(Ii,{error:l});if(!e||e.total===0)return x.jsxs("div",{className:"flex h-full flex-col gap-6",children:[x.jsxs("div",{children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Analytics"}),x.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Tool call volume and decision breakdown"})]}),x.jsx(A2,{activePreset:s,onPresetChange:h}),x.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 text-gray-500",children:[x.jsxs("svg",{className:"h-10 w-10 text-gray-300",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",children:[x.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 6a7.5 7.5 0 1 0 7.5 7.5h-7.5V6Z"}),x.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 10.5H21A7.5 7.5 0 0 0 13.5 3v7.5Z"})]}),x.jsx("p",{className:"text-sm font-medium",children:"No data yet"}),x.jsx("p",{className:"text-xs text-gray-400",children:"Start sending tool calls through Helio"})]})]});const m=e.allowed_total??"—",v=e.blocked_total??"—",b=e.by_block_reason===void 0,S=(e.by_block_reason??[]).map(w=>({tool_name:zg(w.reason),count:w.count})),O=e.top_tools.map(w=>({tool_name:w.upstream?`${w.tool_name} (${w.upstream})`:w.tool_name,count:w.count})),_=e.approval_rate!=null?`${String(Math.round(e.approval_rate*100))}%`:"—";return x.jsxs("div",{className:"flex h-full flex-col gap-6 overflow-y-auto",children:[x.jsxs("div",{children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Analytics"}),x.jsx("p",{className:"mt-1 text-sm text-gray-500",children:"Tool call volume and decision breakdown"})]}),x.jsx(A2,{activePreset:s,onPresetChange:h}),x.jsx("section",{children:x.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[x.jsx(cf,{label:"Total Actions",value:e.total}),x.jsx(cf,{label:"Allowed",value:m,color:"emerald"}),x.jsx(cf,{label:"Blocked",value:v,color:"red"}),x.jsx(cf,{label:"Approval Rate",value:_,color:"amber"})]})}),x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Actions Per Hour"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:x.jsx(NQ,{data:e.per_hour})})]}),x.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Matched Actions"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:e.by_decision.length>0?x.jsx(MQ,{data:e.by_decision}):x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"No decision data"})})]}),x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Top Tools"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:O.length>0?x.jsx(j2,{data:O}):x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"No tool data"})})]})]}),x.jsxs("section",{children:[x.jsx("h2",{className:"mb-3 text-sm font-medium text-gray-500",children:"Blocked by Reason"}),x.jsx("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:b?x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"Requires a newer proxy version"}):S.length>0?x.jsx(j2,{data:S}):x.jsx("p",{className:"py-8 text-center text-sm text-gray-400",children:"No blocked actions"})})]})]})}function A2({activePreset:e,onPresetChange:t}){return x.jsx("div",{className:"flex gap-1.5",children:oC.map(n=>x.jsx("button",{type:"button",onClick:()=>{t(n.ms)},className:`rounded-md px-3 py-1.5 text-sm transition-colors ${e===n.ms?"bg-gray-900 text-white":"border border-gray-200 bg-white text-gray-600 hover:bg-gray-50"}`,children:n.label},n.label))})}const kQ={emerald:"text-emerald-700",red:"text-red-700",amber:"text-amber-700"};function cf({label:e,value:t,color:n}){const r=(n&&kQ[n])??"text-gray-900";return x.jsxs("div",{className:"rounded-md border border-gray-200 bg-white p-4",children:[x.jsx("p",{className:"text-sm font-medium text-gray-500",children:e}),x.jsx("p",{className:`mt-1 text-2xl font-semibold tabular-nums ${r}`,children:typeof t=="number"?t.toLocaleString():t})]})}function LQ(){const[e,t]=y.useState("booting"),[n,r]=y.useState(!1),[l,u]=y.useState(""),[s,f]=y.useState(null),d=y.useCallback(()=>{Si(void 0),t("locked"),f("Session expired. Enter the dashboard secret again.")},[]),h=y.useCallback(async()=>{t("booting");try{const b=await J2();if(r(b.auth_required),!b.auth_required||b.authenticated){Si(b.csrf_token),f(null),t("ready");return}Si(void 0),t("locked"),f(null)}catch{Si(void 0),t("locked"),f("Unable to check session state. Verify the proxy is running and try again.")}},[]);y.useEffect(()=>{h()},[h]),y.useEffect(()=>(oO(d),()=>{oO(void 0)}),[d]);async function m(b){if(b.preventDefault(),!l.trim()){f("Enter the dashboard secret.");return}t("authenticating"),f(null);try{const S=await e4(l.trim());r(S.auth_required),Si(S.csrf_token),u(""),t("ready")}catch(S){Si(void 0),t("locked"),S instanceof Q2&&S.status===401?f("Invalid dashboard secret. Enter the secret itself, not the sha256: digest stored in your Helio config."):f("Sign in failed due to a network or server error. Try again.")}}async function v(){try{await t4()}catch{}Si(void 0),t("locked"),f("Signed out. Enter the dashboard secret to unlock.")}return e==="booting"?x.jsx("div",{className:"flex min-h-screen items-center justify-center bg-gray-50 px-4",children:x.jsxs("div",{className:"w-full max-w-md rounded-lg border border-gray-200 bg-white p-6 text-center shadow-sm",children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Helio Dashboard"}),x.jsx("p",{className:"mt-2 text-sm text-gray-600",children:"Checking session status..."})]})}):e==="locked"||e==="authenticating"?x.jsx("div",{className:"flex min-h-screen items-center justify-center bg-gray-50 px-4",children:x.jsxs("form",{onSubmit:b=>{m(b)},className:"w-full max-w-md rounded-lg border border-gray-200 bg-white p-6 shadow-sm",children:[x.jsx("h1",{className:"text-lg font-semibold text-gray-900",children:"Dashboard Locked"}),x.jsxs("p",{className:"mt-2 text-sm text-gray-600",children:["Enter your dashboard secret, the value ",x.jsx("code",{children:"helio init"})," printed. If"," ",x.jsx("code",{children:"dashboard.api_secret"})," in your Helio config is a ",x.jsx("code",{children:"sha256:"})," digest or an env placeholder (for example ",x.jsx("code",{children:"${HELIO_DASHBOARD_SECRET}"}),"), enter the secret behind it, not the config value."]}),x.jsx("label",{htmlFor:"dashboard-secret",className:"mt-4 block text-sm font-medium text-gray-700",children:"Dashboard secret"}),x.jsx("input",{id:"dashboard-secret",type:"password",autoComplete:"current-password",value:l,onChange:b=>{u(b.target.value)},disabled:e==="authenticating",className:"mt-1 w-full rounded-md border border-gray-300 px-3 py-2 text-sm text-gray-900 shadow-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:cursor-not-allowed disabled:bg-gray-100"}),s&&x.jsx("p",{className:"mt-3 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800",children:s}),x.jsx("button",{type:"submit",disabled:e==="authenticating",className:"mt-4 inline-flex w-full items-center justify-center rounded-md bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-500 disabled:cursor-not-allowed disabled:bg-blue-300",children:e==="authenticating"?"Unlocking...":"Unlock Dashboard"})]})}):x.jsx(Kk,{children:x.jsx(f4,{children:x.jsx(c4,{onSessionExpired:d,children:x.jsx(xk,{children:x.jsxs(Ua,{element:x.jsx(y4,{onLogout:n?()=>void v():void 0}),children:[x.jsx(Ua,{index:!0,element:x.jsx(z4,{})}),x.jsx(Ua,{path:"approvals",element:x.jsx(Y4,{})}),x.jsx(Ua,{path:"audit",element:x.jsx(fL,{})}),x.jsx(Ua,{path:"limits",element:x.jsx(vL,{})}),x.jsx(Ua,{path:"budgets",element:x.jsx(SL,{})}),x.jsx(Ua,{path:"analytics",element:x.jsx(RQ,{})})]})})})})})}const kM=document.getElementById("root");if(!kM)throw new Error("Dashboard mount point #root not found in index.html");yR.createRoot(kM).render(x.jsx(y.StrictMode,{children:x.jsx(LQ,{})}));
@@ -6,7 +6,7 @@
6
6
  <meta name="referrer" content="no-referrer" />
7
7
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
8
8
  <title>Helio Dashboard</title>
9
- <script type="module" crossorigin src="/assets/index-BUdEZ-VN.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-BRvkMXWl.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="/assets/index-DtnT1Y9r.css">
11
11
  </head>
12
12
  <body>
package/dist/index.js CHANGED
@@ -564,7 +564,7 @@ function rootConfigChecks(cfg, ctx) {
564
564
  ctx.addIssue({
565
565
  code: "custom",
566
566
  path: ["dashboard", "api_secret"],
567
- message: 'dashboard.api_secret is required when any rule uses require_approval, any budget uses on_exceed: require_approval, or policies.flag_destructive or policies.on_tool_drift is "require_approval". Generate one with: `openssl rand -hex 32` and set it under `dashboard.api_secret` in your helio.yaml. (See docs/approvals.md.)'
567
+ message: 'dashboard.api_secret is required when any rule uses require_approval, any budget uses on_exceed: require_approval, or policies.flag_destructive or policies.on_tool_drift is "require_approval". Run `helio secret` and set the printed digest under `dashboard.api_secret` in your helio.yaml (a plaintext value is accepted but warned about at startup). (See docs/approvals.md.)'
568
568
  });
569
569
  }
570
570
  }
@@ -572,7 +572,7 @@ function rootConfigChecks(cfg, ctx) {
572
572
  ctx.addIssue({
573
573
  code: "custom",
574
574
  path: ["dashboard", "api_secret"],
575
- message: "dashboard.api_secret is required when dashboard.enabled is true unless dashboard.allow_open_mode is explicitly set to true. Generate one with `openssl rand -hex 32` and set it under dashboard.api_secret in helio.yaml."
575
+ message: "dashboard.api_secret is required when dashboard.enabled is true unless dashboard.allow_open_mode is explicitly set to true. Run `helio secret` and set the printed digest under dashboard.api_secret in helio.yaml."
576
576
  });
577
577
  }
578
578
  if (!requiresSecret && cfg.dashboard.enabled && !hasSecret && cfg.dashboard.allow_open_mode && !isLoopbackHost(cfg.dashboard.host)) {
@@ -938,6 +938,7 @@ function isNamedConfig(config) {
938
938
 
939
939
  // src/config/loader.ts
940
940
  import { readFile } from "fs/promises";
941
+ import { createHash } from "crypto";
941
942
  import yaml from "js-yaml";
942
943
 
943
944
  // src/util/format-zod-errors.ts
@@ -957,36 +958,42 @@ var ConfigError = class extends Error {
957
958
  }
958
959
  };
959
960
  var ENV_VAR_PATTERN = /\$\{([A-Za-z_][A-Za-z0-9_]*)\}/g;
960
- function interpolateEnvVars(value, env = process.env) {
961
+ function interpolateTracked(value, env, path, out) {
961
962
  if (typeof value === "string") {
962
- return value.replace(ENV_VAR_PATTERN, (_match, varName) => {
963
+ let substitutions = 0;
964
+ const result = value.replace(ENV_VAR_PATTERN, (_match, varName) => {
963
965
  const envValue = env[varName];
964
966
  if (envValue === void 0) {
965
967
  throw new ConfigError(`Environment variable "${varName}" is not set`);
966
968
  }
969
+ substitutions += 1;
967
970
  return envValue;
968
971
  });
972
+ if (substitutions > 0 && out !== void 0) out.push(path.join("."));
973
+ return result;
969
974
  }
970
975
  if (Array.isArray(value)) {
971
- return value.map((item) => interpolateEnvVars(item, env));
976
+ return value.map((item, index) => interpolateTracked(item, env, [...path, String(index)], out));
972
977
  }
973
978
  if (value !== null && typeof value === "object") {
974
979
  return Object.fromEntries(
975
980
  Object.entries(value).map(([k, v]) => [
976
981
  k,
977
- interpolateEnvVars(v, env)
982
+ interpolateTracked(v, env, [...path, k], out)
978
983
  ])
979
984
  );
980
985
  }
981
986
  return value;
982
987
  }
983
- async function loadConfig(filePath, env) {
984
- let raw;
988
+ async function loadConfigWithMeta(filePath, env) {
989
+ let bytes;
985
990
  try {
986
- raw = await readFile(filePath, "utf-8");
991
+ bytes = await readFile(filePath);
987
992
  } catch {
988
993
  throw new ConfigError(`Cannot read config file: ${filePath}`);
989
994
  }
995
+ const sha256 = createHash("sha256").update(bytes).digest("hex");
996
+ const raw = bytes.toString("utf-8");
990
997
  let parsed;
991
998
  try {
992
999
  parsed = yaml.load(raw);
@@ -994,7 +1001,8 @@ async function loadConfig(filePath, env) {
994
1001
  const message = err instanceof Error ? err.message : String(err);
995
1002
  throw new ConfigError(`YAML parse error in ${filePath}: ${message}`);
996
1003
  }
997
- const interpolated = interpolateEnvVars(parsed, env);
1004
+ const interpolatedPaths = [];
1005
+ const interpolated = interpolateTracked(parsed, env ?? process.env, [], interpolatedPaths);
998
1006
  const result = helioConfigSchema.safeParse(interpolated);
999
1007
  if (!result.success) {
1000
1008
  const details = formatZodErrors(result.error).map(
@@ -1006,7 +1014,10 @@ async function loadConfig(filePath, env) {
1006
1014
  details
1007
1015
  );
1008
1016
  }
1009
- return result.data;
1017
+ return { config: result.data, sha256, interpolatedPaths };
1018
+ }
1019
+ async function loadConfig(filePath, env) {
1020
+ return (await loadConfigWithMeta(filePath, env)).config;
1010
1021
  }
1011
1022
 
1012
1023
  // src/config/watcher.ts
@@ -8207,19 +8218,23 @@ import { HTTPException } from "hono/http-exception";
8207
8218
  import { z as z5 } from "zod";
8208
8219
 
8209
8220
  // src/auth/bearer.ts
8210
- import { createHash, timingSafeEqual } from "crypto";
8221
+ import { createHash as createHash2, timingSafeEqual } from "crypto";
8222
+ var BEARER_PREFIX = "Bearer ";
8223
+ var DIGEST_PATTERN = /^sha256:([0-9a-f]{64})$/;
8211
8224
  function verifyBearer(authHeader, expected) {
8212
8225
  if (!authHeader || !expected) return false;
8213
- const expectedHeader = `Bearer ${expected}`;
8214
- const actualDigest = createHash("sha256").update(authHeader).digest();
8215
- const expectedDigest = createHash("sha256").update(expectedHeader).digest();
8226
+ if (!authHeader.startsWith(BEARER_PREFIX)) return false;
8227
+ const presented = authHeader.slice(BEARER_PREFIX.length);
8228
+ const storedHex = DIGEST_PATTERN.exec(expected)?.[1];
8229
+ const expectedDigest = storedHex !== void 0 ? Buffer.from(storedHex, "hex") : createHash2("sha256").update(expected, "utf-8").digest();
8230
+ const actualDigest = createHash2("sha256").update(presented, "utf-8").digest();
8216
8231
  return timingSafeEqual(actualDigest, expectedDigest);
8217
8232
  }
8218
8233
 
8219
8234
  // src/sideband/governance-api.ts
8220
8235
  import { Hono as Hono4 } from "hono";
8221
8236
  import { z as z4 } from "zod";
8222
- import { createHash as createHash2 } from "crypto";
8237
+ import { createHash as createHash3 } from "crypto";
8223
8238
  var originSchema = z4.string().regex(/^[a-z0-9_-]{1,64}$/, "origin must match ^[a-z0-9_-]{1,64}$").default("sideband");
8224
8239
  var metadataSchema = z4.record(z4.string(), z4.unknown()).nullish();
8225
8240
  var toolDefinitionSchema = z4.object({
@@ -8376,7 +8391,7 @@ function auditPayloadHash(data) {
8376
8391
  actual_amount: data.actual_amount ?? null,
8377
8392
  evidence: canonicalEvidence(data.evidence)
8378
8393
  };
8379
- return createHash2("sha256").update(canonicalize(semantic)).digest("hex");
8394
+ return createHash3("sha256").update(canonicalize(semantic)).digest("hex");
8380
8395
  }
8381
8396
  function canonicalEvidence(evidence) {
8382
8397
  if (!evidence || evidence.length === 0) return null;
@@ -11000,7 +11015,7 @@ function createApprovalApp(router, queue, options) {
11000
11015
  // src/dashboard/api.ts
11001
11016
  import { readFileSync } from "fs";
11002
11017
  import { join } from "path";
11003
- import { randomUUID as randomUUID8 } from "crypto";
11018
+ import { randomBytes as randomBytes2, randomUUID as randomUUID8 } from "crypto";
11004
11019
  import { Hono as Hono8 } from "hono";
11005
11020
  import { HTTPException as HTTPException2 } from "hono/http-exception";
11006
11021
  import { z as z8 } from "zod";
@@ -11009,16 +11024,16 @@ import { serveStatic } from "@hono/node-server/serve-static";
11009
11024
  import { streamSSE } from "hono/streaming";
11010
11025
 
11011
11026
  // src/dashboard/session.ts
11012
- import { createHash as createHash3, createHmac as createHmac3, randomBytes, timingSafeEqual as timingSafeEqual3 } from "crypto";
11027
+ import { createHash as createHash4, createHmac as createHmac3, randomBytes, timingSafeEqual as timingSafeEqual3 } from "crypto";
11013
11028
  var DashboardSessionStore = class {
11014
- secret;
11029
+ signingKey;
11015
11030
  ttlMs;
11016
11031
  now;
11017
11032
  records = /* @__PURE__ */ new Map();
11018
11033
  timer = null;
11019
11034
  closed = false;
11020
11035
  constructor(options) {
11021
- this.secret = options.secret;
11036
+ this.signingKey = options.signingKey;
11022
11037
  this.ttlMs = options.ttlMs ?? 8 * 60 * 60 * 1e3;
11023
11038
  this.now = options.now ?? Date.now;
11024
11039
  const cleanupIntervalMs = options.cleanupIntervalMs ?? 6e4;
@@ -11090,13 +11105,13 @@ var DashboardSessionStore = class {
11090
11105
  const id = token.slice(0, dot);
11091
11106
  const signature = token.slice(dot + 1);
11092
11107
  const expected = this.sign(id);
11093
- const actualDigest = createHash3("sha256").update(signature).digest();
11094
- const expectedDigest = createHash3("sha256").update(expected).digest();
11108
+ const actualDigest = createHash4("sha256").update(signature).digest();
11109
+ const expectedDigest = createHash4("sha256").update(expected).digest();
11095
11110
  if (!timingSafeEqual3(actualDigest, expectedDigest)) return void 0;
11096
11111
  return id;
11097
11112
  }
11098
11113
  sign(id) {
11099
- return createHmac3("sha256", this.secret).update(id).digest("base64url");
11114
+ return createHmac3("sha256", this.signingKey).update(id).digest("base64url");
11100
11115
  }
11101
11116
  };
11102
11117
 
@@ -11258,7 +11273,10 @@ function createDashboardAppWithLifecycle(deps, options) {
11258
11273
  budgets
11259
11274
  } = deps;
11260
11275
  const apiSecret = options?.apiSecret;
11261
- const sessionStore = apiSecret ? new DashboardSessionStore({ secret: apiSecret, ttlMs: SESSION_TTL_MS }) : void 0;
11276
+ const sessionStore = apiSecret ? new DashboardSessionStore({
11277
+ signingKey: randomBytes2(32).toString("hex"),
11278
+ ttlMs: SESSION_TTL_MS
11279
+ }) : void 0;
11262
11280
  const app = new Hono8();
11263
11281
  app.onError((err, c) => {
11264
11282
  if (err instanceof HTTPException2) return err.getResponse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gethelio/proxy",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "type": "module",
5
5
  "description": "Open-source MCP governance proxy for AI agents",
6
6
  "license": "Apache-2.0",
@@ -41,7 +41,7 @@
41
41
  "build": "pnpm run build:dashboard && pnpm run build:proxy && pnpm run bundle:dashboard-assets && pnpm run check:dashboard-assets",
42
42
  "test": "vitest run",
43
43
  "test:watch": "vitest",
44
- "typecheck": "tsc --noEmit",
44
+ "typecheck": "tsc --noEmit && tsc -p scripts/tsconfig.json",
45
45
  "benchmark": "tsx scripts/benchmark.ts",
46
46
  "prepack": "pnpm run check:dashboard-assets"
47
47
  },