@beechcms/api 0.6.0-preview.2 → 0.6.0-preview.3

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.
Files changed (375) hide show
  1. package/README.md +4 -4
  2. package/assets/dashboard/assets/chart-Cws4Yj6K.js +39 -0
  3. package/assets/dashboard/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  4. package/assets/dashboard/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  5. package/assets/dashboard/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  6. package/assets/dashboard/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  7. package/assets/dashboard/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  8. package/assets/dashboard/assets/index-BjPpppHe.css +1 -0
  9. package/assets/dashboard/assets/index-CrW-zhkA.js +642 -0
  10. package/assets/dashboard/assets/lora-cyrillic-ext-wght-normal-YcVxMP-u.woff2 +0 -0
  11. package/assets/dashboard/assets/lora-cyrillic-wght-normal-UWPuZLjM.woff2 +0 -0
  12. package/assets/dashboard/assets/lora-latin-ext-wght-normal-C2Wlntb9.woff2 +0 -0
  13. package/assets/dashboard/assets/lora-latin-wght-normal-BiLcIKcI.woff2 +0 -0
  14. package/assets/dashboard/assets/lora-math-wght-normal-sOy7rEfW.woff2 +0 -0
  15. package/assets/dashboard/assets/lora-symbols-wght-normal-DQ5VrUkH.woff2 +0 -0
  16. package/assets/dashboard/assets/lora-vietnamese-wght-normal-CfJ7gtf3.woff2 +0 -0
  17. package/assets/dashboard/assets/pie-chart-recharts-CAxoDQp2.js +1 -0
  18. package/assets/dashboard/assets/timeseries-chart-recharts-CixDW-LM.js +1 -0
  19. package/assets/dashboard/index.html +2 -2
  20. package/dist/auth/__fixtures__/in-memory-hash-provider.d.ts +5 -0
  21. package/dist/auth/__fixtures__/static-token-service.d.ts +6 -0
  22. package/dist/auth/bcrypt-hash-provider.d.ts +8 -0
  23. package/dist/auth/constants.d.ts +10 -0
  24. package/dist/auth/jose-token-service.d.ts +14 -0
  25. package/dist/auth/login.d.ts +32 -0
  26. package/dist/auth/refresh.d.ts +1 -0
  27. package/dist/factory.d.ts +39 -0
  28. package/dist/features/automations/action-executors/create-entry.executor.d.ts +7 -0
  29. package/dist/features/automations/action-executors/edit-field.executor.d.ts +7 -0
  30. package/dist/features/automations/action-executors/index.d.ts +13 -0
  31. package/dist/features/automations/action-executors/send-mail.executor.d.ts +7 -0
  32. package/dist/features/automations/action-executors/set-variable.executor.d.ts +15 -0
  33. package/dist/features/automations/action-executors/webhook.executor.d.ts +7 -0
  34. package/dist/features/automations/automation-runner.d.ts +13 -0
  35. package/dist/features/automations/automation-runner.utils.d.ts +3 -0
  36. package/dist/features/automations/automations.handler.d.ts +7 -0
  37. package/dist/features/automations/automations.schema.d.ts +191 -0
  38. package/dist/features/automations/context-resolver.d.ts +8 -0
  39. package/dist/features/automations/cron-runner.d.ts +9 -0
  40. package/dist/features/automations/cron-runner.utils.d.ts +1 -0
  41. package/dist/features/automations/filter-translation.d.ts +9 -0
  42. package/dist/features/automations/index.d.ts +7 -0
  43. package/dist/features/automations/template-grammar.d.ts +73 -0
  44. package/dist/features/automations/var-access-resolver.d.ts +6 -0
  45. package/dist/features/automations/when-evaluator.d.ts +3 -0
  46. package/dist/features/automations/when-pushdown.d.ts +2 -0
  47. package/dist/features/backrefs/backrefs.handler.d.ts +3 -0
  48. package/dist/features/backrefs/d1-backref.repository.d.ts +17 -0
  49. package/dist/features/backrefs/index.d.ts +1 -0
  50. package/dist/features/content/constants.d.ts +12 -0
  51. package/dist/features/content/handlers/bulk.handler.d.ts +3 -0
  52. package/dist/features/content/handlers/create.d.ts +3 -0
  53. package/dist/features/content/handlers/delete.d.ts +3 -0
  54. package/dist/features/content/handlers/facets.d.ts +3 -0
  55. package/dist/features/content/handlers/get.d.ts +4 -0
  56. package/dist/features/content/handlers/helpers.d.ts +12 -0
  57. package/dist/features/content/handlers/list.d.ts +3 -0
  58. package/dist/features/content/handlers/update.d.ts +3 -0
  59. package/dist/features/content/index.d.ts +4 -0
  60. package/dist/features/dashboard-layout/dashboard-layout.handler.d.ts +7 -0
  61. package/dist/features/dashboard-layout/index.d.ts +1 -0
  62. package/dist/features/draft/draft.handler.d.ts +4 -0
  63. package/dist/features/draft/draft.middleware.d.ts +9 -0
  64. package/dist/features/draft/index.d.ts +1 -0
  65. package/{src/features/email/email.provider.ts → dist/features/email/email.provider.d.ts} +19 -24
  66. package/dist/features/email/email.service.d.ts +13 -0
  67. package/dist/features/email/email.types.d.ts +94 -0
  68. package/{src/features/email/index.ts → dist/features/email/index.d.ts} +3 -16
  69. package/dist/features/email/providers/resend.d.ts +36 -0
  70. package/dist/features/email/providers/smtp.d.ts +11 -0
  71. package/dist/features/email/templates/automation-mail.d.ts +8 -0
  72. package/dist/features/email/templates/password-changed.d.ts +15 -0
  73. package/dist/features/email/templates/password-reset.d.ts +18 -0
  74. package/dist/features/email/templates/shell.d.ts +58 -0
  75. package/dist/features/notifications/index.d.ts +1 -0
  76. package/dist/features/notifications/notifications.handler.d.ts +15 -0
  77. package/dist/features/password-reset/index.d.ts +6 -0
  78. package/dist/features/password-reset/request.d.ts +10 -0
  79. package/dist/features/password-reset/reset.d.ts +9 -0
  80. package/dist/features/rotate-field/index.d.ts +1 -0
  81. package/dist/features/rotate-field/rotate-field.handler.d.ts +7 -0
  82. package/dist/features/rotate-field/rotate-field.schema.d.ts +11 -0
  83. package/dist/features/schema/schema.handler.d.ts +7 -0
  84. package/dist/features/seeds/index.d.ts +1 -0
  85. package/dist/features/seeds/seeds.handler.d.ts +6 -0
  86. package/dist/features/settings/settings.handler.d.ts +7 -0
  87. package/dist/features/setup/index.d.ts +7 -0
  88. package/dist/features/stats/index.d.ts +1 -0
  89. package/dist/features/stats/stats.handler.d.ts +7 -0
  90. package/dist/features/webhooks/index.d.ts +3 -0
  91. package/dist/index.d.ts +6 -0
  92. package/dist/index.js +9666 -0
  93. package/dist/media-utils.d.ts +25 -0
  94. package/dist/middleware/auth-providers.middleware.d.ts +8 -0
  95. package/dist/middleware/observability.middleware.d.ts +20 -0
  96. package/dist/middleware/rate-limit.middleware.d.ts +9 -0
  97. package/dist/middleware/repository.middleware.d.ts +34 -0
  98. package/dist/middleware/seed-registry.middleware.d.ts +10 -0
  99. package/dist/middleware/storage.middleware.d.ts +7 -0
  100. package/dist/middleware.d.ts +11 -0
  101. package/dist/public/access-policy.d.ts +12 -0
  102. package/dist/public/api-key-middleware.d.ts +6 -0
  103. package/dist/public/cache-utils.d.ts +10 -0
  104. package/dist/public/entry-projection.d.ts +2 -0
  105. package/dist/public/idempotency.d.ts +9 -0
  106. package/dist/public/index.d.ts +11 -0
  107. package/dist/public/problem-details.d.ts +31 -0
  108. package/dist/public/public-add.d.ts +3 -0
  109. package/dist/public/public-edit.d.ts +5 -0
  110. package/dist/public/public-errors.d.ts +13 -0
  111. package/dist/public/public-read.d.ts +3 -0
  112. package/dist/public/public-routes.d.ts +3 -0
  113. package/dist/public/query-builder.d.ts +28 -0
  114. package/dist/public/rate-limit-middleware.d.ts +3 -0
  115. package/dist/public/read-list.d.ts +26 -0
  116. package/dist/public/read-single.d.ts +22 -0
  117. package/dist/public/response-builder.d.ts +22 -0
  118. package/dist/public/sanitize.d.ts +23 -0
  119. package/{src/public/slug-utils.ts → dist/public/slug-utils.d.ts} +3 -10
  120. package/dist/rate-limit/cloudflare-rate-limiter.d.ts +6 -0
  121. package/dist/rate-limit/in-memory-rate-limiter.d.ts +7 -0
  122. package/dist/rate-limit/no-op-rate-limiter.d.ts +4 -0
  123. package/dist/search-utils.d.ts +54 -0
  124. package/dist/search.d.ts +6 -0
  125. package/dist/shared/apply-policies.d.ts +10 -0
  126. package/dist/shared/automations.repository.d1.d.ts +12 -0
  127. package/dist/shared/background-notification-service.d.ts +18 -0
  128. package/dist/shared/base.repository.d1.d.ts +18 -0
  129. package/dist/shared/content-utils.d.ts +21 -0
  130. package/dist/shared/content.repository.d1.d.ts +68 -0
  131. package/dist/shared/d1-activity-log.repository.d.ts +13 -0
  132. package/dist/shared/d1-activity-logger.d.ts +20 -0
  133. package/dist/shared/d1-analytics.repository.d.ts +20 -0
  134. package/dist/shared/d1-content-scan.repository.d.ts +7 -0
  135. package/dist/shared/d1-notification.repository.d.ts +17 -0
  136. package/dist/shared/d1-password-reset-token.repository.d.ts +10 -0
  137. package/dist/shared/d1-search.repository.d.ts +14 -0
  138. package/dist/shared/d1-session.repository.d.ts +12 -0
  139. package/dist/shared/d1-setup-checklist.repository.d.ts +12 -0
  140. package/dist/shared/d1-user.repository.d.ts +18 -0
  141. package/dist/shared/d1-widget.repository.d.ts +31 -0
  142. package/dist/shared/dashboard-layout.repository.d1.d.ts +9 -0
  143. package/dist/shared/demo-data-sql.d.ts +1 -0
  144. package/dist/shared/demo-data.repository.d1.d.ts +6 -0
  145. package/dist/shared/execution-context-scheduler.d.ts +6 -0
  146. package/dist/shared/fixed-clock.d.ts +13 -0
  147. package/dist/shared/fts-sync.d.ts +1 -0
  148. package/dist/shared/idempotency.repository.d1.d.ts +16 -0
  149. package/dist/shared/in-memory-activity-logger.d.ts +11 -0
  150. package/dist/shared/in-memory-notification-service.d.ts +11 -0
  151. package/dist/shared/in-memory-seed.repository.d.ts +18 -0
  152. package/dist/shared/media.repository.d1.d.ts +35 -0
  153. package/dist/shared/qstash-notification-service.d.ts +18 -0
  154. package/dist/shared/query-utils.d.ts +36 -0
  155. package/dist/shared/request-utils.d.ts +13 -0
  156. package/dist/shared/schema-mutator.d1.d.ts +12 -0
  157. package/dist/shared/seed-layout.repository.d1.d.ts +9 -0
  158. package/dist/shared/seed-registry-cache.d.ts +12 -0
  159. package/dist/shared/seed.repository.d1.d.ts +13 -0
  160. package/dist/shared/sequential-id-generator.d.ts +13 -0
  161. package/dist/shared/site-settings.repository.d1.d.ts +7 -0
  162. package/dist/shared/storage/factory.d.ts +8 -0
  163. package/dist/shared/storage/s3-bucket.d.ts +43 -0
  164. package/dist/shared/storage-utils.d.ts +7 -0
  165. package/dist/shared/system-stats.repository.d1.d.ts +25 -0
  166. package/dist/types.d.ts +85 -0
  167. package/dist/upload.d.ts +16 -0
  168. package/dist/widget.d.ts +7 -0
  169. package/package.json +27 -18
  170. package/assets/dashboard/assets/chart-BrJFdsGZ.js +0 -39
  171. package/assets/dashboard/assets/index-CIaoMxuB.css +0 -1
  172. package/assets/dashboard/assets/index-wTKgygsg.js +0 -636
  173. package/assets/dashboard/assets/pie-chart-recharts-BEaE1FOE.js +0 -1
  174. package/assets/dashboard/assets/timeseries-chart-recharts-DmWM6imF.js +0 -1
  175. package/src/auth/__fixtures__/in-memory-hash-provider.ts +0 -17
  176. package/src/auth/__fixtures__/static-token-service.ts +0 -22
  177. package/src/auth/bcrypt-hash-provider.ts +0 -24
  178. package/src/auth/constants.ts +0 -14
  179. package/src/auth/generate-refresh-token.test.ts +0 -23
  180. package/src/auth/hash-provider.test.ts +0 -55
  181. package/src/auth/jose-token-service.ts +0 -62
  182. package/src/auth/jwt-claims-passthrough.test.ts +0 -87
  183. package/src/auth/login.test.ts +0 -100
  184. package/src/auth/login.ts +0 -78
  185. package/src/auth/refresh.ts +0 -11
  186. package/src/auth/token-service.test.ts +0 -90
  187. package/src/factory.ts +0 -370
  188. package/src/features/automations/__tests__/action-executors.test.ts +0 -255
  189. package/src/features/automations/__tests__/automation-runner.test.ts +0 -196
  190. package/src/features/automations/__tests__/automation-runner.utils.test.ts +0 -60
  191. package/src/features/automations/__tests__/automations.handler.test.ts +0 -264
  192. package/src/features/automations/__tests__/automations.repository.test.ts +0 -163
  193. package/src/features/automations/__tests__/automations.schema.test.ts +0 -224
  194. package/src/features/automations/__tests__/context-resolver.test.ts +0 -126
  195. package/src/features/automations/__tests__/cron-runner.test.ts +0 -267
  196. package/src/features/automations/__tests__/cron-runner.utils.test.ts +0 -144
  197. package/src/features/automations/__tests__/set-variable.executor.test.ts +0 -383
  198. package/src/features/automations/__tests__/template-grammar.test.ts +0 -308
  199. package/src/features/automations/__tests__/webhook.executor.test.ts +0 -142
  200. package/src/features/automations/__tests__/when-evaluator.test.ts +0 -274
  201. package/src/features/automations/__tests__/when-pushdown.test.ts +0 -281
  202. package/src/features/automations/action-executors/create-entry.executor.ts +0 -27
  203. package/src/features/automations/action-executors/edit-field.executor.ts +0 -26
  204. package/src/features/automations/action-executors/index.ts +0 -37
  205. package/src/features/automations/action-executors/send-mail.executor.ts +0 -53
  206. package/src/features/automations/action-executors/set-variable.executor.ts +0 -159
  207. package/src/features/automations/action-executors/webhook.executor.ts +0 -67
  208. package/src/features/automations/automation-runner.ts +0 -85
  209. package/src/features/automations/automation-runner.utils.ts +0 -47
  210. package/src/features/automations/automations.handler.ts +0 -197
  211. package/src/features/automations/automations.schema.ts +0 -177
  212. package/src/features/automations/context-resolver.ts +0 -152
  213. package/src/features/automations/cron-runner.ts +0 -140
  214. package/src/features/automations/cron-runner.utils.ts +0 -44
  215. package/src/features/automations/filter-translation.ts +0 -46
  216. package/src/features/automations/index.ts +0 -16
  217. package/src/features/automations/template-grammar.ts +0 -245
  218. package/src/features/automations/var-access-resolver.ts +0 -140
  219. package/src/features/automations/when-evaluator.ts +0 -87
  220. package/src/features/automations/when-pushdown.ts +0 -57
  221. package/src/features/backrefs/__tests__/backrefs.handler.test.ts +0 -359
  222. package/src/features/backrefs/backrefs.handler.ts +0 -168
  223. package/src/features/backrefs/d1-backref.repository.ts +0 -84
  224. package/src/features/backrefs/index.ts +0 -5
  225. package/src/features/content/constants.ts +0 -16
  226. package/src/features/content/handlers/bulk.handler.ts +0 -185
  227. package/src/features/content/handlers/create.ts +0 -129
  228. package/src/features/content/handlers/delete.ts +0 -62
  229. package/src/features/content/handlers/facets.ts +0 -49
  230. package/src/features/content/handlers/get.ts +0 -120
  231. package/src/features/content/handlers/helpers.test.ts +0 -180
  232. package/src/features/content/handlers/helpers.ts +0 -93
  233. package/src/features/content/handlers/list.ts +0 -174
  234. package/src/features/content/handlers/update.ts +0 -174
  235. package/src/features/content/index.ts +0 -26
  236. package/src/features/dashboard-layout/__tests__/dashboard-layout.handler.test.ts +0 -388
  237. package/src/features/dashboard-layout/dashboard-layout.handler.ts +0 -206
  238. package/src/features/dashboard-layout/index.ts +0 -5
  239. package/src/features/draft/draft.handler.ts +0 -195
  240. package/src/features/draft/draft.middleware.ts +0 -66
  241. package/src/features/draft/index.ts +0 -5
  242. package/src/features/email/email.service.ts +0 -98
  243. package/src/features/email/email.types.ts +0 -119
  244. package/src/features/email/providers/resend.ts +0 -67
  245. package/src/features/email/providers/smtp.ts +0 -55
  246. package/src/features/email/templates/automation-mail.ts +0 -19
  247. package/src/features/email/templates/password-changed.ts +0 -63
  248. package/src/features/email/templates/password-reset.ts +0 -68
  249. package/src/features/email/templates/shell.ts +0 -96
  250. package/src/features/notifications/index.ts +0 -5
  251. package/src/features/notifications/notifications.handler.ts +0 -105
  252. package/src/features/password-reset/index.ts +0 -19
  253. package/src/features/password-reset/request.ts +0 -92
  254. package/src/features/password-reset/reset.ts +0 -102
  255. package/src/features/rotate-field/index.ts +0 -5
  256. package/src/features/rotate-field/rotate-field.handler.ts +0 -132
  257. package/src/features/rotate-field/rotate-field.schema.ts +0 -17
  258. package/src/features/schema/schema.handler.ts +0 -131
  259. package/src/features/seeds/index.ts +0 -5
  260. package/src/features/seeds/seeds.handler.test.ts +0 -1199
  261. package/src/features/seeds/seeds.handler.ts +0 -558
  262. package/src/features/settings/__tests__/settings.handler.test.ts +0 -555
  263. package/src/features/settings/settings.handler.ts +0 -392
  264. package/src/features/setup/index.ts +0 -288
  265. package/src/features/stats/index.ts +0 -5
  266. package/src/features/stats/stats.handler.ts +0 -420
  267. package/src/features/webhooks/index.ts +0 -63
  268. package/src/index.ts +0 -65
  269. package/src/media-utils.ts +0 -82
  270. package/src/middleware/auth-providers.middleware.test.ts +0 -85
  271. package/src/middleware/auth-providers.middleware.ts +0 -45
  272. package/src/middleware/observability.middleware.test.ts +0 -93
  273. package/src/middleware/observability.middleware.ts +0 -70
  274. package/src/middleware/rate-limit.middleware.ts +0 -45
  275. package/src/middleware/repository.middleware.ts +0 -117
  276. package/src/middleware/seed-registry.middleware.test.ts +0 -97
  277. package/src/middleware/seed-registry.middleware.ts +0 -21
  278. package/src/middleware/storage.middleware.ts +0 -25
  279. package/src/middleware.ts +0 -45
  280. package/src/public/access-policy.ts +0 -27
  281. package/src/public/api-key-middleware.ts +0 -57
  282. package/src/public/cache-utils.ts +0 -38
  283. package/src/public/entry-projection.ts +0 -46
  284. package/src/public/idempotency.ts +0 -23
  285. package/src/public/index.ts +0 -16
  286. package/src/public/problem-details.ts +0 -124
  287. package/src/public/public-add.ts +0 -114
  288. package/src/public/public-edit.ts +0 -163
  289. package/src/public/public-errors.ts +0 -19
  290. package/src/public/public-read.ts +0 -63
  291. package/src/public/public-routes.ts +0 -88
  292. package/src/public/query-builder.test.ts +0 -224
  293. package/src/public/query-builder.ts +0 -156
  294. package/src/public/rate-limit-middleware.ts +0 -34
  295. package/src/public/read-list.ts +0 -54
  296. package/src/public/read-single.ts +0 -48
  297. package/src/public/response-builder.ts +0 -30
  298. package/src/public/sanitize.ts +0 -69
  299. package/src/rate-limit/cloudflare-rate-limiter.test.ts +0 -30
  300. package/src/rate-limit/cloudflare-rate-limiter.ts +0 -15
  301. package/src/rate-limit/in-memory-rate-limiter.test.ts +0 -37
  302. package/src/rate-limit/in-memory-rate-limiter.ts +0 -17
  303. package/src/rate-limit/no-op-rate-limiter.test.ts +0 -22
  304. package/src/rate-limit/no-op-rate-limiter.ts +0 -11
  305. package/src/search-utils.test.ts +0 -211
  306. package/src/search-utils.ts +0 -213
  307. package/src/search.ts +0 -65
  308. package/src/shared/apply-policies.test.ts +0 -81
  309. package/src/shared/apply-policies.ts +0 -67
  310. package/src/shared/automations.repository.d1.ts +0 -150
  311. package/src/shared/background-notification-service.test.ts +0 -62
  312. package/src/shared/background-notification-service.ts +0 -52
  313. package/src/shared/base.repository.d1.ts +0 -32
  314. package/src/shared/content-utils.test.ts +0 -165
  315. package/src/shared/content-utils.ts +0 -86
  316. package/src/shared/content.repository.d1.test.ts +0 -507
  317. package/src/shared/content.repository.d1.ts +0 -851
  318. package/src/shared/d1-activity-log.repository.test.ts +0 -140
  319. package/src/shared/d1-activity-log.repository.ts +0 -105
  320. package/src/shared/d1-activity-logger.test.ts +0 -86
  321. package/src/shared/d1-activity-logger.ts +0 -67
  322. package/src/shared/d1-analytics.repository.test.ts +0 -78
  323. package/src/shared/d1-analytics.repository.ts +0 -85
  324. package/src/shared/d1-content-scan.repository.test.ts +0 -80
  325. package/src/shared/d1-content-scan.repository.ts +0 -37
  326. package/src/shared/d1-notification.repository.test.ts +0 -128
  327. package/src/shared/d1-notification.repository.ts +0 -118
  328. package/src/shared/d1-password-reset-token.repository.test.ts +0 -81
  329. package/src/shared/d1-password-reset-token.repository.ts +0 -56
  330. package/src/shared/d1-search.repository.test.ts +0 -87
  331. package/src/shared/d1-search.repository.ts +0 -88
  332. package/src/shared/d1-session.repository.test.ts +0 -125
  333. package/src/shared/d1-session.repository.ts +0 -102
  334. package/src/shared/d1-setup-checklist.repository.ts +0 -36
  335. package/src/shared/d1-user.repository.test.ts +0 -151
  336. package/src/shared/d1-user.repository.ts +0 -119
  337. package/src/shared/d1-widget.repository.test.ts +0 -267
  338. package/src/shared/d1-widget.repository.ts +0 -385
  339. package/src/shared/dashboard-layout.repository.d1.test.ts +0 -135
  340. package/src/shared/dashboard-layout.repository.d1.ts +0 -58
  341. package/src/shared/demo-data-sql.ts +0 -216
  342. package/src/shared/demo-data.repository.d1.ts +0 -20
  343. package/src/shared/execution-context-scheduler.ts +0 -13
  344. package/src/shared/fixed-clock.ts +0 -25
  345. package/src/shared/fts-sync.ts +0 -8
  346. package/src/shared/idempotency.repository.d1.test.ts +0 -83
  347. package/src/shared/idempotency.repository.d1.ts +0 -60
  348. package/src/shared/in-memory-activity-logger.ts +0 -19
  349. package/src/shared/in-memory-notification-service.ts +0 -19
  350. package/src/shared/in-memory-seed.repository.ts +0 -58
  351. package/src/shared/media.repository.d1.test.ts +0 -107
  352. package/src/shared/media.repository.d1.ts +0 -68
  353. package/src/shared/qstash-notification-service.test.ts +0 -67
  354. package/src/shared/qstash-notification-service.ts +0 -55
  355. package/src/shared/query-utils.ts +0 -141
  356. package/src/shared/request-utils.ts +0 -26
  357. package/src/shared/schema-mutator.d1.test.ts +0 -142
  358. package/src/shared/schema-mutator.d1.ts +0 -64
  359. package/src/shared/seed-layout.repository.d1.test.ts +0 -114
  360. package/src/shared/seed-layout.repository.d1.ts +0 -62
  361. package/src/shared/seed-registry-cache.test.ts +0 -68
  362. package/src/shared/seed-registry-cache.ts +0 -49
  363. package/src/shared/seed.repository.d1.test.ts +0 -143
  364. package/src/shared/seed.repository.d1.ts +0 -98
  365. package/src/shared/sequential-id-generator.ts +0 -33
  366. package/src/shared/site-settings.repository.d1.ts +0 -53
  367. package/src/shared/storage/factory.ts +0 -41
  368. package/src/shared/storage/s3-bucket.ts +0 -195
  369. package/src/shared/storage-utils.ts +0 -40
  370. package/src/shared/system-stats.repository.d1.test.ts +0 -58
  371. package/src/shared/system-stats.repository.d1.ts +0 -48
  372. package/src/types.ts +0 -90
  373. package/src/upload.ts +0 -198
  374. package/src/widget.test.ts +0 -85
  375. package/src/widget.ts +0 -251
@@ -1 +0,0 @@
1
- import{r as l,c as J,j as _}from"./index-wTKgygsg.js";import{S as g,aY as B,aZ as Se,a_ as we,a$ as L,b0 as Te,b1 as Re,b2 as pe,b3 as Ce,b4 as ke,a7 as w,b5 as Le,b6 as _e,b7 as Ne,b8 as Ke,U as fe,b9 as Me,ba as $e,bb as We,bc as Be,bd as me,be as Fe,bf as Ge,bg as Ve,a4 as be,ap as ze,r as Q,D as ge,s as ye,a1 as Ue,bh as Ze,aw as he,ax as Y,u as $,bi as Xe,L as N,Z as Pe,a5 as qe,a9 as He,aa as Je,p as Qe,ab as te,i as re,n as z,bj as Ye,d as ea,aE as aa,bk as ta,aB as ra,aC as na,aD as ia,bl as la,bm as oa,t as sa,af as ca,ac as ua,bn as da,j as W,bo as q,g as ne,ao as va,v as pa,T as fa,w as ma,bp as ba,aN as ga,aO as ya,aP as ha,aQ as Pa,aR as Aa,aS as Oa,aT as Ea,aU as ja,aV as xa,aW as Ia,aX as Da}from"./chart-BrJFdsGZ.js";var Ae=e=>e.graphicalItems.polarItems,Sa=g([B,Se],we),U=g([Ae,L,Sa],Te),wa=g([U],Re),Z=g([wa,pe],Ce),Ta=g([Z,L,U],ke);g([Z,L,U],(e,a,t)=>t.length>0?e.flatMap(r=>t.flatMap(n=>{var i,s=w(r,(i=a.dataKey)!==null&&i!==void 0?i:n.dataKey);return{value:s,errorDomain:[]}})).filter(Boolean):a?.dataKey!=null?e.map(r=>({value:w(r,a.dataKey),errorDomain:[]})):e.map(r=>({value:r,errorDomain:[]})));var ie=()=>{},Ra=g([Z,L,U,Le,B],_e),Ca=g([L,Ne,Ke,ie,Ra,ie,fe,B],Me),Oe=g([L,fe,Z,Ta,$e,B,Ca],We),ka=g([Oe,Be,me],Fe),La=g([L,Oe,ka,B],Ge);g([me,La],Ve);function le(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function oe(e){for(var a=1;a<arguments.length;a++){var t=arguments[a]!=null?arguments[a]:{};a%2?le(Object(t),!0).forEach(function(r){_a(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):le(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _a(e,a,t){return(a=Na(a))in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function Na(e){var a=Ka(e,"string");return typeof a=="symbol"?a:a+""}function Ka(e,a){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var r=t.call(e,a);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(e)}var Ma=(e,a)=>a,ee=g([Ae,Ma],(e,a)=>e.filter(t=>t.type==="pie").find(t=>t.id===a)),$a=[],ae=(e,a,t)=>t?.length===0?$a:t,Ee=g([pe,ee,ae],(e,a,t)=>{var{chartData:r}=e;if(a!=null){var n;if(a?.data!=null&&a.data.length>0?n=a.data:n=r,(!n||!n.length)&&t!=null&&(n=t.map(i=>oe(oe({},a.presentationProps),i.props))),n!=null)return n}}),Wa=g([Ee,ee,ae],(e,a,t)=>{if(!(e==null||a==null))return e.map((r,n)=>{var i,s=w(r,a.nameKey,a.name),c;return t!=null&&(i=t[n])!==null&&i!==void 0&&(i=i.props)!==null&&i!==void 0&&i.fill?c=t[n].props.fill:typeof r=="object"&&r!=null&&"fill"in r?c=r.fill:c=a.fill,{value:be(s,a.dataKey),color:c,payload:r,type:a.legendType}})}),Ba=g([Ee,ee,ae,ze],(e,a,t,r)=>{if(!(a==null||e==null))return st({offset:r,pieSettings:a,displayedData:e,cells:t})}),Fa=["key"],Ga=["onMouseEnter","onClick","onMouseLeave"],Va=["id"],za=["id"];function T(){return T=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},T.apply(null,arguments)}function X(e,a){if(e==null)return{};var t,r,n=Ua(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],a.indexOf(t)===-1&&{}.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function Ua(e,a){if(e==null)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(a.indexOf(r)!==-1)continue;t[r]=e[r]}return t}function se(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function d(e){for(var a=1;a<arguments.length;a++){var t=arguments[a]!=null?arguments[a]:{};a%2?se(Object(t),!0).forEach(function(r){Za(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):se(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function Za(e,a,t){return(a=Xa(a))in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function Xa(e){var a=qa(e,"string");return typeof a=="symbol"?a:a+""}function qa(e,a){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var r=t.call(e,a);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(e)}function Ha(e){var a=l.useMemo(()=>he(e.children,Y),[e.children]),t=$(r=>Wa(r,e.id,a));return t==null?null:l.createElement(Xe,{legendPayload:t})}function Ja(e){if(!(e==null||typeof e=="boolean"||typeof e=="function")){if(l.isValidElement(e)){var a,t=(a=e.props)===null||a===void 0?void 0:a.fill;return typeof t=="string"?t:void 0}var{fill:r}=e;return typeof r=="string"?r:void 0}}var Qa=l.memo(e=>{var{dataKey:a,nameKey:t,sectors:r,stroke:n,strokeWidth:i,fill:s,name:c,hide:f,tooltipType:v,id:y,activeShape:h}=e,o=Ja(h),P=r.map(m=>{var p=m.tooltipPayload;return o==null||p==null?p:p.map(u=>d(d({},u),{},{color:o,fill:o}))}),E={dataDefinedOnItem:P,getPosition:m=>{var p;return(p=r[Number(m)])===null||p===void 0?void 0:p.tooltipPosition},settings:{stroke:n,strokeWidth:i,fill:s,dataKey:a,nameKey:t,name:be(c,a),hide:f,type:v,color:s,unit:"",graphicalItemId:y}};return l.createElement(qe,{tooltipEntrySettings:E})}),Ya=(e,a)=>e>a?"start":e<a?"end":"middle",et=(e,a,t)=>typeof a=="function"?W(a(e),t,t*.8):W(a,t,t*.8),at=(e,a,t)=>{var{top:r,left:n,width:i,height:s}=a,c=da(i,s),f=n+W(e.cx,i,i/2),v=r+W(e.cy,s,s/2),y=W(e.innerRadius,c,0),h=et(t,e.outerRadius,c),o=e.maxRadius||Math.sqrt(i*i+s*s)/2;return{cx:f,cy:v,innerRadius:y,outerRadius:h,maxRadius:o}},tt=(e,a)=>{var t=z(a-e),r=Math.min(Math.abs(a-e),360);return t*r},rt=(e,a)=>{if(l.isValidElement(e))return l.cloneElement(e,a);if(typeof e=="function")return e(a);var t=J("recharts-pie-label-line",typeof e!="boolean"?e.className:""),{key:r}=a,n=X(a,Fa);return l.createElement(va,T({},n,{type:"linear",className:t}))},nt=(e,a,t)=>{if(l.isValidElement(e))return l.cloneElement(e,a);var r=t;if(typeof e=="function"&&(r=e(a),l.isValidElement(r)))return r;var n=J("recharts-pie-label-text",pa(e));return l.createElement(fa,T({},a,{alignmentBaseline:"middle",className:n}),r)};function it(e){var{sectors:a,props:t,showLabels:r}=e,{label:n,labelLine:i,dataKey:s}=t;if(!r||!n||!a)return null;var c=ye(t),f=ne(n),v=ne(i),y=typeof n=="object"&&"offsetRadius"in n&&typeof n.offsetRadius=="number"&&n.offsetRadius||20,h=a.map((o,P)=>{var E=(o.startAngle+o.endAngle)/2,m=q(o.cx,o.cy,o.outerRadius+y,E),p=d(d(d(d({},c),o),{},{stroke:"none"},f),{},{index:P,textAnchor:Ya(m.x,o.cx)},m),u=d(d(d(d({},c),o),{},{fill:"none",stroke:o.fill},v),{},{index:P,points:[q(o.cx,o.cy,o.outerRadius,E),m],key:"line"});return l.createElement(Pe,{zIndex:ge.label,key:"label-".concat(o.startAngle,"-").concat(o.endAngle,"-").concat(o.midAngle,"-").concat(P)},l.createElement(N,null,i&&rt(i,u),nt(n,p,w(o,s))))});return l.createElement(N,{className:"recharts-pie-labels"},h)}function lt(e){var{sectors:a,props:t,showLabels:r}=e,{label:n}=t;return typeof n=="object"&&n!=null&&"position"in n?l.createElement(ua,{label:n}):l.createElement(it,{sectors:a,props:t,showLabels:r})}function ot(e){var{sectors:a,activeShape:t,inactiveShape:r,allOtherPieProps:n,shape:i,id:s}=e,c=$(ea),f=$(aa),v=$(ta),{onMouseEnter:y,onClick:h,onMouseLeave:o}=n,P=X(n,Ga),E=ra(y,n.dataKey,s),m=na(o),p=ia(h,n.dataKey,s);return a==null||a.length===0?null:l.createElement(l.Fragment,null,a.map((u,j)=>{if(u?.startAngle===0&&u?.endAngle===0&&a.length!==1)return null;var R=v==null||v===s,D=String(j)===c&&(f==null||n.dataKey===f)&&R,x=c?r:null,O=t&&D?t:x,A=d(d({},u),{},{stroke:u.stroke,tabIndex:-1,[oa]:j,[la]:s});return l.createElement(N,T({key:"sector-".concat(u?.startAngle,"-").concat(u?.endAngle,"-").concat(u.midAngle,"-").concat(j),tabIndex:-1,className:"recharts-pie-sector"},sa(P,u,j),{onMouseEnter:E(u,j),onMouseLeave:m(u,j),onClick:p(u,j)}),l.createElement(ca,T({option:i??O,index:j,shapeType:"sector",isActive:D},A)))}))}function st(e){var a,{pieSettings:t,displayedData:r,cells:n,offset:i}=e,{cornerRadius:s,startAngle:c,endAngle:f,dataKey:v,nameKey:y,tooltipType:h}=t,o=Math.abs(t.minAngle),P=tt(c,f),E=Math.abs(P),m=r.length<=1?0:(a=t.paddingAngle)!==null&&a!==void 0?a:0,p=r.filter(O=>w(O,v,0)!==0).length,u=(E>=360?p:p-1)*m,j=E-p*o-u,R=r.reduce((O,A)=>{var b=w(A,v,0);return O+(re(b)?b:0)},0),D;if(R>0){var x;D=r.map((O,A)=>{var b=w(O,v,0),K=w(O,y,A),S=at(t,i,O),C=(re(b)?b:0)/R,k,I=d(d({},O),n&&n[A]&&n[A].props),F=I!=null&&"fill"in I&&typeof I.fill=="string"?I.fill:t.fill;A?k=x.endAngle+z(P)*m*(b!==0?1:0):k=c;var G=k+z(P)*((b!==0?o:0)+C*j),V=(k+G)/2,M=(S.innerRadius+S.outerRadius)/2,Ie=[{name:K,value:b,payload:I,dataKey:v,type:h,color:F,fill:F,graphicalItemId:t.id}],De=q(S.cx,S.cy,M,V);return x=d(d(d(d({},t.presentationProps),{},{percent:C,cornerRadius:typeof s=="string"?parseFloat(s):s,name:K,tooltipPayload:Ie,midAngle:V,middleRadius:M,tooltipPosition:De},I),S),{},{value:b,dataKey:v,startAngle:k,endAngle:G,payload:I,paddingAngle:z(P)*m}),x})}return D}function ct(e){var{showLabels:a,sectors:t,children:r}=e,n=l.useMemo(()=>!a||!t?[]:t.map(i=>({value:i.value,payload:i.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:i.cx,cy:i.cy,innerRadius:i.innerRadius,outerRadius:i.outerRadius,startAngle:i.startAngle,endAngle:i.endAngle,clockWise:!1},fill:i.fill})),[t,a]);return l.createElement(Ye,{value:a?n:void 0},r)}function ut(e){var{props:a,previousSectorsRef:t,id:r}=e,{sectors:n,isAnimationActive:i,animationBegin:s,animationDuration:c,animationEasing:f,activeShape:v,inactiveShape:y,onAnimationStart:h,onAnimationEnd:o}=a,P=He(a,"recharts-pie-"),E=t.current,[m,p]=l.useState(!1),u=l.useCallback(()=>{typeof o=="function"&&o(),p(!1)},[o]),j=l.useCallback(()=>{typeof h=="function"&&h(),p(!0)},[h]);return l.createElement(ct,{showLabels:!m,sectors:n},l.createElement(Je,{animationId:P,begin:s,duration:c,isActive:i,easing:f,onAnimationStart:j,onAnimationEnd:u,key:P},R=>{var D,x=[],O=n&&n[0],A=(D=O?.startAngle)!==null&&D!==void 0?D:0;return n?.forEach((b,K)=>{var S=E&&E[K],C=K>0?Qe(b,"paddingAngle",0):0;if(S){var k=te(S.endAngle-S.startAngle,b.endAngle-b.startAngle,R),I=d(d({},b),{},{startAngle:A+C,endAngle:A+k+C});x.push(I),A=I.endAngle}else{var{endAngle:F,startAngle:G}=b,V=te(0,F-G,R),M=d(d({},b),{},{startAngle:A+C,endAngle:A+V+C});x.push(M),A=M.endAngle}}),t.current=x,l.createElement(N,null,l.createElement(ot,{sectors:x,activeShape:v,inactiveShape:y,allOtherPieProps:a,shape:a.shape,id:r}))}),l.createElement(lt,{showLabels:!m,sectors:n,props:a}),a.children)}var dt={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:ge.area};function vt(e){var{id:a}=e,t=X(e,Va),{hide:r,className:n,rootTabIndex:i}=e,s=l.useMemo(()=>he(e.children,Y),[e.children]),c=$(y=>Ba(y,a,s)),f=l.useRef(null),v=J("recharts-pie",n);return r||c==null?(f.current=null,l.createElement(N,{tabIndex:i,className:v})):l.createElement(Pe,{zIndex:e.zIndex},l.createElement(Qa,{dataKey:e.dataKey,nameKey:e.nameKey,sectors:c,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,tooltipType:e.tooltipType,id:a,activeShape:e.activeShape}),l.createElement(N,{tabIndex:i,className:v},l.createElement(ut,{props:d(d({},t),{},{sectors:c}),previousSectorsRef:f,id:a})))}function pt(e){var a=Q(e,dt),{id:t}=a,r=X(a,za),n=ye(r);return l.createElement(Ue,{id:t,type:"pie"},i=>l.createElement(l.Fragment,null,l.createElement(Ze,{type:"pie",id:i,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:n,maxRadius:a.maxRadius}),l.createElement(Ha,T({},r,{id:i})),l.createElement(vt,T({},r,{id:i}))))}var je=pt;je.displayName="Pie";function ft(e){var a=ma();return l.useEffect(()=>{a(ba(e))},[a,e]),null}var mt=["layout"];function H(){return H=Object.assign?Object.assign.bind():function(e){for(var a=1;a<arguments.length;a++){var t=arguments[a];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},H.apply(null,arguments)}function bt(e,a){if(e==null)return{};var t,r,n=gt(e,a);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)t=i[r],a.indexOf(t)===-1&&{}.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}function gt(e,a){if(e==null)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(a.indexOf(r)!==-1)continue;t[r]=e[r]}return t}function ce(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function yt(e){for(var a=1;a<arguments.length;a++){var t=arguments[a]!=null?arguments[a]:{};a%2?ce(Object(t),!0).forEach(function(r){ht(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ce(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function ht(e,a,t){return(a=Pt(a))in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function Pt(e){var a=At(e,"string");return typeof a=="symbol"?a:a+""}function At(e,a){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var r=t.call(e,a);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(e)}var Ot={top:5,right:5,bottom:5,left:5},xe=yt({accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:Ot,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},Ea),Et=l.forwardRef(function(a,t){var r,n=Q(a.categoricalChartProps,xe),{layout:i}=n,s=bt(n,mt),{chartName:c,defaultTooltipEventType:f,validateTooltipEventTypes:v,tooltipPayloadSearcher:y}=a,h={chartName:c,defaultTooltipEventType:f,validateTooltipEventTypes:v,tooltipPayloadSearcher:y,eventEmitter:void 0};return l.createElement(ga,{preloadedState:{options:h},reduxStoreName:(r=n.id)!==null&&r!==void 0?r:c},l.createElement(ya,{chartData:n.data}),l.createElement(ha,{layout:i,margin:n.margin}),l.createElement(Pa,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),l.createElement(Aa,{baseValue:void 0,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),l.createElement(ft,{cx:n.cx,cy:n.cy,startAngle:n.startAngle,endAngle:n.endAngle,innerRadius:n.innerRadius,outerRadius:n.outerRadius}),l.createElement(Oa,H({},s,{ref:t})))});function ue(e,a){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);a&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,r)}return t}function de(e){for(var a=1;a<arguments.length;a++){var t=arguments[a]!=null?arguments[a]:{};a%2?ue(Object(t),!0).forEach(function(r){jt(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ue(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function jt(e,a,t){return(a=xt(a))in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}function xt(e){var a=It(e,"string");return typeof a=="symbol"?a:a+""}function It(e,a){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var r=t.call(e,a);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(e)}var Dt=["item"],St=de(de({},xe),{},{layout:"centric",startAngle:0,endAngle:360}),wt=l.forwardRef((e,a)=>{var t=Q(e,St);return l.createElement(Et,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:Dt,tooltipPayloadSearcher:ja,categoricalChartProps:t,ref:a})});const ve=["var(--chart-1)","var(--chart-2)","var(--chart-3)","var(--chart-4)","var(--chart-5)"];function Ct({data:e,donut:a,chartConfig:t}){return _.jsx(xa,{config:t,className:"h-full w-full",children:_.jsxs(wt,{children:[_.jsx(Ia,{content:_.jsx(Da,{hideLabel:!0})}),_.jsx(je,{data:e,dataKey:"value",nameKey:"label",innerRadius:a?"55%":0,outerRadius:"80%",strokeWidth:2,children:e.map((r,n)=>_.jsx(Y,{fill:ve[n%ve.length]},r.label))})]})})}export{Ct as default};
@@ -1 +0,0 @@
1
- import{c as Y,r as o,j as T}from"./index-wTKgygsg.js";import{i as N,a as Wt,s as ie,D as ee,b as et,c as _r,Z as te,L as G,u as M,d as tt,e as $r,f as le,g as De,h as zr,j as Ge,k as fe,l as Ft,G as Br,m as ze,n as Ve,r as ce,C as Kr,o as Rr,p as Gt,q as Mr,t as rt,v as Wr,T as Fr,w as Vt,x as Te,y as Gr,z as Vr,A as Xr,B as Hr,E as Yr,F as ue,H as bt,I as Pt,J as Xt,K as Ht,M as At,N as qr,O as Ur,P as z,Q as Zr,R as at,S as F,U as q,V as Jr,W as J,X as Q,Y as Le,_ as nt,$ as ye,a0 as Ne,a1 as it,a2 as ot,a3 as lt,a4 as xe,a5 as st,a6 as ct,a7 as ge,a8 as Ie,a9 as ut,aa as dt,ab as _,ac as vt,ad as ft,ae as Yt,af as qt,ag as Ut,ah as Zt,ai as Qr,aj as Xe,ak as Jt,al as ea,am as Qt,an as er,ao as Be,ap as ta,aq as tr,ar as rr,as as ra,at as aa,au as na,av as kt,aw as ia,ax as oa,ay as la,az as sa,aA as Ot,aB as ar,aC as nr,aD as ir,aE as ca,aF as ua,aG as da,aH as va,aI as fa,aJ as pa,aK as ha,aL as ma,aM as ya,aN as ga,aO as xa,aP as ba,aQ as Pa,aR as Aa,aS as ka,aT as Oa,aU as pt,aV as Ke,aW as Re,aX as Me}from"./chart-BrJFdsGZ.js";function He(){return He=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},He.apply(null,arguments)}var or=e=>{var{cx:t,cy:r,r:a,className:n}=e,i=Y("recharts-dot",n);return N(t)&&N(r)&&N(a)?o.createElement("circle",He({},ie(e),Wt(e),{className:i,cx:t,cy:r,r:a})):null},wa=["points"];function wt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function We(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?wt(Object(r),!0).forEach(function(a){Ia(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Ia(e,t,r){return(t=Ea(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ea(e){var t=ja(e,"string");return typeof t=="symbol"?t:t+""}function ja(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ee(){return Ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},Ee.apply(null,arguments)}function Sa(e,t){if(e==null)return{};var r,a,n=Ca(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ca(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function Da(e){var{option:t,dotProps:r,className:a}=e;if(o.isValidElement(t))return o.cloneElement(t,r);if(typeof t=="function")return t(r);var n=Y(a,typeof t!="boolean"?t.className:""),i=r??{},{points:s}=i,l=Sa(i,wa);return o.createElement(or,Ee({},l,{className:n}))}function Ta(e,t){return e==null?!1:t?!0:e.length===1}function lr(e){var{points:t,dot:r,className:a,dotClassName:n,dataKey:i,baseProps:s,needClip:l,clipPathId:u,zIndex:c=ee.scatter}=e;if(!Ta(t,r))return null;var d=et(r),v=_r(r),f=t.map((p,y)=>{var g,h,b=We(We(We({r:3},s),v),{},{index:y,cx:(g=p.x)!==null&&g!==void 0?g:void 0,cy:(h=p.y)!==null&&h!==void 0?h:void 0,dataKey:i,value:p.value,payload:p.payload,points:t});return o.createElement(Da,{key:"dot-".concat(y),option:r,dotProps:b,className:n})}),m={};return l&&u!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(u,")")),o.createElement(te,{zIndex:c},o.createElement(G,Ee({className:a},m),f))}function It(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function Fe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?It(Object(r),!0).forEach(function(a){La(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):It(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function La(e,t,r){return(t=Na(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Na(e){var t=_a(e,"string");return typeof t=="symbol"?t:t+""}function _a(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var $a=e=>{var{point:t,childIndex:r,mainColor:a,activeDot:n,dataKey:i,clipPath:s}=e;if(n===!1||t.x==null||t.y==null)return null;var l={index:r,dataKey:i,cx:t.x,cy:t.y,r:4,fill:a??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},u=Fe(Fe(Fe({},l),De(n)),Wt(n)),c;return o.isValidElement(n)?c=o.cloneElement(n,u):typeof n=="function"?c=n(u):c=o.createElement(or,u),o.createElement(G,{className:"recharts-active-dot",clipPath:s},c)};function Ye(e){var{points:t,mainColor:r,activeDot:a,itemDataKey:n,clipPath:i,zIndex:s=ee.activeDot}=e,l=M(tt),u=$r();if(t==null||u==null)return null;var c=t.find(d=>u.includes(d.payload));return le(c)?null:o.createElement(te,{zIndex:s},o.createElement($a,{point:c,childIndex:Number(l),mainColor:r,dataKey:n,activeDot:a,clipPath:i}))}var Et=(e,t,r)=>{var a=r??e;if(!le(a))return Ge(a,t,0)},za=(e,t,r)=>{var a={},n=e.filter(zr),i=e.filter(c=>c.stackId==null),s=n.reduce((c,d)=>{var v=c[d.stackId];return v==null&&(v=[]),v.push(d),c[d.stackId]=v,c},a),l=Object.entries(s).map(c=>{var d,[v,f]=c,m=f.map(y=>y.dataKey),p=Et(t,r,(d=f[0])===null||d===void 0?void 0:d.barSize);return{stackId:v,dataKeys:m,barSize:p}}),u=i.map(c=>{var d=[c.dataKey].filter(f=>f!=null),v=Et(t,r,c.barSize);return{stackId:void 0,dataKeys:d,barSize:v}});return[...l,...u]};function jt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function ke(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?jt(Object(r),!0).forEach(function(a){Ba(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):jt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Ba(e,t,r){return(t=Ka(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ka(e){var t=Ra(e,"string");return typeof t=="symbol"?t:t+""}function Ra(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ma(e,t,r,a,n){var i,s=a.length;if(!(s<1)){var l=Ge(e,r,0,!0),u,c=[];if(fe((i=a[0])===null||i===void 0?void 0:i.barSize)){var d=!1,v=r/s,f=a.reduce((b,P)=>b+(P.barSize||0),0);f+=(s-1)*l,f>=r&&(f-=(s-1)*l,l=0),f>=r&&v>0&&(d=!0,v*=.9,f=s*v);var m=(r-f)/2>>0,p={offset:m-l,size:0};u=a.reduce((b,P)=>{var x,k={stackId:P.stackId,dataKeys:P.dataKeys,position:{offset:p.offset+p.size+l,size:d?v:(x=P.barSize)!==null&&x!==void 0?x:0}},A=[...b,k];return p=k.position,A},c)}else{var y=Ge(t,r,0,!0);r-2*y-(s-1)*l<=0&&(l=0);var g=(r-2*y-(s-1)*l)/s;g>1&&(g>>=0);var h=fe(n)?Math.min(g,n):g;u=a.reduce((b,P,x)=>[...b,{stackId:P.stackId,dataKeys:P.dataKeys,position:{offset:y+(g+l)*x+(g-h)/2,size:h}}],c)}return u}}var Wa=(e,t,r,a,n,i,s)=>{var l=le(s)?t:s,u=Ma(r,a,n!==i?n:i,e,l);return n!==i&&u!=null&&(u=u.map(c=>ke(ke({},c),{},{position:ke(ke({},c.position),{},{offset:c.position.offset-n/2})}))),u},Fa=(e,t)=>{var r=Ft(t);if(!(!e||r==null||t==null)){var{stackId:a}=t;if(a!=null){var n=e[a];if(n){var{stackedData:i}=n;if(i)return i.find(s=>s.key===r)}}}},Ga=(e,t)=>{if(!(e==null||t==null)){var r=e.find(a=>a.stackId===t.stackId&&t.dataKey!=null&&a.dataKeys.includes(t.dataKey));if(r!=null)return r.position}};function Va(e,t){return e&&typeof e=="object"&&"zIndex"in e&&typeof e.zIndex=="number"&&fe(e.zIndex)?e.zIndex:t}function Xa(e){return(e%180+180)%180}var Ha=function(t){var{width:r,height:a}=t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=Xa(n),s=i*Math.PI/180,l=Math.atan(a/r),u=s>l&&s<Math.PI-l?a/Math.sin(s):r/Math.cos(s);return Math.abs(u)};function sr(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],a=0;a<e.length;a+=t){var n=e[a];n!==void 0&&r.push(n)}return r}function Ya(e,t,r){var a={width:e.width+t.width,height:e.height+t.height};return Ha(a,r)}function qa(e,t,r){var a=r==="width",{x:n,y:i,width:s,height:l}=e;return t===1?{start:a?n:i,end:a?n+s:i+l}:{start:a?n+s:i+l,end:a?n:i}}function be(e,t,r,a,n){if(e*t<e*a||e*t>e*n)return!1;var i=r();return e*(t-e*i/2-a)>=0&&e*(t+e*i/2-n)<=0}function Ua(e,t){return sr(e,t+1)}function Za(e,t,r,a,n){for(var i=(a||[]).slice(),{start:s,end:l}=t,u=0,c=1,d=s,v=function(){var p=a?.[u];if(p===void 0)return{v:sr(a,c)};var y=u,g,h=()=>(g===void 0&&(g=r(p,y)),g),b=p.coordinate,P=u===0||be(e,b,h,d,l);P||(u=0,d=s,c+=1),P&&(d=b+e*(h()/2+n),u+=c)},f;c<=i.length;)if(f=v(),f)return f.v;return[]}function Ja(e,t,r,a,n){var i=(a||[]).slice(),s=i.length;if(s===0)return[];for(var{start:l,end:u}=t,c=1;c<=s;c++){for(var d=(s-1)%c,v=l,f=!0,m=function(){var x=a[y];if(x==null)return 0;var k=y,A,O=()=>(A===void 0&&(A=r(x,k)),A),w=x.coordinate,I=y===d||be(e,w,O,v,u);if(!I)return f=!1,1;I&&(v=w+e*(O()/2+n))},p,y=d;y<s&&(p=m(),!(p!==0&&p===1));y+=c);if(f){for(var g=[],h=d;h<s;h+=c){var b=a[h];b!=null&&g.push(b)}return g}}return[]}function St(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function K(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?St(Object(r),!0).forEach(function(a){Qa(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):St(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Qa(e,t,r){return(t=en(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function en(e){var t=tn(e,"string");return typeof t=="symbol"?t:t+""}function tn(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function rn(e,t,r,a,n){for(var i=(a||[]).slice(),s=i.length,{start:l}=t,{end:u}=t,c=function(f){var m=i[f];if(m==null)return 1;var p=m,y,g=()=>(y===void 0&&(y=r(m,f)),y);if(f===s-1){var h=e*(p.coordinate+e*g()/2-u);i[f]=p=K(K({},p),{},{tickCoord:h>0?p.coordinate-h*e:p.coordinate})}else i[f]=p=K(K({},p),{},{tickCoord:p.coordinate});if(p.tickCoord!=null){var b=be(e,p.tickCoord,g,l,u);b&&(u=p.tickCoord-e*(g()/2+n),i[f]=K(K({},p),{},{isShow:!0}))}},d=s-1;d>=0;d--)c(d);return i}function an(e,t,r,a,n,i){var s=(a||[]).slice(),l=s.length,{start:u,end:c}=t;if(i){var d=a[l-1];if(d!=null){var v=r(d,l-1),f=e*(d.coordinate+e*v/2-c);if(s[l-1]=d=K(K({},d),{},{tickCoord:f>0?d.coordinate-f*e:d.coordinate}),d.tickCoord!=null){var m=be(e,d.tickCoord,()=>v,u,c);m&&(c=d.tickCoord-e*(v/2+n),s[l-1]=K(K({},d),{},{isShow:!0}))}}}for(var p=i?l-1:l,y=function(b){var P=s[b];if(P==null)return 1;var x=P,k,A=()=>(k===void 0&&(k=r(P,b)),k);if(b===0){var O=e*(x.coordinate-e*A()/2-u);s[b]=x=K(K({},x),{},{tickCoord:O<0?x.coordinate-O*e:x.coordinate})}else s[b]=x=K(K({},x),{},{tickCoord:x.coordinate});if(x.tickCoord!=null){var w=be(e,x.tickCoord,A,u,c);w&&(u=x.tickCoord+e*(A()/2+n),s[b]=K(K({},x),{},{isShow:!0}))}},g=0;g<p;g++)y(g);return s}function ht(e,t,r){var{tick:a,ticks:n,viewBox:i,minTickGap:s,orientation:l,interval:u,tickFormatter:c,unit:d,angle:v}=e;if(!n||!n.length||!a)return[];if(N(u)||Br.isSsr){var f;return(f=Ua(n,N(u)?u:0))!==null&&f!==void 0?f:[]}var m=[],p=l==="top"||l==="bottom"?"width":"height",y=d&&p==="width"?ze(d,{fontSize:t,letterSpacing:r}):{width:0,height:0},g=(k,A)=>{var O=typeof c=="function"?c(k.value,A):k.value;return p==="width"?Ya(ze(O,{fontSize:t,letterSpacing:r}),y,v):ze(O,{fontSize:t,letterSpacing:r})[p]},h=n[0],b=n[1],P=n.length>=2&&h!=null&&b!=null?Ve(b.coordinate-h.coordinate):1,x=qa(i,P,p);return u==="equidistantPreserveStart"?Za(P,x,g,n,s):u==="equidistantPreserveEnd"?Ja(P,x,g,n,s):(u==="preserveStart"||u==="preserveStartEnd"?m=an(P,x,g,n,s,u==="preserveStartEnd"):m=rn(P,x,g,n,s),m.filter(k=>k.isShow))}var nn=e=>{var{ticks:t,label:r,labelGapWithTick:a=5,tickSize:n=0,tickMargin:i=0}=e,s=0;if(t){Array.from(t).forEach(d=>{if(d){var v=d.getBoundingClientRect();v.width>s&&(s=v.width)}});var l=r?r.getBoundingClientRect().width:0,u=n+i,c=s+u+l+(r?a:0);return Math.round(c)}return 0},on=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function ln(e,t){if(e==null)return{};var r,a,n=sn(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function sn(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function pe(){return pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},pe.apply(null,arguments)}function Ct(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function D(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ct(Object(r),!0).forEach(function(a){cn(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ct(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function cn(e,t,r){return(t=un(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function un(e){var t=dn(e,"string");return typeof t=="symbol"?t:t+""}function dn(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var me={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:ee.axis};function vn(e){var{x:t,y:r,width:a,height:n,orientation:i,mirror:s,axisLine:l,otherSvgProps:u}=e;if(!l)return null;var c=D(D(D({},u),ie(l)),{},{fill:"none"});if(i==="top"||i==="bottom"){var d=+(i==="top"&&!s||i==="bottom"&&s);c=D(D({},c),{},{x1:t,y1:r+d*n,x2:t+a,y2:r+d*n})}else{var v=+(i==="left"&&!s||i==="right"&&s);c=D(D({},c),{},{x1:t+v*a,y1:r,x2:t+v*a,y2:r+n})}return o.createElement("line",pe({},c,{className:Y("recharts-cartesian-axis-line",Gt(l,"className"))}))}function fn(e,t,r,a,n,i,s,l,u){var c,d,v,f,m,p,y=l?-1:1,g=e.tickSize||s,h=N(e.tickCoord)?e.tickCoord:e.coordinate;switch(i){case"top":c=d=e.coordinate,f=r+ +!l*n,v=f-y*g,p=v-y*u,m=h;break;case"left":v=f=e.coordinate,d=t+ +!l*a,c=d-y*g,m=c-y*u,p=h;break;case"right":v=f=e.coordinate,d=t+ +l*a,c=d+y*g,m=c+y*u,p=h;break;default:c=d=e.coordinate,f=r+ +l*n,v=f+y*g,p=v+y*u,m=h;break}return{line:{x1:c,y1:v,x2:d,y2:f},tick:{x:m,y:p}}}function pn(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function hn(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function mn(e){var{option:t,tickProps:r,value:a}=e,n,i=Y(r.className,"recharts-cartesian-axis-tick-value");if(o.isValidElement(t))n=o.cloneElement(t,D(D({},r),{},{className:i}));else if(typeof t=="function")n=t(D(D({},r),{},{className:i}));else{var s="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(s=Y(s,Wr(t))),n=o.createElement(Fr,pe({},r,{className:s}),a)}return n}function yn(e){var{ticks:t,axisType:r,axisId:a}=e,n=Vt();return o.useEffect(()=>{if(a==null||r==null)return Te;var i=t.map(s=>({value:s.value,coordinate:s.coordinate,offset:s.offset,index:s.index}));return n(Gr({ticks:i,axisId:a,axisType:r})),()=>{n(Vr({axisId:a,axisType:r}))}},[n,t,a,r]),null}var gn=o.forwardRef((e,t)=>{var{ticks:r=[],tick:a,tickLine:n,stroke:i,tickFormatter:s,unit:l,padding:u,tickTextProps:c,orientation:d,mirror:v,x:f,y:m,width:p,height:y,tickSize:g,tickMargin:h,fontSize:b,letterSpacing:P,getTicksConfig:x,events:k,axisType:A,axisId:O}=e,w=ht(D(D({},x),{},{ticks:r}),b,P),I=ie(x),E=De(a),j=Mr(I.textAnchor)?I.textAnchor:pn(d,v),S=hn(d,v),B={};typeof n=="object"&&(B=n);var L=D(D({},I),{},{fill:"none"},B),$=w.map(V=>D({entry:V},fn(V,f,m,p,y,d,g,v,h))),oe=$.map(V=>{var{entry:C,line:H}=V;return o.createElement(G,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(C.value,"-").concat(C.coordinate,"-").concat(C.tickCoord)},n&&o.createElement("line",pe({},L,H,{className:Y("recharts-cartesian-axis-tick-line",Gt(n,"className"))})))}),U=$.map((V,C)=>{var H,ne,{entry:X,tick:$e}=V,Lr=D(D(D(D({verticalAnchor:S},I),{},{textAnchor:j,stroke:"none",fill:i},$e),{},{index:C,payload:X,visibleTicksCount:w.length,tickFormatter:s,padding:u},c),{},{angle:(H=(ne=c?.angle)!==null&&ne!==void 0?ne:I.angle)!==null&&H!==void 0?H:0}),Nr=D(D({},Lr),E);return o.createElement(G,pe({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(X.value,"-").concat(X.coordinate,"-").concat(X.tickCoord)},rt(k,X,C)),a&&o.createElement(mn,{option:a,tickProps:Nr,value:"".concat(typeof s=="function"?s(X.value,C):X.value).concat(l||"")}))});return o.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(A,"-ticks")},o.createElement(yn,{ticks:w,axisId:O,axisType:A}),U.length>0&&o.createElement(te,{zIndex:ee.label},o.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(A,"-tick-labels"),ref:t},U)),oe.length>0&&o.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(A,"-tick-lines")},oe))}),xn=o.forwardRef((e,t)=>{var{axisLine:r,width:a,height:n,className:i,hide:s,ticks:l,axisType:u,axisId:c}=e,d=ln(e,on),[v,f]=o.useState(""),[m,p]=o.useState(""),y=o.useRef(null);o.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var h;return nn({ticks:y.current,label:(h=e.labelRef)===null||h===void 0?void 0:h.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var g=o.useCallback(h=>{if(h){var b=h.getElementsByClassName("recharts-cartesian-axis-tick-value");y.current=b;var P=b[0];if(P){var x=window.getComputedStyle(P),k=x.fontSize,A=x.letterSpacing;(k!==v||A!==m)&&(f(k),p(A))}}},[v,m]);return s||a!=null&&a<=0||n!=null&&n<=0?null:o.createElement(te,{zIndex:e.zIndex},o.createElement(G,{className:Y("recharts-cartesian-axis",i)},o.createElement(vn,{x:e.x,y:e.y,width:a,height:n,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:ie(e)}),o.createElement(gn,{ref:g,axisType:u,events:d,fontSize:v,getTicksConfig:e,height:e.height,letterSpacing:m,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:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:c}),o.createElement(Kr,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},o.createElement(Rr,{label:e.label,labelRef:e.labelRef}),e.children)))}),cr=o.forwardRef((e,t)=>{var r=ce(e,me);return o.createElement(xn,pe({},r,{ref:t}))});cr.displayName="CartesianAxis";var bn=["x1","y1","x2","y2","key"],Pn=["offset"],An=["xAxisId","yAxisId"],kn=["xAxisId","yAxisId"];function Dt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function R(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Dt(Object(r),!0).forEach(function(a){On(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Dt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function On(e,t,r){return(t=wn(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wn(e){var t=In(e,"string");return typeof t=="symbol"?t:t+""}function In(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function de(){return de=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},de.apply(null,arguments)}function je(e,t){if(e==null)return{};var r,a,n=En(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function En(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}var jn=e=>{var{fill:t}=e;if(!t||t==="none")return null;var{fillOpacity:r,x:a,y:n,width:i,height:s,ry:l}=e;return o.createElement("rect",{x:a,y:n,ry:l,width:i,height:s,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function ur(e){var{option:t,lineItemProps:r}=e,a;if(o.isValidElement(t))a=o.cloneElement(t,r);else if(typeof t=="function")a=t(r);else{var n,{x1:i,y1:s,x2:l,y2:u,key:c}=r,d=je(r,bn),v=(n=ie(d))!==null&&n!==void 0?n:{},{offset:f}=v,m=je(v,Pn);a=o.createElement("line",de({},m,{x1:i,y1:s,x2:l,y2:u,fill:"none",key:c}))}return a}function Sn(e){var{x:t,width:r,horizontal:a=!0,horizontalPoints:n}=e;if(!a||!n||!n.length)return null;var{xAxisId:i,yAxisId:s}=e,l=je(e,An),u=n.map((c,d)=>{var v=R(R({},l),{},{x1:t,y1:c,x2:t+r,y2:c,key:"line-".concat(d),index:d});return o.createElement(ur,{key:"line-".concat(d),option:a,lineItemProps:v})});return o.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function Cn(e){var{y:t,height:r,vertical:a=!0,verticalPoints:n}=e;if(!a||!n||!n.length)return null;var{xAxisId:i,yAxisId:s}=e,l=je(e,kn),u=n.map((c,d)=>{var v=R(R({},l),{},{x1:c,y1:t,x2:c,y2:t+r,key:"line-".concat(d),index:d});return o.createElement(ur,{option:a,lineItemProps:v,key:"line-".concat(d)})});return o.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function Dn(e){var{horizontalFill:t,fillOpacity:r,x:a,y:n,width:i,height:s,horizontalPoints:l,horizontal:u=!0}=e;if(!u||!t||!t.length||l==null)return null;var c=l.map(v=>Math.round(v+n-n)).sort((v,f)=>v-f);n!==c[0]&&c.unshift(0);var d=c.map((v,f)=>{var m=c[f+1],p=m==null,y=p?n+s-v:m-v;if(y<=0)return null;var g=f%t.length;return o.createElement("rect",{key:"react-".concat(f),y:v,x:a,height:y,width:i,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return o.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function Tn(e){var{vertical:t=!0,verticalFill:r,fillOpacity:a,x:n,y:i,width:s,height:l,verticalPoints:u}=e;if(!t||!r||!r.length)return null;var c=u.map(v=>Math.round(v+n-n)).sort((v,f)=>v-f);n!==c[0]&&c.unshift(0);var d=c.map((v,f)=>{var m=c[f+1],p=m==null,y=p?n+s-v:m-v;if(y<=0)return null;var g=f%r.length;return o.createElement("rect",{key:"react-".concat(f),x:v,y:i,width:y,height:l,stroke:"none",fill:r[g],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return o.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var Ln=(e,t)=>{var{xAxis:r,width:a,height:n,offset:i}=e;return Xt(ht(R(R(R({},me),r),{},{ticks:Ht(r),viewBox:{x:0,y:0,width:a,height:n}})),i.left,i.left+i.width,t)},Nn=(e,t)=>{var{yAxis:r,width:a,height:n,offset:i}=e;return Xt(ht(R(R(R({},me),r),{},{ticks:Ht(r),viewBox:{x:0,y:0,width:a,height:n}})),i.top,i.top+i.height,t)},_n={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:ee.grid};function Oe(e){var t=Xr(),r=Hr(),a=Yr(),n=R(R({},ce(e,_n)),{},{x:N(e.x)?e.x:a.left,y:N(e.y)?e.y:a.top,width:N(e.width)?e.width:a.width,height:N(e.height)?e.height:a.height}),{xAxisId:i,yAxisId:s,x:l,y:u,width:c,height:d,syncWithTicks:v,horizontalValues:f,verticalValues:m}=n,p=ue(),y=M(I=>At(I,"xAxis",i,p)),g=M(I=>At(I,"yAxis",s,p));if(!bt(c)||!bt(d)||!N(l)||!N(u))return null;var h=n.verticalCoordinatesGenerator||Ln,b=n.horizontalCoordinatesGenerator||Nn,{horizontalPoints:P,verticalPoints:x}=n;if((!P||!P.length)&&typeof b=="function"){var k=f&&f.length,A=b({yAxis:g?R(R({},g),{},{ticks:k?f:g.ticks}):void 0,width:t??c,height:r??d,offset:a},k?!0:v);Pt(Array.isArray(A),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof A,"]")),Array.isArray(A)&&(P=A)}if((!x||!x.length)&&typeof h=="function"){var O=m&&m.length,w=h({xAxis:y?R(R({},y),{},{ticks:O?m:y.ticks}):void 0,width:t??c,height:r??d,offset:a},O?!0:v);Pt(Array.isArray(w),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof w,"]")),Array.isArray(w)&&(x=w)}return o.createElement(te,{zIndex:n.zIndex},o.createElement("g",{className:"recharts-cartesian-grid"},o.createElement(jn,{fill:n.fill,fillOpacity:n.fillOpacity,x:n.x,y:n.y,width:n.width,height:n.height,ry:n.ry}),o.createElement(Dn,de({},n,{horizontalPoints:P})),o.createElement(Tn,de({},n,{verticalPoints:x})),o.createElement(Sn,de({},n,{offset:a,horizontalPoints:P,xAxis:y,yAxis:g})),o.createElement(Cn,de({},n,{offset:a,verticalPoints:x,xAxis:y,yAxis:g}))))}Oe.displayName="CartesianGrid";var $n=["children"];function zn(e,t){if(e==null)return{};var r,a,n=Bn(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Bn(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}var Kn={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},Rn=o.createContext(Kn);function dr(e){var{children:t}=e,r=zn(e,$n);return o.createElement(Rn.Provider,{value:r},t)}function _e(e,t){var r,a,n=M(c=>qr(c,e)),i=M(c=>Ur(c,t)),s=(r=n?.allowDataOverflow)!==null&&r!==void 0?r:z.allowDataOverflow,l=(a=i?.allowDataOverflow)!==null&&a!==void 0?a:Zr.allowDataOverflow,u=s||l;return{needClip:u,needClipX:s,needClipY:l}}function mt(e){var{xAxisId:t,yAxisId:r,clipPathId:a}=e,n=at(),{needClipX:i,needClipY:s,needClip:l}=_e(t,r);if(!l||!n)return null;var{x:u,y:c,width:d,height:v}=n;return o.createElement("clipPath",{id:"clipPath-".concat(a)},o.createElement("rect",{x:i?u:u-d/2,y:s?c:c-v/2,width:i?d:d*2,height:s?v:v*2}))}var vr=(e,t,r,a)=>J(e,"xAxis",t,a),fr=(e,t,r,a)=>Q(e,"xAxis",t,a),pr=(e,t,r,a)=>J(e,"yAxis",r,a),hr=(e,t,r,a)=>Q(e,"yAxis",r,a),Mn=F([q,vr,pr,fr,hr],(e,t,r,a,n)=>nt(e,"xAxis")?ye(t,a,!1):ye(r,n,!1)),Wn=(e,t,r,a,n)=>n;function Fn(e){return e.type==="line"}var Gn=F([Le,Wn],(e,t)=>e.filter(Fn).find(r=>r.id===t)),Vn=F([q,vr,pr,fr,hr,Gn,Mn,Jr],(e,t,r,a,n,i,s,l)=>{var{chartData:u,dataStartIndex:c,dataEndIndex:d}=l;if(!(i==null||t==null||r==null||a==null||n==null||a.length===0||n.length===0||s==null||e!=="horizontal"&&e!=="vertical")){var{dataKey:v,data:f}=i,m;if(f!=null&&f.length>0?m=f:m=u?.slice(c,d+1),m!=null)return di({layout:e,xAxis:t,yAxis:r,xAxisTicks:a,yAxisTicks:n,dataKey:v,bandSize:s,displayedData:m})}});function mr(e){var t=De(e),r=3,a=2;if(t!=null){var{r:n,strokeWidth:i}=t,s=Number(n),l=Number(i);return(Number.isNaN(s)||s<0)&&(s=r),(Number.isNaN(l)||l<0)&&(l=a),{r:s,strokeWidth:l}}return{r,strokeWidth:a}}var Xn=["id"],Hn=["type","layout","connectNulls","needClip","shape"],Yn=["activeDot","animateNewValues","animationBegin","animationDuration","animationEasing","connectNulls","dot","hide","isAnimationActive","label","legendType","xAxisId","yAxisId","id"];function Pe(){return Pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},Pe.apply(null,arguments)}function Tt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function Z(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Tt(Object(r),!0).forEach(function(a){qn(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Tt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function qn(e,t,r){return(t=Un(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Un(e){var t=Zn(e,"string");return typeof t=="symbol"?t:t+""}function Zn(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function yt(e,t){if(e==null)return{};var r,a,n=Jn(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Jn(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}var Qn=e=>{var{dataKey:t,name:r,stroke:a,legendType:n,hide:i}=e;return[{inactive:i,dataKey:t,type:n,color:a,value:xe(r,t),payload:e}]},ei=o.memo(e=>{var{dataKey:t,data:r,stroke:a,strokeWidth:n,fill:i,name:s,hide:l,unit:u,tooltipType:c,id:d}=e,v={dataDefinedOnItem:r,getPosition:Te,settings:{stroke:a,strokeWidth:n,fill:i,dataKey:t,nameKey:void 0,name:xe(s,t),hide:l,type:c,color:a,unit:u,graphicalItemId:d}};return o.createElement(st,{tooltipEntrySettings:v})}),yr=(e,t)=>"".concat(t,"px ").concat(e,"px");function ti(e,t){for(var r=e.length%2!==0?[...e,0]:e,a=[],n=0;n<t;++n)a.push(...r);return a}var ri=(e,t,r)=>{var a=r.reduce((f,m)=>f+m,0);if(!a)return yr(t,e);for(var n=Math.floor(e/a),i=e%a,s=[],l=0,u=0;l<r.length;u+=(c=r[l])!==null&&c!==void 0?c:0,++l){var c,d=r[l];if(d!=null&&u+d>i){s=[...r.slice(0,l),i-u];break}}var v=s.length%2===0?[0,t]:[t];return[...ti(r,n),...s,...v].map(f=>"".concat(f,"px")).join(", ")};function ai(e){var{clipPathId:t,points:r,props:a}=e,{dot:n,dataKey:i,needClip:s}=a,{id:l}=a,u=yt(a,Xn),c=ie(u);return o.createElement(lr,{points:r,dot:n,className:"recharts-line-dots",dotClassName:"recharts-line-dot",dataKey:i,baseProps:c,needClip:s,clipPathId:t})}function ni(e){var{showLabels:t,children:r,points:a}=e,n=o.useMemo(()=>a?.map(i=>{var s,l,u={x:(s=i.x)!==null&&s!==void 0?s:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Z(Z({},u),{},{value:i.value,payload:i.payload,viewBox:u,parentViewBox:void 0,fill:void 0})}),[a]);return o.createElement(ft,{value:t?n:void 0},r)}function Lt(e){var{clipPathId:t,pathRef:r,points:a,strokeDasharray:n,props:i}=e,{type:s,layout:l,connectNulls:u,needClip:c,shape:d}=i,v=yt(i,Hn),f=Z(Z({},Yt(v)),{},{fill:"none",className:"recharts-line-curve",clipPath:c?"url(#clipPath-".concat(t,")"):void 0,points:a,type:s,layout:l,connectNulls:u,strokeDasharray:n??i.strokeDasharray});return o.createElement(o.Fragment,null,a?.length>1&&o.createElement(qt,Pe({shapeType:"curve",option:d},f,{pathRef:r})),o.createElement(ai,{points:a,clipPathId:t,props:i}))}function ii(e){try{return e&&e.getTotalLength&&e.getTotalLength()||0}catch{return 0}}function oi(e){var{clipPathId:t,props:r,pathRef:a,previousPointsRef:n,longestAnimatedLengthRef:i}=e,{points:s,strokeDasharray:l,isAnimationActive:u,animationBegin:c,animationDuration:d,animationEasing:v,animateNewValues:f,width:m,height:p,onAnimationEnd:y,onAnimationStart:g}=r,h=n.current,b=ut(s,"recharts-line-"),P=o.useRef(b),[x,k]=o.useState(!1),A=!x,O=o.useCallback(()=>{typeof y=="function"&&y(),k(!1)},[y]),w=o.useCallback(()=>{typeof g=="function"&&g(),k(!0)},[g]),I=ii(a.current),E=o.useRef(0);P.current!==b&&(E.current=i.current,P.current=b);var j=E.current;return o.createElement(ni,{points:s,showLabels:A},r.children,o.createElement(dt,{animationId:b,begin:c,duration:d,isActive:u,easing:v,onAnimationEnd:O,onAnimationStart:w,key:b},S=>{var B=_(j,I+j,S),L=Math.min(B,I),$;if(u)if(l){var oe="".concat(l).split(/[,\s]+/gim).map(C=>parseFloat(C));$=ri(L,I,oe)}else $=yr(I,L);else $=l==null?void 0:String(l);if(S>0&&I>0&&(n.current=s,i.current=Math.max(i.current,L)),h){var U=h.length/s.length,V=S===1?s:s.map((C,H)=>{var ne=Math.floor(H*U);if(h[ne]){var X=h[ne];return Z(Z({},C),{},{x:_(X.x,C.x,S),y:_(X.y,C.y,S)})}return f?Z(Z({},C),{},{x:_(m*2,C.x,S),y:_(p/2,C.y,S)}):Z(Z({},C),{},{x:C.x,y:C.y})});return n.current=V,o.createElement(Lt,{props:r,points:V,clipPathId:t,pathRef:a,strokeDasharray:$})}return o.createElement(Lt,{props:r,points:s,clipPathId:t,pathRef:a,strokeDasharray:$})}),o.createElement(vt,{label:r.label}))}function li(e){var{clipPathId:t,props:r}=e,a=o.useRef(null),n=o.useRef(0),i=o.useRef(null);return o.createElement(oi,{props:r,clipPathId:t,previousPointsRef:a,longestAnimatedLengthRef:n,pathRef:i})}var si=(e,t)=>{var r,a;return{x:(r=e.x)!==null&&r!==void 0?r:void 0,y:(a=e.y)!==null&&a!==void 0?a:void 0,value:e.value,errorVal:ge(e.payload,t)}};class ci extends o.Component{render(){var{hide:t,dot:r,points:a,className:n,xAxisId:i,yAxisId:s,top:l,left:u,width:c,height:d,id:v,needClip:f,zIndex:m}=this.props;if(t)return null;var p=Y("recharts-line",n),y=v,{r:g,strokeWidth:h}=mr(r),b=et(r),P=g*2+h,x=f?"url(#clipPath-".concat(b?"":"dots-").concat(y,")"):void 0;return o.createElement(te,{zIndex:m},o.createElement(G,{className:p},f&&o.createElement("defs",null,o.createElement(mt,{clipPathId:y,xAxisId:i,yAxisId:s}),!b&&o.createElement("clipPath",{id:"clipPath-dots-".concat(y)},o.createElement("rect",{x:u-P/2,y:l-P/2,width:c+P,height:d+P}))),o.createElement(dr,{xAxisId:i,yAxisId:s,data:a,dataPointFormatter:si,errorBarOffset:0},o.createElement(li,{props:this.props,clipPathId:y}))),o.createElement(Ye,{activeDot:this.props.activeDot,points:a,mainColor:this.props.stroke,itemDataKey:this.props.dataKey,clipPath:x}))}}var gr={activeDot:!0,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!0,fill:"#fff",hide:!1,isAnimationActive:"auto",label:!1,legendType:"line",stroke:"#3182bd",strokeWidth:1,xAxisId:0,yAxisId:0,zIndex:ee.line,type:"linear"};function ui(e){var t=ce(e,gr),{activeDot:r,animateNewValues:a,animationBegin:n,animationDuration:i,animationEasing:s,connectNulls:l,dot:u,hide:c,isAnimationActive:d,label:v,legendType:f,xAxisId:m,yAxisId:p,id:y}=t,g=yt(t,Yn),{needClip:h}=_e(m,p),b=at(),P=ct(),x=ue(),k=M(E=>Vn(E,m,p,x,y));if(P!=="horizontal"&&P!=="vertical"||k==null||b==null)return null;var{height:A,width:O,x:w,y:I}=b;return o.createElement(ci,Pe({},g,{id:y,connectNulls:l,dot:u,activeDot:r,animateNewValues:a,animationBegin:n,animationDuration:i,animationEasing:s,isAnimationActive:d,hide:c,label:v,legendType:f,xAxisId:m,yAxisId:p,points:k,layout:P,height:A,width:O,left:w,top:I,needClip:h}))}function di(e){var{layout:t,xAxis:r,yAxis:a,xAxisTicks:n,yAxisTicks:i,dataKey:s,bandSize:l,displayedData:u}=e;return u.map((c,d)=>{var v=ge(c,s);if(t==="horizontal"){var f=Ie({axis:r,ticks:n,bandSize:l,entry:c,index:d}),m=le(v)?null:a.scale.map(v);return{x:f,y:m??null,value:v,payload:c}}var p=le(v)?null:r.scale.map(v),y=Ie({axis:a,ticks:i,bandSize:l,entry:c,index:d});return p==null||y==null?null:{x:p,y,value:v,payload:c}}).filter(Boolean)}function vi(e){var t=ce(e,gr),r=ue();return o.createElement(it,{id:t.id,type:"line"},a=>o.createElement(o.Fragment,null,o.createElement(ot,{legendPayload:Qn(t)}),o.createElement(ei,{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:a}),o.createElement(lt,{type:"line",id:a,data:t.data,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,hide:t.hide,isPanorama:r}),o.createElement(ui,Pe({},t,{id:a}))))}var xr=o.memo(vi,Ne);xr.displayName="Line";function re(e,t){var r,a;return(r=(a=e.graphicalItems.cartesianItems.find(n=>n.id===t))===null||a===void 0?void 0:a.xAxisId)!==null&&r!==void 0?r:Ut}function ae(e,t){var r,a;return(r=(a=e.graphicalItems.cartesianItems.find(n=>n.id===t))===null||a===void 0?void 0:a.yAxisId)!==null&&r!==void 0?r:Ut}var br=(e,t,r)=>J(e,"xAxis",re(e,t),r),Pr=(e,t,r)=>Q(e,"xAxis",re(e,t),r),Ar=(e,t,r)=>J(e,"yAxis",ae(e,t),r),kr=(e,t,r)=>Q(e,"yAxis",ae(e,t),r),fi=F([q,br,Ar,Pr,kr],(e,t,r,a,n)=>nt(e,"xAxis")?ye(t,a,!1):ye(r,n,!1)),pi=(e,t)=>t,Or=F([Le,pi],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),wr=e=>{var t=q(e),r=nt(t,"xAxis");return r?"yAxis":"xAxis"},hi=(e,t)=>{var r=wr(e);return r==="yAxis"?ae(e,t):re(e,t)},mi=(e,t,r)=>Xe(e,wr(e),hi(e,t),r),yi=F([Or,mi],(e,t)=>{var r;if(!(e==null||t==null)){var{stackId:a}=e,n=Ft(e);if(!(a==null||n==null)){var i=(r=t[a])===null||r===void 0?void 0:r.stackedData,s=i?.find(l=>l.key===n);if(s!=null)return s.map(l=>[l[0],l[1]])}}}),gi=F([q,br,Ar,Pr,kr,yi,Zt,fi,Or,Qr],(e,t,r,a,n,i,s,l,u,c)=>{var{chartData:d,dataStartIndex:v,dataEndIndex:f}=s;if(!(u==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||a==null||n==null||a.length===0||n.length===0||l==null)){var{data:m}=u,p;if(m&&m.length>0?p=m:p=d?.slice(v,f+1),p!=null)return Bi({layout:e,xAxis:t,yAxis:r,xAxisTicks:a,yAxisTicks:n,dataStartIndex:v,areaSettings:u,stackedData:i,displayedData:p,chartBaseValue:c,bandSize:l})}}),xi=["id"],bi=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function ve(){return ve=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},ve.apply(null,arguments)}function Ir(e,t){if(e==null)return{};var r,a,n=Pi(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pi(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function Nt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function he(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Nt(Object(r),!0).forEach(function(a){Ai(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Nt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Ai(e,t,r){return(t=ki(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ki(e){var t=Oi(e,"string");return typeof t=="symbol"?t:t+""}function Oi(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Se(e,t){return e&&e!=="none"?e:t}var wi=e=>{var{dataKey:t,name:r,stroke:a,fill:n,legendType:i,hide:s}=e;return[{inactive:s,dataKey:t,type:i,color:Se(a,n),value:xe(r,t),payload:e}]},Ii=o.memo(e=>{var{dataKey:t,data:r,stroke:a,strokeWidth:n,fill:i,name:s,hide:l,unit:u,tooltipType:c,id:d}=e,v={dataDefinedOnItem:r,getPosition:Te,settings:{stroke:a,strokeWidth:n,fill:i,dataKey:t,nameKey:void 0,name:xe(s,t),hide:l,type:c,color:Se(a,i),unit:u,graphicalItemId:d}};return o.createElement(st,{tooltipEntrySettings:v})});function Ei(e){var{clipPathId:t,points:r,props:a}=e,{needClip:n,dot:i,dataKey:s}=a,l=ie(a);return o.createElement(lr,{points:r,dot:i,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:l,needClip:n,clipPathId:t})}function ji(e){var{showLabels:t,children:r,points:a}=e,n=a.map(i=>{var s,l,u={x:(s=i.x)!==null&&s!==void 0?s:0,y:(l=i.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return he(he({},u),{},{value:i.value,payload:i.payload,parentViewBox:void 0,viewBox:u,fill:void 0})});return o.createElement(ft,{value:t?n:void 0},r)}function _t(e){var{points:t,baseLine:r,needClip:a,clipPathId:n,props:i}=e,{layout:s,type:l,stroke:u,connectNulls:c,isRange:d}=i,{id:v}=i,f=Ir(i,xi),m=ie(f),p=Yt(f);return o.createElement(o.Fragment,null,t?.length>1&&o.createElement(G,{clipPath:a?"url(#clipPath-".concat(n,")"):void 0},o.createElement(Be,ve({},p,{id:v,points:t,connectNulls:c,type:l,baseLine:r,layout:s,stroke:"none",className:"recharts-area-area"})),u!=="none"&&o.createElement(Be,ve({},m,{className:"recharts-area-curve",layout:s,type:l,connectNulls:c,fill:"none",points:t})),u!=="none"&&d&&Array.isArray(r)&&o.createElement(Be,ve({},m,{className:"recharts-area-curve",layout:s,type:l,connectNulls:c,fill:"none",points:r}))),o.createElement(Ei,{points:t,props:f,clipPathId:n}))}function Si(e){var t,r,{alpha:a,baseLine:n,points:i,strokeWidth:s}=e,l=(t=i[0])===null||t===void 0?void 0:t.y,u=(r=i[i.length-1])===null||r===void 0?void 0:r.y;if(!fe(l)||!fe(u))return null;var c=a*Math.abs(l-u),d=Math.max(...i.map(v=>v.x||0));return N(n)?d=Math.max(n,d):n&&Array.isArray(n)&&n.length&&(d=Math.max(...n.map(v=>v.x||0),d)),N(d)?o.createElement("rect",{x:0,y:l<u?l:l-c,width:d+(s?parseInt("".concat(s),10):1),height:Math.floor(c)}):null}function Ci(e){var t,r,{alpha:a,baseLine:n,points:i,strokeWidth:s}=e,l=(t=i[0])===null||t===void 0?void 0:t.x,u=(r=i[i.length-1])===null||r===void 0?void 0:r.x;if(!fe(l)||!fe(u))return null;var c=a*Math.abs(l-u),d=Math.max(...i.map(v=>v.y||0));return N(n)?d=Math.max(n,d):n&&Array.isArray(n)&&n.length&&(d=Math.max(...n.map(v=>v.y||0),d)),N(d)?o.createElement("rect",{x:l<u?l:l-c,y:0,width:c,height:Math.floor(d+(s?parseInt("".concat(s),10):1))}):null}function Di(e){var{alpha:t,layout:r,points:a,baseLine:n,strokeWidth:i}=e;return r==="vertical"?o.createElement(Si,{alpha:t,points:a,baseLine:n,strokeWidth:i}):o.createElement(Ci,{alpha:t,points:a,baseLine:n,strokeWidth:i})}function Ti(e){var{needClip:t,clipPathId:r,props:a,previousPointsRef:n,previousBaselineRef:i}=e,{points:s,baseLine:l,isAnimationActive:u,animationBegin:c,animationDuration:d,animationEasing:v,onAnimationStart:f,onAnimationEnd:m}=a,p=o.useMemo(()=>({points:s,baseLine:l}),[s,l]),y=ut(p,"recharts-area-"),g=Qt(),[h,b]=o.useState(!1),P=!h,x=o.useCallback(()=>{typeof m=="function"&&m(),b(!1)},[m]),k=o.useCallback(()=>{typeof f=="function"&&f(),b(!0)},[f]);if(g==null)return null;var A=n.current,O=i.current;return o.createElement(ji,{showLabels:P,points:s},a.children,o.createElement(dt,{animationId:y,begin:c,duration:d,isActive:u,easing:v,onAnimationEnd:x,onAnimationStart:k,key:y},w=>{if(A){var I=A.length/s.length,E=w===1?s:s.map((S,B)=>{var L=Math.floor(B*I);if(A[L]){var $=A[L];return he(he({},S),{},{x:_($.x,S.x,w),y:_($.y,S.y,w)})}return S}),j;return N(l)?j=_(O,l,w):le(l)||er(l)?j=_(O,0,w):j=l.map((S,B)=>{var L=Math.floor(B*I);if(Array.isArray(O)&&O[L]){var $=O[L];return he(he({},S),{},{x:_($.x,S.x,w),y:_($.y,S.y,w)})}return S}),w>0&&(n.current=E,i.current=j),o.createElement(_t,{points:E,baseLine:j,needClip:t,clipPathId:r,props:a})}return w>0&&(n.current=s,i.current=l),o.createElement(G,null,u&&o.createElement("defs",null,o.createElement("clipPath",{id:"animationClipPath-".concat(r)},o.createElement(Di,{alpha:w,points:s,baseLine:l,layout:g,strokeWidth:a.strokeWidth}))),o.createElement(G,{clipPath:"url(#animationClipPath-".concat(r,")")},o.createElement(_t,{points:s,baseLine:l,needClip:t,clipPathId:r,props:a})))}),o.createElement(vt,{label:a.label}))}function Li(e){var{needClip:t,clipPathId:r,props:a}=e,n=o.useRef(null),i=o.useRef();return o.createElement(Ti,{needClip:t,clipPathId:r,props:a,previousPointsRef:n,previousBaselineRef:i})}class Ni extends o.PureComponent{render(){var{hide:t,dot:r,points:a,className:n,top:i,left:s,needClip:l,xAxisId:u,yAxisId:c,width:d,height:v,id:f,baseLine:m,zIndex:p}=this.props;if(t)return null;var y=Y("recharts-area",n),g=f,{r:h,strokeWidth:b}=mr(r),P=et(r),x=h*2+b,k=l?"url(#clipPath-".concat(P?"":"dots-").concat(g,")"):void 0;return o.createElement(te,{zIndex:p},o.createElement(G,{className:y},l&&o.createElement("defs",null,o.createElement(mt,{clipPathId:g,xAxisId:u,yAxisId:c}),!P&&o.createElement("clipPath",{id:"clipPath-dots-".concat(g)},o.createElement("rect",{x:s-x/2,y:i-x/2,width:d+x,height:v+x}))),o.createElement(Li,{needClip:l,clipPathId:g,props:this.props})),o.createElement(Ye,{points:a,mainColor:Se(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:k}),this.props.isRange&&Array.isArray(m)&&o.createElement(Ye,{points:m,mainColor:Se(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:k}))}}var _i={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:ee.area};function $i(e){var t,{activeDot:r,animationBegin:a,animationDuration:n,animationEasing:i,connectNulls:s,dot:l,fill:u,fillOpacity:c,hide:d,isAnimationActive:v,legendType:f,stroke:m,xAxisId:p,yAxisId:y}=e,g=Ir(e,bi),h=ct(),b=ea(),{needClip:P}=_e(p,y),x=ue(),{points:k,isRange:A,baseLine:O}=(t=M(B=>gi(B,e.id,x)))!==null&&t!==void 0?t:{},w=at();if(h!=="horizontal"&&h!=="vertical"||w==null||b!=="AreaChart"&&b!=="ComposedChart")return null;var{height:I,width:E,x:j,y:S}=w;return!k||!k.length?null:o.createElement(Ni,ve({},g,{activeDot:r,animationBegin:a,animationDuration:n,animationEasing:i,baseLine:O,connectNulls:s,dot:l,fill:u,fillOpacity:c,height:I,hide:d,layout:h,isAnimationActive:v,isRange:A,legendType:f,needClip:P,points:k,stroke:m,width:E,left:j,top:S,xAxisId:p,yAxisId:y}))}var zi=(e,t,r,a,n)=>{var i=r??t;if(N(i))return i;var s=e==="horizontal"?n:a,l=s.scale.domain();if(s.type==="number"){var u=Math.max(l[0],l[1]),c=Math.min(l[0],l[1]);return i==="dataMin"?c:i==="dataMax"||u<0?u:Math.max(Math.min(l[0],l[1]),0)}return i==="dataMin"?l[0]:i==="dataMax"?l[1]:l[0]};function Bi(e){var{areaSettings:{connectNulls:t,baseValue:r,dataKey:a},stackedData:n,layout:i,chartBaseValue:s,xAxis:l,yAxis:u,displayedData:c,dataStartIndex:d,xAxisTicks:v,yAxisTicks:f,bandSize:m}=e,p=n&&n.length,y=zi(i,s,r,l,u),g=i==="horizontal",h=!1,b=c.map((x,k)=>{var A,O,w,I;if(p)I=n[d+k];else{var E=ge(x,a);Array.isArray(E)?(I=E,h=!0):I=[y,E]}var j=(A=(O=I)===null||O===void 0?void 0:O[1])!==null&&A!==void 0?A:null,S=j==null||p&&!t&&ge(x,a)==null;if(g){var B;return{x:Ie({axis:l,ticks:v,bandSize:m,entry:x,index:k}),y:S?null:(B=u.scale.map(j))!==null&&B!==void 0?B:null,value:I,payload:x}}return{x:S?null:(w=l.scale.map(j))!==null&&w!==void 0?w:null,y:Ie({axis:u,ticks:f,bandSize:m,entry:x,index:k}),value:I,payload:x}}),P;return p||h?P=b.map(x=>{var k,A=Array.isArray(x.value)?x.value[0]:null;if(g){var O;return{x:x.x,y:A!=null&&x.y!=null&&(O=u.scale.map(A))!==null&&O!==void 0?O:null,payload:x.payload}}return{x:A!=null&&(k=l.scale.map(A))!==null&&k!==void 0?k:null,y:x.y,payload:x.payload}}):P=g?u.scale.map(y):l.scale.map(y),{points:b,baseLine:P??0,isRange:h}}function Ki(e){var t=ce(e,_i),r=ue();return o.createElement(it,{id:t.id,type:"area"},a=>o.createElement(o.Fragment,null,o.createElement(ot,{legendPayload:wi(t)}),o.createElement(Ii,{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:a}),o.createElement(lt,{type:"area",id:a,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Jt(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),o.createElement($i,ve({},t,{id:a}))))}var Er=o.memo(Ki,Ne);Er.displayName="Area";var Ri="Invariant failed";function Mi(e,t){throw new Error(Ri)}function qe(){return qe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},qe.apply(null,arguments)}function gt(e){return o.createElement(qt,qe({shapeType:"rectangle",activeClassName:"recharts-active-bar",inActiveClassName:"recharts-inactive-bar"},e))}var Wi=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(a,n)=>{if(N(t))return t;var i=N(a)||le(a);return i?t(a,n):(i||Mi(),r)}},Fi=(e,t,r)=>r,Gi=(e,t)=>t,Ae=F([Le,Gi],(e,t)=>e.filter(r=>r.type==="bar").find(r=>r.id===t)),Vi=F([Ae],e=>e?.maxBarSize),Xi=(e,t,r,a)=>a,Hi=F([q,Le,re,ae,Fi],(e,t,r,a,n)=>t.filter(i=>e==="horizontal"?i.xAxisId===r:i.yAxisId===a).filter(i=>i.isPanorama===n).filter(i=>i.hide===!1).filter(i=>i.type==="bar")),Yi=(e,t,r)=>{var a=q(e),n=re(e,t),i=ae(e,t);if(!(n==null||i==null))return a==="horizontal"?Xe(e,"yAxis",i,r):Xe(e,"xAxis",n,r)},qi=(e,t)=>{var r=q(e),a=re(e,t),n=ae(e,t);if(!(a==null||n==null))return r==="horizontal"?kt(e,"xAxis",a):kt(e,"yAxis",n)},Ui=F([Hi,na,qi],za),Zi=(e,t,r)=>{var a,n,i=Ae(e,t);if(i==null)return 0;var s=re(e,t),l=ae(e,t);if(s==null||l==null)return 0;var u=q(e),c=rr(e),{maxBarSize:d}=i,v=le(d)?c:d,f,m;return u==="horizontal"?(f=J(e,"xAxis",s,r),m=Q(e,"xAxis",s,r)):(f=J(e,"yAxis",l,r),m=Q(e,"yAxis",l,r)),(a=(n=ye(f,m,!0))!==null&&n!==void 0?n:v)!==null&&a!==void 0?a:0},jr=(e,t,r)=>{var a=q(e),n=re(e,t),i=ae(e,t);if(!(n==null||i==null)){var s,l;return a==="horizontal"?(s=J(e,"xAxis",n,r),l=Q(e,"xAxis",n,r)):(s=J(e,"yAxis",i,r),l=Q(e,"yAxis",i,r)),ye(s,l)}},Ji=F([Ui,rr,ra,aa,Zi,jr,Vi],Wa),Qi=(e,t,r)=>{var a=re(e,t);if(a!=null)return J(e,"xAxis",a,r)},eo=(e,t,r)=>{var a=ae(e,t);if(a!=null)return J(e,"yAxis",a,r)},to=(e,t,r)=>{var a=re(e,t);if(a!=null)return Q(e,"xAxis",a,r)},ro=(e,t,r)=>{var a=ae(e,t);if(a!=null)return Q(e,"yAxis",a,r)},ao=F([Ji,Ae],Ga),no=F([Yi,Ae],Fa),io=F([ta,tr,Qi,eo,to,ro,ao,q,Zt,jr,no,Ae,Xi],(e,t,r,a,n,i,s,l,u,c,d,v,f)=>{var{chartData:m,dataStartIndex:p,dataEndIndex:y}=u;if(!(v==null||s==null||t==null||l!=="horizontal"&&l!=="vertical"||r==null||a==null||n==null||i==null||c==null)){var{data:g}=v,h;if(g!=null&&g.length>0?h=g:h=m?.slice(p,y+1),h!=null)return No({layout:l,barSettings:v,pos:s,parentViewBox:t,bandSize:c,xAxis:r,yAxis:a,xAxisTicks:n,yAxisTicks:i,stackedData:d,displayedData:h,offset:e,cells:f,dataStartIndex:p})}}),oo=["index"];function Ue(){return Ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},Ue.apply(null,arguments)}function lo(e,t){if(e==null)return{};var r,a,n=so(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function so(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}var Sr=o.createContext(void 0),co=e=>{var t=o.useContext(Sr);if(t!=null)return t.stackId;if(e!=null)return Jt(e)},uo=(e,t)=>"recharts-bar-stack-clip-path-".concat(e,"-").concat(t),vo=e=>{var t=o.useContext(Sr);if(t!=null){var{stackId:r}=t;return"url(#".concat(uo(r,e),")")}},Cr=e=>{var{index:t}=e,r=lo(e,oo),a=vo(t);return o.createElement(G,Ue({className:"recharts-bar-stack-layer",clipPath:a},r))},fo=["onMouseEnter","onMouseLeave","onClick"],po=["value","background","tooltipPosition"],ho=["id"],mo=["onMouseEnter","onClick","onMouseLeave"];function se(){return se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},se.apply(null,arguments)}function $t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function W(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$t(Object(r),!0).forEach(function(a){yo(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$t(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function yo(e,t,r){return(t=go(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function go(e){var t=xo(e,"string");return typeof t=="symbol"?t:t+""}function xo(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ce(e,t){if(e==null)return{};var r,a,n=bo(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function bo(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}var Po=e=>{var{dataKey:t,name:r,fill:a,legendType:n,hide:i}=e;return[{inactive:i,dataKey:t,type:n,color:a,value:xe(r,t),payload:e}]},Ao=o.memo(e=>{var{dataKey:t,stroke:r,strokeWidth:a,fill:n,name:i,hide:s,unit:l,tooltipType:u,id:c}=e,d={dataDefinedOnItem:void 0,getPosition:Te,settings:{stroke:r,strokeWidth:a,fill:n,dataKey:t,nameKey:void 0,name:xe(i,t),hide:s,type:u,color:n,unit:l,graphicalItemId:c}};return o.createElement(st,{tooltipEntrySettings:d})});function ko(e){var t=M(tt),{data:r,dataKey:a,background:n,allOtherBarProps:i}=e,{onMouseEnter:s,onMouseLeave:l,onClick:u}=i,c=Ce(i,fo),d=ar(s,a,i.id),v=nr(l),f=ir(u,a,i.id);if(!n||r==null)return null;var m=De(n);return o.createElement(te,{zIndex:Va(n,ee.barBackground)},r.map((p,y)=>{var{value:g,background:h,tooltipPosition:b}=p,P=Ce(p,po);if(!h)return null;var x=d(p,y),k=v(p,y),A=f(p,y),O=W(W(W(W(W({option:n,isActive:String(y)===t},P),{},{fill:"#eee"},h),m),rt(c,p,y)),{},{onMouseEnter:x,onMouseLeave:k,onClick:A,dataKey:a,index:y,className:"recharts-bar-background-rectangle"});return o.createElement(gt,se({key:"background-bar-".concat(y)},O))}))}function Oo(e){var{showLabels:t,children:r,rects:a}=e,n=a?.map(i=>{var s={x:i.x,y:i.y,width:i.width,lowerWidth:i.width,upperWidth:i.width,height:i.height};return W(W({},s),{},{value:i.value,payload:i.payload,parentViewBox:i.parentViewBox,viewBox:s,fill:i.fill})});return o.createElement(ft,{value:t?n:void 0},r)}function wo(e){var{shape:t,activeBar:r,baseProps:a,entry:n,index:i,dataKey:s}=e,l=M(tt),u=M(ca),c=r&&String(n.originalDataIndex)===l&&(u==null||s===u),[d,v]=o.useState(!1),[f,m]=o.useState(!1);o.useEffect(()=>{var P;return c?(v(!0),P=requestAnimationFrame(()=>{m(!0)})):m(!1),()=>{cancelAnimationFrame(P)}},[c]);var p=o.useCallback(()=>{c||v(!1)},[c]),y=c&&f,g=c||d,h;c?r===!0?h=t:h=r:h=t;var b=o.createElement(gt,se({},a,{name:String(a.name)},n,{isActive:y,option:h,index:i,dataKey:s,onTransitionEnd:p}));return g?o.createElement(te,{zIndex:ee.activeBar},o.createElement(Cr,{index:n.originalDataIndex},b)):b}function Io(e){var{shape:t,baseProps:r,entry:a,index:n,dataKey:i}=e;return o.createElement(gt,se({},r,{name:String(r.name)},a,{isActive:!1,option:t,index:n,dataKey:i}))}function Eo(e){var t,{data:r,props:a}=e,n=(t=ie(a))!==null&&t!==void 0?t:{},{id:i}=n,s=Ce(n,ho),{shape:l,dataKey:u,activeBar:c}=a,{onMouseEnter:d,onClick:v,onMouseLeave:f}=a,m=Ce(a,mo),p=ar(d,u,i),y=nr(f),g=ir(v,u,i);return r?o.createElement(o.Fragment,null,r.map((h,b)=>o.createElement(Cr,se({index:h.originalDataIndex,key:"rectangle-".concat(h?.x,"-").concat(h?.y,"-").concat(h?.value,"-").concat(b),className:"recharts-bar-rectangle"},rt(m,h,b),{onMouseEnter:p(h,b),onMouseLeave:y(h,b),onClick:g(h,b)}),c?o.createElement(wo,{shape:l,activeBar:c,baseProps:s,entry:h,index:b,dataKey:u}):o.createElement(Io,{shape:l,baseProps:s,entry:h,index:b,dataKey:u})))):null}function jo(e){var{props:t,previousRectanglesRef:r}=e,{data:a,layout:n,isAnimationActive:i,animationBegin:s,animationDuration:l,animationEasing:u,onAnimationEnd:c,onAnimationStart:d}=t,v=r.current,f=ut(t,"recharts-bar-"),[m,p]=o.useState(!1),y=!m,g=o.useCallback(()=>{typeof c=="function"&&c(),p(!1)},[c]),h=o.useCallback(()=>{typeof d=="function"&&d(),p(!0)},[d]);return o.createElement(Oo,{showLabels:y,rects:a},o.createElement(dt,{animationId:f,begin:s,duration:l,isActive:i,easing:u,onAnimationEnd:g,onAnimationStart:h,key:f},b=>{var P=b===1?a:a?.map((x,k)=>{var A=v&&v[k];if(A)return W(W({},x),{},{x:_(A.x,x.x,b),y:_(A.y,x.y,b),width:_(A.width,x.width,b),height:_(A.height,x.height,b)});if(n==="horizontal"){var O=_(0,x.height,b),w=_(x.stackedBarStart,x.y,b);return W(W({},x),{},{y:w,height:O})}var I=_(0,x.width,b),E=_(x.stackedBarStart,x.x,b);return W(W({},x),{},{width:I,x:E})});return b>0&&(r.current=P??null),P==null?null:o.createElement(G,null,o.createElement(Eo,{props:t,data:P}))}),o.createElement(vt,{label:t.label}),t.children)}function So(e){var t=o.useRef(null);return o.createElement(jo,{previousRectanglesRef:t,props:e})}var Dr=0,Co=(e,t)=>{var r=Array.isArray(e.value)?e.value[1]:e.value;return{x:e.x,y:e.y,value:r,errorVal:ge(e,t)}};class Do extends o.PureComponent{render(){var{hide:t,data:r,dataKey:a,className:n,xAxisId:i,yAxisId:s,needClip:l,background:u,id:c}=this.props;if(t||r==null)return null;var d=Y("recharts-bar",n),v=c;return o.createElement(G,{className:d,id:c},l&&o.createElement("defs",null,o.createElement(mt,{clipPathId:v,xAxisId:i,yAxisId:s})),o.createElement(G,{className:"recharts-bar-rectangles",clipPath:l?"url(#clipPath-".concat(v,")"):void 0},o.createElement(ko,{data:r,dataKey:a,background:u,allOtherBarProps:this.props}),o.createElement(So,this.props)))}}var To={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:Dr,xAxisId:0,yAxisId:0,zIndex:ee.bar};function Lo(e){var{xAxisId:t,yAxisId:r,hide:a,legendType:n,minPointSize:i,activeBar:s,animationBegin:l,animationDuration:u,animationEasing:c,isAnimationActive:d}=e,{needClip:v}=_e(t,r),f=ct(),m=ue(),p=ia(e.children,oa),y=M(b=>io(b,e.id,m,p));if(f!=="vertical"&&f!=="horizontal")return null;var g,h=y?.[0];return h==null||h.height==null||h.width==null?g=0:g=f==="vertical"?h.height/2:h.width/2,o.createElement(dr,{xAxisId:t,yAxisId:r,data:y,dataPointFormatter:Co,errorBarOffset:g},o.createElement(Do,se({},e,{layout:f,needClip:v,data:y,xAxisId:t,yAxisId:r,hide:a,legendType:n,minPointSize:i,activeBar:s,animationBegin:l,animationDuration:u,animationEasing:c,isAnimationActive:d})))}function No(e){var{layout:t,barSettings:{dataKey:r,minPointSize:a,hasCustomShape:n},pos:i,bandSize:s,xAxis:l,yAxis:u,xAxisTicks:c,yAxisTicks:d,stackedData:v,displayedData:f,offset:m,cells:p,parentViewBox:y,dataStartIndex:g}=e,h=t==="horizontal"?u:l,b=v?h.scale.domain():null,P=la({numericAxis:h}),x=h.scale.map(P);return f.map((k,A)=>{var O,w,I,E,j,S;if(v){var B=v[A+g];if(B==null)return null;O=sa(B,b)}else O=ge(k,r),Array.isArray(O)||(O=[P,O]);var L=Wi(a,Dr)(O[1],A);if(t==="horizontal"){var $,oe=u.scale.map(O[0]),U=u.scale.map(O[1]);if(oe==null||U==null)return null;w=Ot({axis:l,ticks:c,bandSize:s,offset:i.offset,entry:k,index:A}),I=($=U??oe)!==null&&$!==void 0?$:void 0,E=i.size;var V=oe-U;if(j=er(V)?0:V,S={x:w,y:m.top,width:E,height:m.height},Math.abs(L)>0&&Math.abs(j)<Math.abs(L)){var C=Ve(j||L)*(Math.abs(L)-Math.abs(j));I-=C,j+=C}}else{var H=l.scale.map(O[0]),ne=l.scale.map(O[1]);if(H==null||ne==null)return null;if(w=H,I=Ot({axis:u,ticks:d,bandSize:s,offset:i.offset,entry:k,index:A}),E=ne-H,j=i.size,S={x:m.left,y:I,width:m.width,height:j},Math.abs(L)>0&&Math.abs(E)<Math.abs(L)){var X=Ve(E||L)*(Math.abs(L)-Math.abs(E));E+=X}}if(w==null||I==null||E==null||j==null||!n&&(E===0||j===0))return null;var $e=W(W({},k),{},{stackedBarStart:x,x:w,y:I,width:E,height:j,value:v?O:O[1],payload:k,background:S,tooltipPosition:{x:w+E/2,y:I+j/2},parentViewBox:y,originalDataIndex:A},p&&p[A]&&p[A].props);return $e}).filter(Boolean)}function _o(e){var t=ce(e,To),r=co(t.stackId),a=ue();return o.createElement(it,{id:t.id,type:"bar"},n=>o.createElement(o.Fragment,null,o.createElement(ot,{legendPayload:Po(t)}),o.createElement(Ao,{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:n}),o.createElement(lt,{type:"bar",id:n,data:void 0,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,dataKey:t.dataKey,stackId:r,hide:t.hide,barSize:t.barSize,minPointSize:t.minPointSize,maxBarSize:t.maxBarSize,isPanorama:a,hasCustomShape:t.shape!=null}),o.createElement(te,{zIndex:t.zIndex},o.createElement(Lo,se({},t,{id:n})))))}var Tr=o.memo(_o,Ne);Tr.displayName="Bar";var $o=["domain","range"],zo=["domain","range"];function zt(e,t){if(e==null)return{};var r,a,n=Bo(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Bo(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function Bt(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 Ko(e,t){if(e===t)return!0;var{domain:r,range:a}=e,n=zt(e,$o),{domain:i,range:s}=t,l=zt(t,zo);return!Bt(r,i)||!Bt(a,s)?!1:Ne(n,l)}var Ro=["type"],Mo=["dangerouslySetInnerHTML","ticks","scale"],Wo=["id","scale"];function Ze(){return Ze=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},Ze.apply(null,arguments)}function Kt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function Rt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Kt(Object(r),!0).forEach(function(a){Fo(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Kt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Fo(e,t,r){return(t=Go(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Go(e){var t=Vo(e,"string");return typeof t=="symbol"?t:t+""}function Vo(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Je(e,t){if(e==null)return{};var r,a,n=Xo(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)r=i[a],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Xo(e,t){if(e==null)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;r[a]=e[a]}return r}function Ho(e){var t=Vt(),r=o.useRef(null),a=Qt(),{type:n}=e,i=Je(e,Ro),s=ya(a,"xAxis",n),l=o.useMemo(()=>{if(s!=null)return Rt(Rt({},i),{},{type:s})},[i,s]);return o.useLayoutEffect(()=>{l!=null&&(r.current===null?t(ua(l)):r.current!==l&&t(da({prev:r.current,next:l})),r.current=l)},[l,t]),o.useLayoutEffect(()=>()=>{r.current&&(t(va(r.current)),r.current=null)},[t]),null}var Yo=e=>{var{xAxisId:t,className:r}=e,a=M(tr),n=ue(),i="xAxis",s=M(h=>fa(h,i,t,n)),l=M(h=>pa(h,t)),u=M(h=>ha(h,t)),c=M(h=>ma(h,t));if(l==null||u==null||c==null)return null;var{dangerouslySetInnerHTML:d,ticks:v,scale:f}=e,m=Je(e,Mo),{id:p,scale:y}=c,g=Je(c,Wo);return o.createElement(cr,Ze({},m,g,{x:u.x,y:u.y,width:l.width,height:l.height,className:Y("recharts-".concat(i," ").concat(i),r),viewBox:a,ticks:s,axisType:i,axisId:t}))},qo={allowDataOverflow:z.allowDataOverflow,allowDecimals:z.allowDecimals,allowDuplicatedCategory:z.allowDuplicatedCategory,angle:z.angle,axisLine:me.axisLine,height:z.height,hide:!1,includeHidden:z.includeHidden,interval:z.interval,label:!1,minTickGap:z.minTickGap,mirror:z.mirror,orientation:z.orientation,padding:z.padding,reversed:z.reversed,scale:z.scale,tick:z.tick,tickCount:z.tickCount,tickLine:me.tickLine,tickSize:me.tickSize,type:z.type,niceTicks:z.niceTicks,xAxisId:0},Uo=e=>{var t=ce(e,qo);return o.createElement(o.Fragment,null,o.createElement(Ho,{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}),o.createElement(Yo,t))},we=o.memo(Uo,Ko);we.displayName="XAxis";function Qe(){return Qe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},Qe.apply(null,arguments)}function Mt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function Zo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Mt(Object(r),!0).forEach(function(a){Jo(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mt(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function Jo(e,t,r){return(t=Qo(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Qo(e){var t=el(e,"string");return typeof t=="symbol"?t:t+""}function el(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var tl={top:5,right:5,bottom:5,left:5},rl=Zo({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:tl,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},Oa),xt=o.forwardRef(function(t,r){var a,n=ce(t.categoricalChartProps,rl),{chartName:i,defaultTooltipEventType:s,validateTooltipEventTypes:l,tooltipPayloadSearcher:u,categoricalChartProps:c}=t,d={chartName:i,defaultTooltipEventType:s,validateTooltipEventTypes:l,tooltipPayloadSearcher:u,eventEmitter:void 0};return o.createElement(ga,{preloadedState:{options:d},reduxStoreName:(a=c.id)!==null&&a!==void 0?a:i},o.createElement(xa,{chartData:c.data}),o.createElement(ba,{layout:n.layout,margin:n.margin}),o.createElement(Pa,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),o.createElement(Aa,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),o.createElement(ka,Qe({},n,{ref:r})))}),al=["axis"],nl=o.forwardRef((e,t)=>o.createElement(xt,{chartName:"LineChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:al,tooltipPayloadSearcher:pt,categoricalChartProps:e,ref:t})),il=["axis","item"],ol=o.forwardRef((e,t)=>o.createElement(xt,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:il,tooltipPayloadSearcher:pt,categoricalChartProps:e,ref:t})),ll=["axis"],sl=o.forwardRef((e,t)=>o.createElement(xt,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:ll,tooltipPayloadSearcher:pt,categoricalChartProps:e,ref:t}));function dl({kind:e,data:t,color:r,chartConfig:a}){return e==="bar"?T.jsx(Ke,{config:a,className:"h-full w-full",children:T.jsxs(ol,{data:t,children:[T.jsx(Oe,{vertical:!1,strokeDasharray:"3 3"}),T.jsx(we,{dataKey:"label",tickLine:!1,axisLine:!1,tickMargin:8,minTickGap:24}),T.jsx(Re,{content:T.jsx(Me,{})}),T.jsx(Tr,{dataKey:"value",fill:r,radius:4})]})}):e==="area"?T.jsx(Ke,{config:a,className:"h-full w-full",children:T.jsxs(sl,{data:t,children:[T.jsx(Oe,{vertical:!1,strokeDasharray:"3 3"}),T.jsx(we,{dataKey:"label",tickLine:!1,axisLine:!1,tickMargin:8,minTickGap:24}),T.jsx(Re,{content:T.jsx(Me,{})}),T.jsx(Er,{dataKey:"value",type:"monotone",fill:r,fillOpacity:.2,stroke:r})]})}):T.jsx(Ke,{config:a,className:"h-full w-full",children:T.jsxs(nl,{data:t,children:[T.jsx(Oe,{vertical:!1,strokeDasharray:"3 3"}),T.jsx(we,{dataKey:"label",tickLine:!1,axisLine:!1,tickMargin:8,minTickGap:24}),T.jsx(Re,{content:T.jsx(Me,{})}),T.jsx(xr,{dataKey:"value",type:"monotone",stroke:r,strokeWidth:2,dot:!1})]})})}export{dl as default};
@@ -1,17 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- import type { IHashProvider } from '@beechcms/core'
6
-
7
- const HASH_PREFIX = 'HASH:'
8
-
9
- export class InMemoryHashProvider implements IHashProvider {
10
- async hash(plaintextPassword: string): Promise<string> {
11
- return HASH_PREFIX + plaintextPassword
12
- }
13
-
14
- async verify(plaintextPassword: string, storedHash: string): Promise<boolean> {
15
- return storedHash === HASH_PREFIX + plaintextPassword
16
- }
17
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- import type { ITokenService, IssueTokenOptions, JwtClaims } from '@beechcms/core'
6
-
7
- const TEST_TOKEN_PREFIX = 'test:'
8
-
9
- export class StaticTokenService implements ITokenService {
10
- private readonly issuedClaims = new Map<string, JwtClaims>()
11
-
12
- async issue(claims: JwtClaims, _options?: IssueTokenOptions): Promise<string> {
13
- const token = TEST_TOKEN_PREFIX + claims.sub
14
- this.issuedClaims.set(token, claims)
15
- return token
16
- }
17
-
18
- async verify(token: string): Promise<JwtClaims | null> {
19
- if (!token.startsWith(TEST_TOKEN_PREFIX)) return null
20
- return this.issuedClaims.get(token) ?? null
21
- }
22
- }
@@ -1,24 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- import bcrypt from 'bcryptjs'
6
- import type { IHashProvider } from '@beechcms/core'
7
-
8
- export const BCRYPT_SALT_ROUNDS = 10
9
-
10
- export class BcryptHashProvider implements IHashProvider {
11
- private readonly saltRounds: number
12
-
13
- constructor(saltRounds: number = BCRYPT_SALT_ROUNDS) {
14
- this.saltRounds = saltRounds
15
- }
16
-
17
- async hash(plaintextPassword: string): Promise<string> {
18
- return bcrypt.hash(plaintextPassword, this.saltRounds)
19
- }
20
-
21
- async verify(plaintextPassword: string, storedHash: string): Promise<boolean> {
22
- return bcrypt.compare(plaintextPassword, storedHash)
23
- }
24
- }
@@ -1,14 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- /** API auth error messages - used by handlers and tests */
6
- export const AUTH_ERRORS = {
7
- INVALID_REQUEST: 'Invalid request',
8
- INVALID_CREDENTIALS: 'Invalid credentials',
9
- DATABASE_ERROR: 'Database error',
10
- /** Generic message for 500 errors - does not reveal system details */
11
- GENERIC_ERROR: 'An error occurred',
12
- /** Rate limit exceeded */
13
- RATE_LIMIT_EXCEEDED: 'Too many requests',
14
- } as const
@@ -1,23 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- import { describe, it, expect } from 'vitest'
6
- import { generateRefreshToken } from './refresh'
7
-
8
- describe('generateRefreshToken', () => {
9
- it('returns a non-empty string', () => {
10
- expect(generateRefreshToken().length).toBeGreaterThan(0)
11
- })
12
-
13
- it('returns a 64-character hex string (256-bit / 32 bytes of entropy)', () => {
14
- const token = generateRefreshToken()
15
- expect(token).toHaveLength(64)
16
- expect(token).toMatch(/^[0-9a-f]+$/)
17
- })
18
-
19
- it('returns a different token on every call', () => {
20
- const tokens = new Set(Array.from({ length: 10 }, () => generateRefreshToken()))
21
- expect(tokens.size).toBe(10)
22
- })
23
- })
@@ -1,55 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- import { describe, it, expect } from 'vitest'
6
- import { InMemoryHashProvider } from './__fixtures__/in-memory-hash-provider'
7
- import { BcryptHashProvider, BCRYPT_SALT_ROUNDS } from './bcrypt-hash-provider'
8
- import { DUMMY_PASSWORD_HASH } from './login'
9
-
10
- describe('InMemoryHashProvider', () => {
11
- const provider = new InMemoryHashProvider()
12
-
13
- it('hash returns the HASH: prefix concatenated with the plaintext', async () => {
14
- expect(await provider.hash('mypassword')).toBe('HASH:mypassword')
15
- })
16
-
17
- it('verify returns true when the plaintext matches the stored hash', async () => {
18
- const hash = await provider.hash('correct')
19
- expect(await provider.verify('correct', hash)).toBe(true)
20
- })
21
-
22
- it('verify returns false when the plaintext does not match', async () => {
23
- const hash = await provider.hash('correct')
24
- expect(await provider.verify('wrong', hash)).toBe(false)
25
- })
26
-
27
- it('verify returns false for a string that does not follow the HASH: format', async () => {
28
- expect(await provider.verify('anything', 'not-a-prefixed-hash')).toBe(false)
29
- })
30
- })
31
-
32
- describe('BcryptHashProvider', () => {
33
- // Use 4 salt rounds so the test runs in milliseconds.
34
- const provider = new BcryptHashProvider(4)
35
-
36
- it('hash and verify roundtrip: correct password returns true', async () => {
37
- const hash = await provider.hash('secure-password')
38
- expect(await provider.verify('secure-password', hash)).toBe(true)
39
- })
40
-
41
- it('verify returns false for an incorrect password', async () => {
42
- const hash = await provider.hash('correct')
43
- expect(await provider.verify('incorrect', hash)).toBe(false)
44
- })
45
-
46
- it('verify returns false against the DUMMY_PASSWORD_HASH for any plaintext', async () => {
47
- expect(await provider.verify('password123', DUMMY_PASSWORD_HASH)).toBe(false)
48
- })
49
-
50
- it('DUMMY_PASSWORD_HASH bcrypt cost matches BCRYPT_SALT_ROUNDS — timing oracle invariant', () => {
51
- const match = DUMMY_PASSWORD_HASH.match(/^\$2[aby]\$(\d+)\$/)
52
- expect(match).not.toBeNull()
53
- expect(Number(match![1])).toBe(BCRYPT_SALT_ROUNDS)
54
- })
55
- })
@@ -1,62 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- import { SignJWT, jwtVerify } from 'jose'
6
- import type { ITokenService, IssueTokenOptions, JwtClaims, IClock } from '@beechcms/core'
7
-
8
- const DEFAULT_TOKEN_TTL_SECONDS = 900
9
- const DEFAULT_ALGORITHM = 'HS256' as const
10
-
11
- export interface JoseTokenServiceConfig {
12
- issuer?: string
13
- audience?: string
14
- algorithm?: 'HS256' | 'HS384' | 'HS512'
15
- }
16
-
17
- export class JoseTokenService implements ITokenService {
18
- private readonly secretBytes: Uint8Array
19
- private readonly config: JoseTokenServiceConfig
20
- private readonly clock: IClock
21
-
22
- constructor(secret: string, config: JoseTokenServiceConfig, clock: IClock) {
23
- this.secretBytes = new TextEncoder().encode(secret)
24
- if (this.secretBytes.length < 32) {
25
- throw new Error('JWT secret must be at least 32 bytes (256-bit)')
26
- }
27
- this.config = config
28
- this.clock = clock
29
- }
30
-
31
- async issue(claims: JwtClaims, options?: IssueTokenOptions): Promise<string> {
32
- const { sub, ...remainingClaims } = claims
33
- const ttlSeconds = options?.ttlSeconds ?? DEFAULT_TOKEN_TTL_SECONDS
34
- const algorithm = this.config.algorithm ?? DEFAULT_ALGORITHM
35
- const issuedAtSeconds = this.clock.nowSeconds()
36
-
37
- let builder = new SignJWT(remainingClaims)
38
- .setProtectedHeader({ alg: algorithm, typ: 'JWT' })
39
- .setSubject(sub)
40
- .setIssuedAt(issuedAtSeconds)
41
- .setExpirationTime(issuedAtSeconds + ttlSeconds)
42
-
43
- if (this.config.issuer) builder = builder.setIssuer(this.config.issuer)
44
- if (this.config.audience) builder = builder.setAudience(this.config.audience)
45
-
46
- return builder.sign(this.secretBytes)
47
- }
48
-
49
- async verify(token: string): Promise<JwtClaims | null> {
50
- try {
51
- const algorithm = this.config.algorithm ?? DEFAULT_ALGORITHM
52
- const { payload } = await jwtVerify(token, this.secretBytes, {
53
- algorithms: [algorithm],
54
- issuer: this.config.issuer,
55
- audience: this.config.audience,
56
- })
57
- return payload as JwtClaims
58
- } catch {
59
- return null
60
- }
61
- }
62
- }
@@ -1,87 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- /**
6
- * Sprint 04-pre Part B5 — JWT claims pass-through test.
7
- *
8
- * Verifies that `role` and `surname` claims issued in a JWT token are
9
- * preserved end-to-end through the authMiddleware and available on
10
- * `context.get('jwtPayload')`. Without the JwtClaims unification these
11
- * fields would be type-erased and come back undefined.
12
- */
13
-
14
- import { describe, it, expect } from 'vitest'
15
- import { Hono } from 'hono'
16
- import { SystemClock } from '@beechcms/core'
17
- import type { JwtClaims } from '@beechcms/core'
18
- import { JoseTokenService } from './jose-token-service'
19
- import { authMiddleware } from '../middleware'
20
- import type { Env, Variables } from '../types'
21
-
22
- const TEST_SECRET = 'super-secret-key-used-only-in-the-vitest-suite-min-length'
23
-
24
- describe('JWT claims pass-through (sprint 04-pre)', () => {
25
- const tokenService = new JoseTokenService(TEST_SECRET, {}, SystemClock)
26
-
27
- async function buildApp() {
28
- const app = new Hono<{ Bindings: Env; Variables: Variables }>()
29
-
30
- app.use('*', async (c, next) => {
31
- c.set('tokenService', tokenService)
32
- await next()
33
- })
34
-
35
- app.use('/protected', authMiddleware())
36
-
37
- app.get('/protected', (c) => {
38
- const payload = c.get('jwtPayload')
39
- return c.json(payload)
40
- })
41
-
42
- return app
43
- }
44
-
45
- it('role and surname claims survive the authMiddleware round-trip', async () => {
46
- const app = await buildApp()
47
-
48
- const claims: JwtClaims = {
49
- sub: 'user-123',
50
- email: 'admin@example.com',
51
- name: 'Admin',
52
- surname: 'User',
53
- role: 'admin',
54
- }
55
-
56
- const token = await tokenService.issue(claims)
57
-
58
- const res = await app.request('/protected', {
59
- method: 'GET',
60
- headers: { Authorization: `Bearer ${token}` },
61
- })
62
-
63
- expect(res.status).toBe(200)
64
- const body = await res.json<JwtClaims>()
65
- expect(body.sub).toBe('user-123')
66
- expect(body.role).toBe('admin')
67
- expect(body.surname).toBe('User')
68
- expect(body.email).toBe('admin@example.com')
69
- })
70
-
71
- it('a token without role/surname returns undefined for those fields', async () => {
72
- const app = await buildApp()
73
-
74
- const token = await tokenService.issue({ sub: 'user-456', email: 'plain@example.com' })
75
-
76
- const res = await app.request('/protected', {
77
- method: 'GET',
78
- headers: { Authorization: `Bearer ${token}` },
79
- })
80
-
81
- expect(res.status).toBe(200)
82
- const body = await res.json<JwtClaims>()
83
- expect(body.sub).toBe('user-456')
84
- expect(body.role).toBeUndefined()
85
- expect(body.surname).toBeUndefined()
86
- })
87
- })
@@ -1,100 +0,0 @@
1
- // SPDX-License-Identifier: BUSL-1.1
2
- // Copyright (c) 2024–2026 Flavio De Musso. All rights reserved.
3
- // See LICENSE in the repository root for license terms.
4
-
5
- import { describe, it, expect } from 'vitest'
6
- import { parseLoginBody, validateLoginInput, verifyPassword, DUMMY_PASSWORD_HASH } from './login'
7
- import { InMemoryHashProvider } from './__fixtures__/in-memory-hash-provider'
8
-
9
- describe('parseLoginBody', () => {
10
- it('returns credentials for a valid object body', () => {
11
- expect(parseLoginBody({ email: 'user@test.com', password: 'pass1234' }))
12
- .toEqual({ email: 'user@test.com', password: 'pass1234' })
13
- })
14
-
15
- it('trims leading and trailing whitespace from email', () => {
16
- expect(parseLoginBody({ email: ' user@test.com ', password: 'pass' }))
17
- .toEqual({ email: 'user@test.com', password: 'pass' })
18
- })
19
-
20
- it('returns null for non-object input', () => {
21
- expect(parseLoginBody(null)).toBeNull()
22
- expect(parseLoginBody('string')).toBeNull()
23
- expect(parseLoginBody(42)).toBeNull()
24
- expect(parseLoginBody(undefined)).toBeNull()
25
- })
26
-
27
- it('returns null when email field is missing', () => {
28
- expect(parseLoginBody({ password: 'pass' })).toBeNull()
29
- })
30
-
31
- it('returns null when password field is missing', () => {
32
- expect(parseLoginBody({ email: 'x@x.com' })).toBeNull()
33
- })
34
-
35
- it('returns null when email is an empty string after trimming', () => {
36
- expect(parseLoginBody({ email: ' ', password: 'pass' })).toBeNull()
37
- })
38
-
39
- it('returns null when email is not a string', () => {
40
- expect(parseLoginBody({ email: 42, password: 'pass' })).toBeNull()
41
- })
42
- })
43
-
44
- describe('validateLoginInput', () => {
45
- it('accepts a valid email and an 8-character password', () => {
46
- expect(validateLoginInput('user@test.com', '12345678')).toBe(true)
47
- })
48
-
49
- it('rejects an email without an @ sign', () => {
50
- expect(validateLoginInput('notanemail', 'password123')).toBe(false)
51
- })
52
-
53
- it('rejects an email with nothing before the @', () => {
54
- expect(validateLoginInput('@test.com', 'password123')).toBe(false)
55
- })
56
-
57
- it('rejects an email with no domain extension', () => {
58
- expect(validateLoginInput('user@nodot', 'password123')).toBe(false)
59
- })
60
-
61
- it('rejects a password shorter than 8 characters', () => {
62
- expect(validateLoginInput('user@test.com', '1234567')).toBe(false)
63
- })
64
-
65
- it('rejects a password longer than 128 characters', () => {
66
- expect(validateLoginInput('user@test.com', 'a'.repeat(129))).toBe(false)
67
- })
68
-
69
- it('accepts passwords at the lower boundary (exactly 8 characters)', () => {
70
- expect(validateLoginInput('user@test.com', 'a'.repeat(8))).toBe(true)
71
- })
72
-
73
- it('accepts passwords at the upper boundary (exactly 128 characters)', () => {
74
- expect(validateLoginInput('user@test.com', 'a'.repeat(128))).toBe(true)
75
- })
76
-
77
- it('rejects a password made only of whitespace', () => {
78
- expect(validateLoginInput('user@test.com', ' '.repeat(8))).toBe(false)
79
- })
80
- })
81
-
82
- describe('verifyPassword', () => {
83
- const hashProvider = new InMemoryHashProvider()
84
-
85
- it('returns true when the plaintext matches the stored hash', async () => {
86
- const hash = await hashProvider.hash('mypassword')
87
- expect(await verifyPassword('mypassword', hash, hashProvider)).toBe(true)
88
- })
89
-
90
- it('returns false when the plaintext does not match', async () => {
91
- const hash = await hashProvider.hash('correct')
92
- expect(await verifyPassword('wrong', hash, hashProvider)).toBe(false)
93
- })
94
- })
95
-
96
- describe('DUMMY_PASSWORD_HASH', () => {
97
- it('has bcrypt format so constant-time comparison runs even when no user is found', () => {
98
- expect(DUMMY_PASSWORD_HASH).toMatch(/^\$2[aby]\$\d+\$/)
99
- })
100
- })