edsger 0.81.1 → 0.83.0

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 (85) hide show
  1. package/README.md +63 -0
  2. package/assets/README.md +21 -18
  3. package/assets/diagrams/base.yaml +351 -0
  4. package/assets/diagrams/csharp.yaml +48 -0
  5. package/assets/diagrams/dart.yaml +41 -0
  6. package/assets/diagrams/go.yaml +44 -0
  7. package/assets/diagrams/java.yaml +43 -0
  8. package/assets/diagrams/python.yaml +41 -0
  9. package/assets/diagrams/typescript.yaml +45 -0
  10. package/assets/diagrams-viewer/assets/abnfDiagram-VRR7QNED-BuBTl7CD.js +1 -0
  11. package/assets/diagrams-viewer/assets/arc-OMyuAfpK.js +1 -0
  12. package/assets/diagrams-viewer/assets/architectureDiagram-ZJ3FMSHR-BtZuD4Oc.js +36 -0
  13. package/assets/diagrams-viewer/assets/blockDiagram-677ZJIJ3-BXUV3Kw8.js +132 -0
  14. package/assets/diagrams-viewer/assets/c4Diagram-LMCZKHZV-CB6FLms7.js +10 -0
  15. package/assets/diagrams-viewer/assets/channel-DfIqGUHQ.js +1 -0
  16. package/assets/diagrams-viewer/assets/chunk-2Q5K7J3B-mPN4SRuj.js +1 -0
  17. package/assets/diagrams-viewer/assets/chunk-32BRIVSS-DVv1-dcH.js +1 -0
  18. package/assets/diagrams-viewer/assets/chunk-5VM5RSS4-CV1HWp5i.js +15 -0
  19. package/assets/diagrams-viewer/assets/chunk-EX3LRPZG-Dka-2CXP.js +231 -0
  20. package/assets/diagrams-viewer/assets/chunk-JWPE2WC7-D18DLD3z.js +1 -0
  21. package/assets/diagrams-viewer/assets/chunk-MOJQB5TN-DZ8recee.js +88 -0
  22. package/assets/diagrams-viewer/assets/chunk-RYQCIY6F-D-T7U7G_.js +1 -0
  23. package/assets/diagrams-viewer/assets/chunk-V7JOEXUC-CycRbumY.js +206 -0
  24. package/assets/diagrams-viewer/assets/chunk-VR4S4FIN-CgtEJekm.js +1 -0
  25. package/assets/diagrams-viewer/assets/chunk-XXDRQBXY-N1fSDz2n.js +1 -0
  26. package/assets/diagrams-viewer/assets/classDiagram-OUVF2IWQ-D7S3taPH.js +1 -0
  27. package/assets/diagrams-viewer/assets/classDiagram-v2-EOCWNBFH-D7S3taPH.js +1 -0
  28. package/assets/diagrams-viewer/assets/cose-bilkent-JH36ORCC-x2DnNSLL.js +1 -0
  29. package/assets/diagrams-viewer/assets/cynefin-VYW2F7L2-CWCJCs-i.js +178 -0
  30. package/assets/diagrams-viewer/assets/cynefinDiagram-TSTJHNR4-mn39JWqG.js +62 -0
  31. package/assets/diagrams-viewer/assets/cytoscape.esm-CUqq0XTU.js +331 -0
  32. package/assets/diagrams-viewer/assets/dagre-VKFMJZFB-iOjB5Pax.js +4 -0
  33. package/assets/diagrams-viewer/assets/defaultLocale-DX6XiGOO.js +1 -0
  34. package/assets/diagrams-viewer/assets/diagram-FQU43EPY-DIFXEG6K.js +3 -0
  35. package/assets/diagrams-viewer/assets/diagram-G47NLZAW-CUFys0Kk.js +24 -0
  36. package/assets/diagrams-viewer/assets/diagram-NH7WQ7WH-ByXjnNJR.js +24 -0
  37. package/assets/diagrams-viewer/assets/diagram-OA4YK3LP-B7VCnnms.js +30 -0
  38. package/assets/diagrams-viewer/assets/diagram-WEI45ONY-DdmQeP2M.js +41 -0
  39. package/assets/diagrams-viewer/assets/diagrams-DFlErBCY.js +314 -0
  40. package/assets/diagrams-viewer/assets/diagrams-hdYg_gGB.css +1 -0
  41. package/assets/diagrams-viewer/assets/ebnfDiagram-CCIWWBDH-B54UVMil.js +1 -0
  42. package/assets/diagrams-viewer/assets/erDiagram-Q63AITRT-zkOgYlyz.js +85 -0
  43. package/assets/diagrams-viewer/assets/flowDiagram-23GEKE2U-CCNIfraz.js +156 -0
  44. package/assets/diagrams-viewer/assets/ganttDiagram-NO4QXBWP-DCn2zVSV.js +292 -0
  45. package/assets/diagrams-viewer/assets/gitGraphDiagram-IHSO6WYX-lB6SW9xm.js +106 -0
  46. package/assets/diagrams-viewer/assets/graph-C2PyVmSI.js +1 -0
  47. package/assets/diagrams-viewer/assets/infoDiagram-FWYZ7A6U-CvGfGSmH.js +2 -0
  48. package/assets/diagrams-viewer/assets/init-Gi6I4Gst.js +1 -0
  49. package/assets/diagrams-viewer/assets/ishikawaDiagram-FXEZZL3T-DnwhjgE5.js +70 -0
  50. package/assets/diagrams-viewer/assets/journeyDiagram-5HDEW3XC-C8LVhqZM.js +139 -0
  51. package/assets/diagrams-viewer/assets/kanban-definition-HUTT4EX6-PYOrsIQc.js +89 -0
  52. package/assets/diagrams-viewer/assets/katex-C5jXJg4s.js +257 -0
  53. package/assets/diagrams-viewer/assets/layout-HEHzrzvT.js +1 -0
  54. package/assets/diagrams-viewer/assets/linear-CIU4B3PA.js +1 -0
  55. package/assets/diagrams-viewer/assets/map-BQHxRNoK.js +1 -0
  56. package/assets/diagrams-viewer/assets/mindmap-definition-LN4V7U3C-B-HjOMSw.js +96 -0
  57. package/assets/diagrams-viewer/assets/ordinal-Cboi1Yqb.js +1 -0
  58. package/assets/diagrams-viewer/assets/pegDiagram-2B236MQR-dAvsUVxy.js +1 -0
  59. package/assets/diagrams-viewer/assets/pieDiagram-ENE6RG2P-W-6EgmyD.js +39 -0
  60. package/assets/diagrams-viewer/assets/quadrantDiagram-ABIIQ3AL-SlUlWOO8.js +7 -0
  61. package/assets/diagrams-viewer/assets/railroadDiagram-RFXS5EU6-KjtAtTVy.js +1 -0
  62. package/assets/diagrams-viewer/assets/requirementDiagram-TGXJPOKE-DZtlwaER.js +84 -0
  63. package/assets/diagrams-viewer/assets/sankeyDiagram-HTMAVEWB-1Ae4oRc3.js +40 -0
  64. package/assets/diagrams-viewer/assets/sequenceDiagram-DBY2YBRQ-DU-x0cLP.js +162 -0
  65. package/assets/diagrams-viewer/assets/sizeCapture-X5ZJPWSS-Cemh16BZ.js +1 -0
  66. package/assets/diagrams-viewer/assets/stateDiagram-2N3HPSRC-CtfrA6gP.js +1 -0
  67. package/assets/diagrams-viewer/assets/stateDiagram-v2-6OUMAXLB-BU13FASH.js +1 -0
  68. package/assets/diagrams-viewer/assets/swimlanes-5IMT3BWC-BkZY9GJ7.js +2 -0
  69. package/assets/diagrams-viewer/assets/swimlanesDiagram-G3AALYLV-03GXtgC-.js +8 -0
  70. package/assets/diagrams-viewer/assets/timeline-definition-FHXFAJF6-DikyXYB3.js +120 -0
  71. package/assets/diagrams-viewer/assets/vennDiagram-L72KCM5P-C_7veK57.js +34 -0
  72. package/assets/diagrams-viewer/assets/wardleyDiagram-EHGQE667-Das_YJGv.js +78 -0
  73. package/assets/diagrams-viewer/assets/xychartDiagram-FW5EYKEG-B5fwef3a.js +7 -0
  74. package/assets/diagrams-viewer/diagrams.html +14 -0
  75. package/assets/diagrams-viewer-single.html +3576 -0
  76. package/assets/manifest.yaml +5 -1
  77. package/assets/schema/diagrams.schema.json +100 -0
  78. package/assets/skills/diagram/SKILL.md +70 -0
  79. package/assets/viewer/assets/index-C7hwGkuU.js +3 -0
  80. package/assets/viewer/assets/index-Dhc-7q5o.css +1 -0
  81. package/assets/viewer/index.html +14 -0
  82. package/assets/viewer-single.html +16 -0
  83. package/dist/index.js +776 -38
  84. package/dist/index.js.map +1 -1
  85. package/package.json +4 -3
@@ -3,7 +3,7 @@
3
3
  schemaVersion: 1
4
4
  name: edsger-assets
5
5
  version: 0.1.0
6
- description: Industrial-grade benchmark rubrics and PR review standards.
6
+ description: Industrial-grade benchmark rubrics, PR review standards, and diagram catalogs.
7
7
 
8
8
  # Standard kinds shipped in this repository.
9
9
  kinds:
@@ -15,6 +15,10 @@ kinds:
15
15
  dir: review
16
16
  base: base
17
17
  schema: schema/review.schema.json
18
+ diagrams:
19
+ dir: diagrams
20
+ base: base
21
+ schema: schema/diagrams.schema.json
18
22
 
19
23
  # Languages with dedicated overlays. `id` matches the detector in languages.yaml.
20
24
  # `aliases` are accepted on the CLI (e.g. `--lang ts`).
@@ -0,0 +1,100 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://github.com/stevenzg/edsger-assets/schema/diagrams.schema.json",
4
+ "title": "Edsger Diagram Catalog",
5
+ "description": "A catalog of professional software diagrams an agent can generate for a repository. A `base` catalog is merged with zero or more language overlays to form the effective catalog. For each project the agent selects the diagrams whose `detect` signals and `appliesWhen` guidance match the repository's characteristics, then emits Mermaid source for each.",
6
+ "type": "object",
7
+ "required": ["id", "name", "version", "kind", "groups"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
11
+ "name": { "type": "string" },
12
+ "version": { "type": "string" },
13
+ "kind": { "const": "diagrams" },
14
+ "extends": {
15
+ "description": "id of a catalog this overlay merges on top of (usually 'base').",
16
+ "type": ["string", "null"]
17
+ },
18
+ "appliesTo": {
19
+ "description": "Language ids this catalog targets, or ['*'] for any.",
20
+ "type": "array",
21
+ "items": { "type": "string" },
22
+ "default": ["*"]
23
+ },
24
+ "groups": {
25
+ "type": "array",
26
+ "minItems": 1,
27
+ "items": { "$ref": "#/definitions/group" }
28
+ }
29
+ },
30
+ "definitions": {
31
+ "group": {
32
+ "type": "object",
33
+ "required": ["id", "name", "diagrams"],
34
+ "additionalProperties": false,
35
+ "properties": {
36
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
37
+ "name": { "type": "string" },
38
+ "description": { "type": "string" },
39
+ "diagrams": {
40
+ "type": "array",
41
+ "minItems": 1,
42
+ "items": { "$ref": "#/definitions/diagram" }
43
+ }
44
+ }
45
+ },
46
+ "diagram": {
47
+ "type": "object",
48
+ "required": ["id", "title", "type", "appliesWhen", "guidance"],
49
+ "additionalProperties": false,
50
+ "properties": {
51
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
52
+ "title": { "type": "string" },
53
+ "type": {
54
+ "description": "The Mermaid diagram type to emit.",
55
+ "type": "string",
56
+ "enum": [
57
+ "flowchart",
58
+ "sequenceDiagram",
59
+ "classDiagram",
60
+ "stateDiagram-v2",
61
+ "erDiagram",
62
+ "journey",
63
+ "gantt",
64
+ "gitGraph",
65
+ "mindmap",
66
+ "timeline",
67
+ "requirementDiagram",
68
+ "quadrantChart",
69
+ "pie",
70
+ "sankey-beta",
71
+ "C4Context",
72
+ "C4Container",
73
+ "C4Component",
74
+ "C4Deployment",
75
+ "block-beta",
76
+ "architecture-beta"
77
+ ]
78
+ },
79
+ "appliesWhen": {
80
+ "description": "Prose describing the project characteristics that make this diagram valuable, so the agent can decide whether to include it.",
81
+ "type": "string"
82
+ },
83
+ "detect": {
84
+ "description": "Coarse signals (file globs, marker filenames, or keywords) that hint this diagram is relevant. '*' means 'almost always useful'. Advisory only — the agent still decides from real evidence.",
85
+ "type": "array",
86
+ "items": { "type": "string" },
87
+ "default": []
88
+ },
89
+ "guidance": {
90
+ "description": "How to construct this diagram from the repository: what to read, what nodes/edges to include, and how to keep it faithful and legible.",
91
+ "type": "string"
92
+ },
93
+ "references": {
94
+ "type": "array",
95
+ "items": { "type": "string" }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: diagram
3
+ description: >
4
+ Generate professional software diagrams (architecture/C4, ER, sequence,
5
+ flowchart, class, state, data-flow, deployment, and more) tailored to a
6
+ repository's characteristics, as renderable Mermaid, and write them to a
7
+ viewable report. Use when the user asks to diagram, visualize, map, or chart a
8
+ codebase's architecture, database schema, request flow, or structure.
9
+ ---
10
+
11
+ # Diagram a repository
12
+
13
+ You will inspect the repository in the current working directory, decide which
14
+ professional diagrams genuinely fit **this** project, and emit each as valid
15
+ **Mermaid** so it renders in Markdown/HTML.
16
+
17
+ ## 1. Prefer the CLI if it is installed
18
+
19
+ If the `edsger` CLI is available, it runs the agent and produces a viewable HTML
20
+ dashboard — use it:
21
+
22
+ ```bash
23
+ command -v edsger >/dev/null 2>&1 && edsger diagram || echo "no-cli"
24
+ ```
25
+
26
+ If it ran, summarise `.edsger/diagrams/diagrams.md` for the user and stop.
27
+ Otherwise continue with the native flow below.
28
+
29
+ ## 2. Detect the language(s)
30
+
31
+ Look for manifest files to decide which overlays apply: `package.json`/`tsconfig.json`
32
+ → typescript; `pyproject.toml`/`requirements.txt` → python; `go.mod` → go;
33
+ `*.csproj`/`*.sln` → csharp; `pom.xml`/`build.gradle` → java; `pubspec.yaml` → dart.
34
+ A repo may match several.
35
+
36
+ ## 3. Load the catalog
37
+
38
+ Read the base catalog and any matching language overlays from this plugin:
39
+
40
+ - `${CLAUDE_PLUGIN_ROOT}/diagrams/base.yaml` (always)
41
+ - `${CLAUDE_PLUGIN_ROOT}/diagrams/<language>.yaml` (for each detected language)
42
+
43
+ Merge overlays onto the base **by id** (group ids and diagram ids). If the repo
44
+ has a `.edsger/diagrams/` directory, those files override the bundled catalog.
45
+
46
+ ## 4. Profile the project and select diagrams
47
+
48
+ Explore the repo (Read/Grep/Glob, read-only) and characterise it: what kind of
49
+ project is it (service, library, CLI, SPA, data pipeline, monorepo…), what does
50
+ it integrate with, does it own a database, does it deploy somewhere?
51
+
52
+ For each catalog diagram, use its `detect` signals and `appliesWhen` guidance to
53
+ decide whether it adds value **for this repo**. Only include diagrams the
54
+ evidence supports — a library needs different diagrams than a microservice. Never
55
+ invent structure that is not in the code.
56
+
57
+ ## 5. Generate faithful Mermaid
58
+
59
+ For each selected diagram, follow its `guidance` and produce **valid Mermaid** of
60
+ the specified `type`, grounded in real files (record the files as evidence). Keep
61
+ each diagram to roughly one screen and legible; prefer faithful over exhaustive.
62
+ Validate the Mermaid syntax mentally before emitting it.
63
+
64
+ ## 6. Write the report
65
+
66
+ Write `.edsger/diagrams/diagrams.md` containing: a short project profile, then one
67
+ section per diagram with a heading, a one-line description of what it shows and
68
+ why it applies, the fenced ` ```mermaid ` block, and the evidence files. Group by
69
+ catalog group (Architecture, Behaviour, Data, Deployment, Process). Then give the
70
+ user a concise summary of which diagrams you produced and why.
@@ -0,0 +1,3 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))l(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&l(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function l(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Cn,_e,Vo,Gt,Ci,zo,Wo,hr,yn,Ql,$o,Fr,Sr,br,Tn={},Mn=[],mc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Rn=Array.isArray;function Nt(e,t){for(var n in t)e[n]=t[n];return e}function Hr(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function gc(e,t,n){var l,i,s,c={};for(s in t)s=="key"?l=t[s]:s=="ref"?i=t[s]:c[s]=t[s];if(arguments.length>2&&(c.children=arguments.length>3?Cn.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(s in e.defaultProps)c[s]===void 0&&(c[s]=e.defaultProps[s]);return Sn(e,c,l,i,null)}function Sn(e,t,n,l,i){var s={type:e,props:t,key:n,ref:l,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Vo,__i:-1,__u:0};return i==null&&_e.vnode!=null&&_e.vnode(s),s}function Nn(e){return e.children}function bn(e,t){this.props=e,this.context=t}function Pl(e,t){if(t==null)return e.__?Pl(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?Pl(e):null}function vc(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,l=[],i=[],s=Nt({},t);s.__v=t.__v+1,_e.vnode&&_e.vnode(s),Or(e.__P,s,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,l,n??Pl(t),!!(32&t.__u),i),s.__v=t.__v,s.__.__k[s.__i]=s,Bo(l,s,i),t.__e=t.__=null,s.__e!=n&&Io(s)}}function Io(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),Io(e)}function Ri(e){(!e.__d&&(e.__d=!0)&&Gt.push(e)&&!An.__r++||Ci!=_e.debounceRendering)&&((Ci=_e.debounceRendering)||zo)(An)}function An(){try{for(var e,t=1;Gt.length;)Gt.length>t&&Gt.sort(Wo),e=Gt.shift(),t=Gt.length,vc(e)}finally{Gt.length=An.__r=0}}function Go(e,t,n,l,i,s,c,f,d,_,w){var m,h,b,x,M,E,R,S=l&&l.__k||Mn,F=t.length;for(d=wc(n,t,S,d,F),m=0;m<F;m++)(b=n.__k[m])!=null&&(h=b.__i!=-1&&S[b.__i]||Tn,b.__i=m,E=Or(e,b,h,i,s,c,f,d,_,w),x=b.__e,b.ref&&h.ref!=b.ref&&(h.ref&&Vr(h.ref,null,b),w.push(b.ref,b.__c||x,b)),M==null&&x!=null&&(M=x),(R=!!(4&b.__u))||h.__k===b.__k?(d=Uo(b,d,e,R),R&&h.__e&&(h.__e=null)):typeof b.type=="function"&&E!==void 0?d=E:x&&(d=x.nextSibling),b.__u&=-7);return n.__e=M,d}function wc(e,t,n,l,i){var s,c,f,d,_,w=n.length,m=w,h=0;for(e.__k=new Array(i),s=0;s<i;s++)(c=t[s])!=null&&typeof c!="boolean"&&typeof c!="function"?(typeof c=="string"||typeof c=="number"||typeof c=="bigint"||c.constructor==String?c=e.__k[s]=Sn(null,c,null,null,null):Rn(c)?c=e.__k[s]=Sn(Nn,{children:c},null,null,null):c.constructor===void 0&&c.__b>0?c=e.__k[s]=Sn(c.type,c.props,c.key,c.ref?c.ref:null,c.__v):e.__k[s]=c,d=s+h,c.__=e,c.__b=e.__b+1,f=null,(_=c.__i=yc(c,n,d,m))!=-1&&(m--,(f=n[_])&&(f.__u|=2)),f==null||f.__v==null?(_==-1&&(i>w?h--:i<w&&h++),typeof c.type!="function"&&(c.__u|=4)):_!=d&&(_==d-1?h--:_==d+1?h++:(_>d?h--:h++,c.__u|=4))):e.__k[s]=null;if(m)for(s=0;s<w;s++)(f=n[s])!=null&&!(2&f.__u)&&(f.__e==l&&(l=Pl(f)),jo(f,f));return l}function Uo(e,t,n,l){var i,s;if(typeof e.type=="function"){for(i=e.__k,s=0;i&&s<i.length;s++)i[s]&&(i[s].__=e,t=Uo(i[s],t,n,l));return t}e.__e!=t&&(l&&(t&&e.type&&!t.parentNode&&(t=Pl(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function yc(e,t,n,l){var i,s,c,f=e.key,d=e.type,_=t[n],w=_!=null&&(2&_.__u)==0;if(_===null&&f==null||w&&f==_.key&&d==_.type)return n;if(l>(w?1:0)){for(i=n-1,s=n+1;i>=0||s<t.length;)if((_=t[c=i>=0?i--:s++])!=null&&!(2&_.__u)&&f==_.key&&d==_.type)return c}return-1}function Ni(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||mc.test(t)?n:n+"px"}function dn(e,t,n,l,i){var s,c;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof l=="string"&&(e.style.cssText=l=""),l)for(t in l)n&&t in n||Ni(e.style,t,"");if(n)for(t in n)l&&n[t]==l[t]||Ni(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")s=t!=(t=t.replace($o,"$1")),c=t.toLowerCase(),t=c in e||t=="onFocusOut"||t=="onFocusIn"?c.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=n,n?l?n[Ql]=l[Ql]:(n[Ql]=Fr,e.addEventListener(t,s?br:Sr,s)):e.removeEventListener(t,s?br:Sr,s);else{if(i=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Fi(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[yn]==null)t[yn]=Fr++;else if(t[yn]<n[Ql])return;return n(_e.event?_e.event(t):t)}}}function Or(e,t,n,l,i,s,c,f,d,_){var w,m,h,b,x,M,E,R,S,F,D,U,L,K,B,J,$=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(d=!!(32&n.__u),s=[f=t.__e=n.__e]),(w=_e.__b)&&w(t);e:if(typeof $=="function"){m=c.length;try{if(S=t.props,F=$.prototype&&$.prototype.render,D=(w=$.contextType)&&l[w.__c],U=w?D?D.props.value:w.__:l,n.__c?R=(h=t.__c=n.__c).__=h.__E:(F?t.__c=h=new $(S,U):(t.__c=h=new bn(S,U),h.constructor=$,h.render=bc),D&&D.sub(h),h.state||(h.state={}),h.__n=l,b=h.__d=!0,h.__h=[],h._sb=[]),F&&h.__s==null&&(h.__s=h.state),F&&$.getDerivedStateFromProps!=null&&(h.__s==h.state&&(h.__s=Nt({},h.__s)),Nt(h.__s,$.getDerivedStateFromProps(S,h.__s))),x=h.props,M=h.state,h.__v=t,b)F&&$.getDerivedStateFromProps==null&&h.componentWillMount!=null&&h.componentWillMount(),F&&h.componentDidMount!=null&&h.__h.push(h.componentDidMount);else{if(F&&$.getDerivedStateFromProps==null&&S!==x&&h.componentWillReceiveProps!=null&&h.componentWillReceiveProps(S,U),t.__v==n.__v||!h.__e&&h.shouldComponentUpdate!=null&&h.shouldComponentUpdate(S,h.__s,U)===!1){t.__v!=n.__v&&(h.props=S,h.state=h.__s,h.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(A){A&&(A.__=t)}),Mn.push.apply(h.__h,h._sb),h._sb=[],h.__h.length&&c.push(h);break e}h.componentWillUpdate!=null&&h.componentWillUpdate(S,h.__s,U),F&&h.componentDidUpdate!=null&&h.__h.push(function(){h.componentDidUpdate(x,M,E)})}if(h.context=U,h.props=S,h.__P=e,h.__e=!1,L=_e.__r,K=0,F)h.state=h.__s,h.__d=!1,L&&L(t),w=h.render(h.props,h.state,h.context),Mn.push.apply(h.__h,h._sb),h._sb=[];else do h.__d=!1,L&&L(t),w=h.render(h.props,h.state,h.context),h.state=h.__s;while(h.__d&&++K<25);h.state=h.__s,h.getChildContext!=null&&(l=Nt(Nt({},l),h.getChildContext())),F&&!b&&h.getSnapshotBeforeUpdate!=null&&(E=h.getSnapshotBeforeUpdate(x,M)),B=w!=null&&w.type===Nn&&w.key==null?Yo(w.props.children):w,f=Go(e,Rn(B)?B:[B],t,n,l,i,s,c,f,d,_),h.base=t.__e,t.__u&=-161,h.__h.length&&c.push(h),R&&(h.__E=h.__=null)}catch(A){if(c.length=m,t.__v=null,d||s!=null)if(A.then){for(t.__u|=d?160:128;f&&f.nodeType==8&&f.nextSibling;)f=f.nextSibling;s!=null&&(s[s.indexOf(f)]=null),t.__e=f}else{if(s!=null)for(J=s.length;J--;)Hr(s[J]);kr(t)}else t.__e=n.__e,!t.__k&&n.__k&&(t.__k=n.__k),A.then||kr(t);_e.__e(A,t,n)}}else s==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):f=t.__e=Sc(n.__e,t,n,l,i,s,c,d,_);return(w=_e.diffed)&&w(t),128&t.__u?void 0:f}function kr(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(kr))}function Bo(e,t,n){for(var l=0;l<n.length;l++)Vr(n[l],n[++l],n[++l]);_e.__c&&_e.__c(t,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(s){s.call(i)})}catch(s){_e.__e(s,i.__v)}})}function Yo(e){return typeof e!="object"||e==null||e.__b>0?e:Rn(e)?e.map(Yo):e.constructor!==void 0?null:Nt({},e)}function Sc(e,t,n,l,i,s,c,f,d){var _,w,m,h,b,x,M,E=n.props||Tn,R=t.props,S=t.type;if(S=="svg"?i="http://www.w3.org/2000/svg":S=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),s!=null){for(_=0;_<s.length;_++)if((b=s[_])&&"setAttribute"in b==!!S&&(S?b.localName==S:b.nodeType==3)){e=b,s[_]=null;break}}if(e==null){if(S==null)return document.createTextNode(R);e=document.createElementNS(i,S,R.is&&R),f&&(_e.__m&&_e.__m(t,s),f=!1),s=null}if(S==null)E===R||f&&e.data==R||(e.data=R);else{if(s=S=="textarea"&&R.defaultValue!=null?null:s&&Cn.call(e.childNodes),!f&&s!=null)for(E={},_=0;_<e.attributes.length;_++)E[(b=e.attributes[_]).name]=b.value;for(_ in E)b=E[_],_=="dangerouslySetInnerHTML"?m=b:_=="children"||_ in R||_=="value"&&"defaultValue"in R||_=="checked"&&"defaultChecked"in R||dn(e,_,null,b,i);for(_ in R)b=R[_],_=="children"?h=b:_=="dangerouslySetInnerHTML"?w=b:_=="value"?x=b:_=="checked"?M=b:f&&typeof b!="function"||E[_]===b||dn(e,_,b,E[_],i);if(w)f||m&&(w.__html==m.__html||w.__html==e.innerHTML)||(e.innerHTML=w.__html),t.__k=[];else if(m&&(e.innerHTML=""),Go(t.type=="template"?e.content:e,Rn(h)?h:[h],t,n,l,S=="foreignObject"?"http://www.w3.org/1999/xhtml":i,s,c,s?s[0]:n.__k&&Pl(n,0),f,d),s!=null)for(_=s.length;_--;)Hr(s[_]);f&&S!="textarea"||(_="value",S=="progress"&&x==null?e.removeAttribute("value"):x!=null&&(x!==e[_]||S=="progress"&&!x||S=="option"&&x!=E[_])&&dn(e,_,x,E[_],i),_="checked",M!=null&&M!=e[_]&&dn(e,_,M,E[_],i))}return e}function Vr(e,t,n){try{if(typeof e=="function"){var l=typeof e.__u=="function";l&&e.__u(),l&&t==null||(e.__u=e(t))}else e.current=t}catch(i){_e.__e(i,n)}}function jo(e,t,n){var l,i;if(_e.unmount&&_e.unmount(e),(l=e.ref)&&(l.current&&l.current!=e.__e||Vr(l,null,t)),(l=e.__c)!=null){if(l.componentWillUnmount)try{l.componentWillUnmount()}catch(s){_e.__e(s,t)}l.base=l.__P=l.__n=null}if(l=e.__k)for(i=0;i<l.length;i++)l[i]&&jo(l[i],t,n||typeof e.type!="function");n||Hr(e.__e),e.__c=e.__=e.__e=void 0}function bc(e,t,n){return this.constructor(e,n)}function kc(e,t,n){var l,i,s,c;t==document&&(t=document.documentElement),_e.__&&_e.__(e,t),i=(l=!1)?null:t.__k,s=[],c=[],Or(t,e=t.__k=gc(Nn,null,[e]),i||Tn,Tn,t.namespaceURI,i?null:t.firstChild?Cn.call(t.childNodes):null,s,i?i.__e:t.firstChild,l,c),Bo(s,e,c),e.props.children=null}Cn=Mn.slice,_e={__e:function(e,t,n,l){for(var i,s,c;t=t.__;)if((i=t.__c)&&!i.__)try{if((s=i.constructor)&&s.getDerivedStateFromError!=null&&(i.setState(s.getDerivedStateFromError(e)),c=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,l||{}),c=i.__d),c)return i.__E=i}catch(f){e=f}throw e}},Vo=0,bn.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Nt({},this.state),typeof e=="function"&&(e=e(Nt({},n),this.props)),e&&Nt(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ri(this))},bn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ri(this))},bn.prototype.render=Nn,Gt=[],zo=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Wo=function(e,t){return e.__v.__b-t.__v.__b},An.__r=0,hr=Math.random().toString(8),yn="__d"+hr,Ql="__a"+hr,$o=/(PointerCapture)$|Capture$/i,Fr=0,Sr=Fi(!1),br=Fi(!0);var xc=0;function v(e,t,n,l,i,s){t||(t={});var c,f,d=t;if("ref"in d)for(f in d={},t)f=="ref"?c=t[f]:d[f]=t[f];var _={type:e,props:d,key:n,ref:c,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--xc,__i:-1,__u:0,__source:i,__self:s};if(typeof e=="function"&&(c=e.defaultProps))for(f in c)d[f]===void 0&&(d[f]=c[f]);return _e.vnode&&_e.vnode(_),_}var tn,Te,_r,Hi,Dn=0,Ko=[],Ae=_e,Oi=Ae.__b,Vi=Ae.__r,zi=Ae.diffed,Wi=Ae.__c,$i=Ae.unmount,Ii=Ae.__;function zr(e,t){Ae.__h&&Ae.__h(Te,e,Dn||t),Dn=0;var n=Te.__H||(Te.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function kn(e){return Dn=1,Tc(Qo,e)}function Tc(e,t,n){var l=zr(tn++,2);if(l.t=e,!l.__c&&(l.__=[Qo(void 0,t),function(f){var d=l.__N?l.__N[0]:l.__[0],_=l.t(d,f);d!==_&&(l.__N=[_,l.__[1]],l.__c.setState({}))}],l.__c=Te,!Te.__f)){var i=function(f,d,_){if(!l.__c.__H)return!0;var w=!1,m=l.__c.props!==f;if(l.__c.__H.__.some(function(b){if(b.__N){w=!0;var x=b.__[0];b.__=b.__N,b.__N=void 0,x!==b.__[0]&&(m=!0)}}),s){var h=s.call(this,f,d,_);return w?h||m:h}return!w||m};Te.__f=!0;var s=Te.shouldComponentUpdate,c=Te.componentWillUpdate;Te.componentWillUpdate=function(f,d,_){if(this.__e){var w=s;s=void 0,i(f,d,_),s=w}c&&c.call(this,f,d,_)},Te.shouldComponentUpdate=i}return l.__N||l.__}function qo(e,t){var n=zr(tn++,3);!Ae.__s&&Zo(n.__H,t)&&(n.__=e,n.u=t,Te.__H.__h.push(n))}function Gi(e){return Dn=5,Mc(function(){return{current:e}},[])}function Mc(e,t){var n=zr(tn++,7);return Zo(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Ui(){for(var e;e=Ko.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(xr),t.__h.some(Jo),t.__h=[]}catch(n){t.__h=[],Ae.__e(n,e.__v)}}}Ae.__b=function(e){Te=null,Oi&&Oi(e)},Ae.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ii&&Ii(e,t)},Ae.__r=function(e){Vi&&Vi(e),tn=0;var t=(Te=e.__c).__H;t&&(_r===Te?(t.__h=[],Te.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.length&&Ui(),tn=0)),_r=Te},Ae.diffed=function(e){zi&&zi(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Ko.push(t)!==1&&Hi===Ae.requestAnimationFrame||((Hi=Ae.requestAnimationFrame)||Ac)(Ui)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),_r=Te=null},Ae.__c=function(e,t){t.some(function(n){try{n.__h.some(xr),n.__h=n.__h.filter(function(l){return!l.__||Jo(l)})}catch(l){t.some(function(i){i.__h&&(i.__h=[])}),t=[],Ae.__e(l,n.__v)}}),Wi&&Wi(e,t)},Ae.unmount=function(e){$i&&$i(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(l){try{xr(l)}catch(i){t=i}}),n.__H=void 0,t&&Ae.__e(t,n.__v))};var Bi=typeof requestAnimationFrame=="function";function Ac(e){var t,n=function(){clearTimeout(l),Bi&&cancelAnimationFrame(t),setTimeout(e)},l=setTimeout(n,35);Bi&&(t=requestAnimationFrame(n))}function xr(e){var t=Te,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),Te=t}function Jo(e){var t=Te;e.__c=e.__(),Te=t}function Zo(e,t){return!e||e.length!==t.length||t.some(function(n,l){return n!==e[l]})}function Qo(e,t){return typeof t=="function"?t(e):t}async function Dc(){if(window.__EDSGER_DATA__)return Yi(window.__EDSGER_DATA__);const e=await fetch("./edsger-data.json",{cache:"no-store"});if(!e.ok)throw new Error(`Could not load edsger-data.json (HTTP ${e.status})`);return Yi(await e.json())}function Yi(e){const t=[...e.history??[]].sort((n,l)=>n.generatedAt<l.generatedAt?-1:n.generatedAt>l.generatedAt?1:0);return{repo:e.repo,latest:e.latest??null,history:t,runs:e.runs??{}}}function Wr(e){return e>=.8?"#3fb950":e>=.6?"#d29922":e>=.4?"#db6d28":"#f85149"}function Xo(e){switch(e.toUpperCase()){case"A":return"#3fb950";case"B":return"#56d364";case"C":return"#d29922";case"D":return"#db6d28";default:return"#f85149"}}function $r(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(void 0,{year:"numeric",month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function ji(e){return`${Math.round(e*100)}%`}function Ec({value:e,grade:t}){const l=2*Math.PI*52,i=Math.max(0,Math.min(1,e/100)),s=Xo(t);return v("div",{class:"ring",children:v("svg",{width:"140",height:"140",viewBox:"0 0 140 140",children:[v("circle",{cx:"70",cy:"70",r:52,class:"ring-track"}),v("circle",{cx:"70",cy:"70",r:52,class:"ring-value",stroke:s,"stroke-dasharray":`${i*l} ${l}`,transform:"rotate(-90 70 70)"}),v("text",{x:"70",y:"64",class:"ring-score",fill:s,children:e}),v("text",{x:"70",y:"92",class:"ring-grade",children:["Grade ",t]})]})})}function Pc({label:e,fraction:t,meta:n}){return v("div",{class:"bar-row",children:[v("div",{class:"bar-label",children:e}),v("div",{class:"bar-track",children:v("div",{class:"bar-fill",style:{width:ji(t),background:Wr(t)}})}),v("div",{class:"bar-value",children:n??ji(t)})]})}function pn({title:e,children:t}){return v("section",{class:"card",children:[e?v("h2",{class:"card-title",children:e}):null,t]})}function Ll({children:e}){return v("div",{class:"empty",children:e})}function Lc({data:e}){var n;const t=e.latest;return t?v("div",{class:"stack",children:[v("div",{class:"hero",children:[v(Ec,{value:t.overall,grade:t.grade}),v("div",{class:"hero-meta",children:[v("p",{class:"summary",children:t.summary}),v("dl",{class:"facts",children:[v("div",{children:[v("dt",{children:"Repository"}),v("dd",{children:t.repo})]}),v("div",{children:[v("dt",{children:"Standard"}),v("dd",{children:[t.standard.name," v",t.standard.version]})]}),v("div",{children:[v("dt",{children:"Languages"}),v("dd",{children:t.languages.join(", ")||"generic"})]}),v("div",{children:[v("dt",{children:"Commit"}),v("dd",{children:(n=t.git)!=null&&n.commit?v("code",{children:[t.git.commit,t.git.branch?` (${t.git.branch})`:"",t.git.dirty?" ✻":""]}):"—"})]}),v("div",{children:[v("dt",{children:"Model"}),v("dd",{children:t.model})]}),v("div",{children:[v("dt",{children:"Generated"}),v("dd",{children:$r(t.generatedAt)})]}),v("div",{children:[v("dt",{children:"Cost"}),v("dd",{children:["$",t.costUsd.toFixed(3)]})]})]})]})]}),v(pn,{title:"Category scores",children:t.categories.map(l=>v(Pc,{label:l.name,fraction:l.fraction,meta:`${Math.round(l.fraction*100)}% · ${l.points} pts`},l.id))}),v("div",{class:"two-col",children:[t.strengths.length?v(pn,{title:"Strengths",children:v("ul",{class:"list good",children:t.strengths.map((l,i)=>v("li",{children:l},i))})}):null,t.weaknesses.length?v(pn,{title:"Weaknesses",children:v("ul",{class:"list bad",children:t.weaknesses.map((l,i)=>v("li",{children:l},i))})}):null]}),t.recommendations.length?v(pn,{title:"Recommendations",children:v("ul",{class:"recs",children:t.recommendations.map((l,i)=>v("li",{children:[v("span",{class:`pill ${l.priority}`,children:l.priority}),v("strong",{children:l.title}),v("span",{class:"muted",children:[" — ",l.detail]})]},i))})}):null]}):v(Ll,{children:"No benchmark report yet. Run `edsger benchmark`."})}function Cc({data:e}){const t=e.history.map(s=>s.runId),[n,l]=kn(""),i=n&&e.runs[n]||e.latest||null;return i?v("div",{class:"stack",children:[t.length>1?v("div",{class:"run-picker",children:[v("label",{children:"Run"}),v("select",{value:i.runId,onChange:s=>l(s.target.value),children:e.history.slice().reverse().map(s=>v("option",{value:s.runId,children:[$r(s.generatedAt)," — ",s.overall,"/100 (",s.grade,")",s.commit?` · ${s.commit}`:""]},s.runId))})]}):null,i.categories.map(s=>v("section",{class:"card",children:[v("h2",{class:"card-title",children:[s.name," ",v("span",{class:"muted",children:["· ",Math.round(s.fraction*100),"%"]})]}),v("div",{class:"crit-list",children:s.criteria.map(c=>v("details",{class:"crit",children:[v("summary",{children:[v("span",{class:"score-chip",style:{background:Wr(c.rawScore/c.maxScore)},children:[c.rawScore,"/",c.maxScore]}),v("span",{class:"crit-title",children:c.title})]}),v("p",{class:"crit-just",children:c.justification}),c.evidence.length?v("ul",{class:"evidence",children:c.evidence.map((f,d)=>v("li",{children:v("code",{children:f})},d))}):null]},c.id))})]},s.id))]}):v(Ll,{children:"No benchmark report yet."})}function Rc({data:e}){var i;const t=e.history.slice().reverse();if(!t.length)return v(Ll,{children:"No runs recorded yet."});const n=((i=e.latest)==null?void 0:i.categories.map(s=>s.id))??Object.keys(t[0].categories),l=s=>{const c=t[s+1];return c?t[s].overall-c.overall:null};return v("section",{class:"card",children:[v("h2",{class:"card-title",children:["Run history (",t.length,")"]}),v("div",{class:"table-wrap",children:v("table",{class:"history",children:[v("thead",{children:v("tr",{children:[v("th",{children:"Date"}),v("th",{children:"Commit"}),v("th",{class:"num",children:"Score"}),v("th",{class:"num",children:"Δ"}),v("th",{children:"Grade"}),n.map(s=>v("th",{class:"num cat",children:s},s)),v("th",{class:"num",children:"Cost"})]})}),v("tbody",{children:t.map((s,c)=>{const f=l(c);return v("tr",{children:[v("td",{children:$r(s.generatedAt)}),v("td",{children:s.commit?v("code",{children:[s.commit,s.dirty?"✻":""]}):"—"}),v("td",{class:"num strong",children:s.overall}),v("td",{class:`num ${f==null?"":f>0?"up":f<0?"down":""}`,children:f==null?"":f>0?`+${f}`:f}),v("td",{children:[v("span",{class:"grade-dot",style:{color:Xo(s.grade)},children:"●"})," ",s.grade]}),n.map(d=>v("td",{class:"num cat",children:s.categories[d]==null?"—":`${Math.round(s.categories[d]*100)}%`},d)),v("td",{class:"num muted",children:["$",s.costUsd.toFixed(2)]})]},s.runId)})})]})})]})}const Nc=!0,Re="u-",Fc="uplot",Hc=Re+"hz",Oc=Re+"vt",Vc=Re+"title",zc=Re+"wrap",Wc=Re+"under",$c=Re+"over",Ic=Re+"axis",rl=Re+"off",Gc=Re+"select",Uc=Re+"cursor-x",Bc=Re+"cursor-y",Yc=Re+"cursor-pt",jc=Re+"legend",Kc=Re+"live",qc=Re+"inline",Jc=Re+"series",Zc=Re+"marker",Ki=Re+"label",Qc=Re+"value",ql="width",Jl="height",jl="top",qi="bottom",Al="left",dr="right",Ir="#000",Ji=Ir+"0",pr="mousemove",Zi="mousedown",mr="mouseup",Qi="mouseenter",Xi="mouseleave",eo="dblclick",Xc="resize",eu="scroll",to="change",En="dppxchange",Gr="--",Hl=typeof window<"u",Tr=Hl?document:null,El=Hl?window:null,tu=Hl?navigator:null;let se,mn;function Mr(){let e=devicePixelRatio;se!=e&&(se=e,mn&&Dr(to,mn,Mr),mn=matchMedia(`(min-resolution: ${se-.001}dppx) and (max-resolution: ${se+.001}dppx)`),il(to,mn,Mr),El.dispatchEvent(new CustomEvent(En)))}function rt(e,t){if(t!=null){let n=e.classList;!n.contains(t)&&n.add(t)}}function Ar(e,t){let n=e.classList;n.contains(t)&&n.remove(t)}function ve(e,t,n){e.style[t]=n+"px"}function yt(e,t,n,l){let i=Tr.createElement(e);return t!=null&&rt(i,t),n!=null&&n.insertBefore(i,l),i}function _t(e,t){return yt("div",e,t)}const lo=new WeakMap;function Pt(e,t,n,l,i){let s="translate("+t+"px,"+n+"px)",c=lo.get(e);s!=c&&(e.style.transform=s,lo.set(e,s),t<0||n<0||t>l||n>i?rt(e,rl):Ar(e,rl))}const no=new WeakMap;function ro(e,t,n){let l=t+n,i=no.get(e);l!=i&&(no.set(e,l),e.style.background=t,e.style.borderColor=n)}const io=new WeakMap;function oo(e,t,n,l){let i=t+""+n,s=io.get(e);i!=s&&(io.set(e,i),e.style.height=n+"px",e.style.width=t+"px",e.style.marginLeft=l?-t/2+"px":0,e.style.marginTop=l?-n/2+"px":0)}const Ur={passive:!0},lu={...Ur,capture:!0};function il(e,t,n,l){t.addEventListener(e,n,l?lu:Ur)}function Dr(e,t,n,l){t.removeEventListener(e,n,Ur)}Hl&&Mr();function St(e,t,n,l){let i;n=n||0,l=l||t.length-1;let s=l<=2147483647;for(;l-n>1;)i=s?n+l>>1:it((n+l)/2),t[i]<e?n=i:l=i;return e-t[n]<=t[l]-e?n:l}function es(e){return(n,l,i)=>{let s=-1,c=-1;for(let f=l;f<=i;f++)if(e(n[f])){s=f;break}for(let f=i;f>=l;f--)if(e(n[f])){c=f;break}return[s,c]}}const ts=e=>e!=null,ls=e=>e!=null&&e>0,Fn=es(ts),nu=es(ls);function ru(e,t,n,l=0,i=!1){let s=i?nu:Fn,c=i?ls:ts;[t,n]=s(e,t,n);let f=e[t],d=e[t];if(t>-1)if(l==1)f=e[t],d=e[n];else if(l==-1)f=e[n],d=e[t];else for(let _=t;_<=n;_++){let w=e[_];c(w)&&(w<f?f=w:w>d&&(d=w))}return[f??fe,d??-fe]}function Hn(e,t,n,l){let i=uo(e),s=uo(t);e==t&&(i==-1?(e*=n,t/=n):(e/=n,t*=n));let c=n==10?Ft:ns,f=i==1?it:dt,d=s==1?dt:it,_=f(c(Ce(e))),w=d(c(Ce(t))),m=Cl(n,_),h=Cl(n,w);return n==10&&(_<0&&(m=he(m,-_)),w<0&&(h=he(h,-w))),l||n==2?(e=m*i,t=h*s):(e=ss(e,m),t=On(t,h)),[e,t]}function Br(e,t,n,l){let i=Hn(e,t,n,l);return e==0&&(i[0]=0),t==0&&(i[1]=0),i}const Yr=.1,so={mode:3,pad:Yr},Xl={pad:0,soft:null,mode:0},iu={min:Xl,max:Xl};function Pn(e,t,n,l){return Vn(n)?co(e,t,n):(Xl.pad=n,Xl.soft=l?0:null,Xl.mode=l?3:0,co(e,t,iu))}function ie(e,t){return e??t}function ou(e,t,n){for(t=ie(t,0),n=ie(n,e.length-1);t<=n;){if(e[t]!=null)return!0;t++}return!1}function co(e,t,n){let l=n.min,i=n.max,s=ie(l.pad,0),c=ie(i.pad,0),f=ie(l.hard,-fe),d=ie(i.hard,fe),_=ie(l.soft,fe),w=ie(i.soft,-fe),m=ie(l.mode,0),h=ie(i.mode,0),b=t-e,x=Ft(b),M=qe(Ce(e),Ce(t)),E=Ft(M),R=Ce(E-x);(b<1e-24||R>10)&&(b=0,(e==0||t==0)&&(b=1e-24,m==2&&_!=fe&&(s=0),h==2&&w!=-fe&&(c=0)));let S=b||M||1e3,F=Ft(S),D=Cl(10,it(F)),U=S*(b==0?e==0?.1:1:s),L=he(ss(e-U,D/10),24),K=e>=_&&(m==1||m==3&&L<=_||m==2&&L>=_)?_:fe,B=qe(f,L<K&&e>=K?K:bt(K,L)),J=S*(b==0?t==0?.1:1:c),$=he(On(t+J,D/10),24),A=t<=w&&(h==1||h==3&&$>=w||h==2&&$<=w)?w:-fe,Z=bt(d,$>A&&t<=A?A:qe(A,$));return B==Z&&B==0&&(Z=100),[B,Z]}const su=new Intl.NumberFormat(Hl?tu.language:"en-US"),jr=e=>su.format(e),ot=Math,xn=ot.PI,Ce=ot.abs,it=ot.floor,Le=ot.round,dt=ot.ceil,bt=ot.min,qe=ot.max,Cl=ot.pow,uo=ot.sign,Ft=ot.log10,ns=ot.log2,cu=(e,t=1)=>ot.sinh(e)*t,gr=(e,t=1)=>ot.asinh(e/t),fe=1/0;function ao(e){return(Ft((e^e>>31)-(e>>31))|0)+1}function Er(e,t,n){return bt(qe(e,t),n)}function rs(e){return typeof e=="function"}function ee(e){return rs(e)?e:()=>e}const uu=()=>{},is=e=>e,os=(e,t)=>t,au=e=>null,fo=e=>!0,ho=(e,t)=>e==t,fu=/\.\d*?(?=9{6,}|0{6,})/gm,ol=e=>{if(us(e)||Bt.has(e))return e;const t=`${e}`,n=t.match(fu);if(n==null)return e;let l=n[0].length-1;if(t.indexOf("e-")!=-1){let[i,s]=t.split("e");return+`${ol(i)}e${s}`}return he(e,l)};function ll(e,t){return ol(he(ol(e/t))*t)}function On(e,t){return ol(dt(ol(e/t))*t)}function ss(e,t){return ol(it(ol(e/t))*t)}function he(e,t=0){if(us(e))return e;let n=10**t,l=e*n*(1+Number.EPSILON);return Le(l)/n}const Bt=new Map;function cs(e){return((""+e).split(".")[1]||"").length}function ln(e,t,n,l){let i=[],s=l.map(cs);for(let c=t;c<n;c++){let f=Ce(c),d=he(Cl(e,c),f);for(let _=0;_<l.length;_++){let w=e==10?+`${l[_]}e${c}`:l[_]*d,m=(c>=0?0:f)+(c>=s[_]?0:s[_]),h=e==10?w:he(w,m);i.push(h),Bt.set(h,m)}}return i}const en={},Kr=[],Rl=[null,null],Ut=Array.isArray,us=Number.isInteger,hu=e=>e===void 0;function _o(e){return typeof e=="string"}function Vn(e){let t=!1;if(e!=null){let n=e.constructor;t=n==null||n==Object}return t}function _u(e){return e!=null&&typeof e=="object"}const du=Object.getPrototypeOf(Uint8Array),as="__proto__";function Nl(e,t=Vn){let n;if(Ut(e)){let l=e.find(i=>i!=null);if(Ut(l)||t(l)){n=Array(e.length);for(let i=0;i<e.length;i++)n[i]=Nl(e[i],t)}else n=e.slice()}else if(e instanceof du)n=e.slice();else if(t(e)){n={};for(let l in e)l!=as&&(n[l]=Nl(e[l],t))}else n=e;return n}function De(e){let t=arguments;for(let n=1;n<t.length;n++){let l=t[n];for(let i in l)i!=as&&(Vn(e[i])?De(e[i],Nl(l[i])):e[i]=Nl(l[i]))}return e}const pu=0,mu=1,gu=2;function vu(e,t,n){for(let l=0,i,s=-1;l<t.length;l++){let c=t[l];if(c>s){for(i=c-1;i>=0&&e[i]==null;)e[i--]=null;for(i=c+1;i<n&&e[i]==null;)e[s=i++]=null}}}function wu(e,t){if(bu(e)){let c=e[0].slice();for(let f=1;f<e.length;f++)c.push(...e[f].slice(1));return ku(c[0])||(c=Su(c)),c}let n=new Set;for(let c=0;c<e.length;c++){let d=e[c][0],_=d.length;for(let w=0;w<_;w++)n.add(d[w])}let l=[Array.from(n).sort((c,f)=>c-f)],i=l[0].length,s=new Map;for(let c=0;c<i;c++)s.set(l[0][c],c);for(let c=0;c<e.length;c++){let f=e[c],d=f[0];for(let _=1;_<f.length;_++){let w=f[_],m=Array(i).fill(void 0),h=t?t[c][_]:mu,b=[];for(let x=0;x<w.length;x++){let M=w[x],E=s.get(d[x]);M===null?h!=pu&&(m[E]=M,h==gu&&b.push(E)):m[E]=M}vu(m,b,i),l.push(m)}}return l}const yu=typeof queueMicrotask>"u"?e=>Promise.resolve().then(e):queueMicrotask;function Su(e){let t=e[0],n=t.length,l=Array(n);for(let s=0;s<l.length;s++)l[s]=s;l.sort((s,c)=>t[s]-t[c]);let i=[];for(let s=0;s<e.length;s++){let c=e[s],f=Array(n);for(let d=0;d<n;d++)f[d]=c[l[d]];i.push(f)}return i}function bu(e){let t=e[0][0],n=t.length;for(let l=1;l<e.length;l++){let i=e[l][0];if(i.length!=n)return!1;if(i!=t){for(let s=0;s<n;s++)if(i[s]!=t[s])return!1}}return!0}function ku(e,t=100){const n=e.length;if(n<=1)return!0;let l=0,i=n-1;for(;l<=i&&e[l]==null;)l++;for(;i>=l&&e[i]==null;)i--;if(i<=l)return!0;const s=qe(1,it((i-l+1)/t));for(let c=e[l],f=l+s;f<=i;f+=s){const d=e[f];if(d!=null){if(d<=c)return!1;c=d}}return!0}const fs=["January","February","March","April","May","June","July","August","September","October","November","December"],hs=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function _s(e){return e.slice(0,3)}const xu=hs.map(_s),Tu=fs.map(_s),Mu={MMMM:fs,MMM:Tu,WWWW:hs,WWW:xu};function Kl(e){return(e<10?"0":"")+e}function Au(e){return(e<10?"00":e<100?"0":"")+e}const Du={YYYY:e=>e.getFullYear(),YY:e=>(e.getFullYear()+"").slice(2),MMMM:(e,t)=>t.MMMM[e.getMonth()],MMM:(e,t)=>t.MMM[e.getMonth()],MM:e=>Kl(e.getMonth()+1),M:e=>e.getMonth()+1,DD:e=>Kl(e.getDate()),D:e=>e.getDate(),WWWW:(e,t)=>t.WWWW[e.getDay()],WWW:(e,t)=>t.WWW[e.getDay()],HH:e=>Kl(e.getHours()),H:e=>e.getHours(),h:e=>{let t=e.getHours();return t==0?12:t>12?t-12:t},AA:e=>e.getHours()>=12?"PM":"AM",aa:e=>e.getHours()>=12?"pm":"am",a:e=>e.getHours()>=12?"p":"a",mm:e=>Kl(e.getMinutes()),m:e=>e.getMinutes(),ss:e=>Kl(e.getSeconds()),s:e=>e.getSeconds(),fff:e=>Au(e.getMilliseconds())};function qr(e,t){t=t||Mu;let n=[],l=/\{([a-z]+)\}|[^{]+/gi,i;for(;i=l.exec(e);)n.push(i[0][0]=="{"?Du[i[1]]:i[0]);return s=>{let c="";for(let f=0;f<n.length;f++)c+=typeof n[f]=="string"?n[f]:n[f](s,t);return c}}const Eu=new Intl.DateTimeFormat().resolvedOptions().timeZone;function Pu(e,t){let n;return t=="UTC"||t=="Etc/UTC"?n=new Date(+e+e.getTimezoneOffset()*6e4):t==Eu?n=e:(n=new Date(e.toLocaleString("en-US",{timeZone:t})),n.setMilliseconds(e.getMilliseconds())),n}const ds=e=>e%1==0,Ln=[1,2,2.5,5],Lu=ln(10,-32,0,Ln),ps=ln(10,0,32,Ln),Cu=ps.filter(ds),nl=Lu.concat(ps),Jr=`
2
+ `,ms="{YYYY}",po=Jr+ms,gs="{M}/{D}",Zl=Jr+gs,gn=Zl+"/{YY}",vs="{aa}",Ru="{h}:{mm}",Dl=Ru+vs,mo=Jr+Dl,go=":{ss}",ce=null;function ws(e){let t=e*1e3,n=t*60,l=n*60,i=l*24,s=i*30,c=i*365,d=(e==1?ln(10,0,3,Ln).filter(ds):ln(10,-3,0,Ln)).concat([t,t*5,t*10,t*15,t*30,n,n*5,n*10,n*15,n*30,l,l*2,l*3,l*4,l*6,l*8,l*12,i,i*2,i*3,i*4,i*5,i*6,i*7,i*8,i*9,i*10,i*15,s,s*2,s*3,s*4,s*6,c,c*2,c*5,c*10,c*25,c*50,c*100]);const _=[[c,ms,ce,ce,ce,ce,ce,ce,1],[i*28,"{MMM}",po,ce,ce,ce,ce,ce,1],[i,gs,po,ce,ce,ce,ce,ce,1],[l,"{h}"+vs,gn,ce,Zl,ce,ce,ce,1],[n,Dl,gn,ce,Zl,ce,ce,ce,1],[t,go,gn+" "+Dl,ce,Zl+" "+Dl,ce,mo,ce,1],[e,go+".{fff}",gn+" "+Dl,ce,Zl+" "+Dl,ce,mo,ce,1]];function w(m){return(h,b,x,M,E,R)=>{let S=[],F=E>=c,D=E>=s&&E<c,U=m(x),L=he(U*e,3),K=vr(U.getFullYear(),F?0:U.getMonth(),D||F?1:U.getDate()),B=he(K*e,3);if(D||F){let J=D?E/s:0,$=F?E/c:0,A=L==B?L:he(vr(K.getFullYear()+$,K.getMonth()+J,1)*e,3),Z=new Date(Le(A/e)),O=Z.getFullYear(),Y=Z.getMonth();for(let I=0;A<=M;I++){let te=vr(O+$*I,Y+J*I,1),W=te-m(he(te*e,3));A=he((+te+W)*e,3),A<=M&&S.push(A)}}else{let J=E>=i?i:E,$=it(x)-it(L),A=B+$+On(L-B,J);S.push(A);let Z=m(A),O=Z.getHours()+Z.getMinutes()/n+Z.getSeconds()/l,Y=E/l,I=h.axes[b]._space,te=R/I;for(;A=he(A+E,e==1?0:3),!(A>M);)if(Y>1){let W=it(he(O+Y,6))%24,le=m(A).getHours()-W;le>1&&(le=-1),A-=le*l,O=(O+Y)%24;let ue=S[S.length-1];he((A-ue)/E,3)*te>=.7&&S.push(A)}else S.push(A)}return S}}return[d,_,w]}const[Nu,Fu,Hu]=ws(1),[Ou,Vu,zu]=ws(.001);ln(2,-53,53,[1]);function vo(e,t){return e.map(n=>n.map((l,i)=>i==0||i==8||l==null?l:t(i==1||n[8]==0?l:n[1]+l)))}function wo(e,t){return(n,l,i,s,c)=>{let f=t.find(x=>c>=x[0])||t[t.length-1],d,_,w,m,h,b;return l.map(x=>{let M=e(x),E=M.getFullYear(),R=M.getMonth(),S=M.getDate(),F=M.getHours(),D=M.getMinutes(),U=M.getSeconds(),L=E!=d&&f[2]||R!=_&&f[3]||S!=w&&f[4]||F!=m&&f[5]||D!=h&&f[6]||U!=b&&f[7]||f[1];return d=E,_=R,w=S,m=F,h=D,b=U,L(M)})}}function Wu(e,t){let n=qr(t);return(l,i,s,c,f)=>i.map(d=>n(e(d)))}function vr(e,t,n){return new Date(e,t,n)}function yo(e,t){return t(e)}const $u="{YYYY}-{MM}-{DD} {h}:{mm}{aa}";function So(e,t){return(n,l,i,s)=>s==null?Gr:t(e(l))}function Iu(e,t){let n=e.series[t];return n.width?n.stroke(e,t):n.points.width?n.points.stroke(e,t):null}function Gu(e,t){return e.series[t].fill(e,t)}const Uu={show:!0,live:!0,isolate:!1,mount:uu,markers:{show:!0,width:2,stroke:Iu,fill:Gu,dash:"solid"},idx:null,idxs:null,values:[]};function Bu(e,t){let n=e.cursor.points,l=_t(),i=n.size(e,t);ve(l,ql,i),ve(l,Jl,i);let s=i/-2;ve(l,"marginLeft",s),ve(l,"marginTop",s);let c=n.width(e,t,i);return c&&ve(l,"borderWidth",c),l}function Yu(e,t){let n=e.series[t].points;return n._fill||n._stroke}function ju(e,t){let n=e.series[t].points;return n._stroke||n._fill}function Ku(e,t){return e.series[t].points.size}const wr=[0,0];function qu(e,t,n){return wr[0]=t,wr[1]=n,wr}function vn(e,t,n,l=!0){return i=>{i.button==0&&(!l||i.target==t)&&n(i)}}function yr(e,t,n,l=!0){return i=>{(!l||i.target==t)&&n(i)}}const Ju={show:!0,x:!0,y:!0,lock:!1,move:qu,points:{one:!1,show:Bu,size:Ku,width:0,stroke:ju,fill:Yu},bind:{mousedown:vn,mouseup:vn,click:vn,dblclick:vn,mousemove:yr,mouseleave:yr,mouseenter:yr},drag:{setScale:!0,x:!0,y:!1,dist:0,uni:null,click:(e,t)=>{t.stopPropagation(),t.stopImmediatePropagation()},_x:!1,_y:!1},focus:{dist:(e,t,n,l,i)=>l-i,prox:-1,bias:0},hover:{skip:[void 0],prox:null,bias:0},left:-10,top:-10,idx:null,dataIdx:null,idxs:null,event:null},ys={show:!0,stroke:"rgba(0,0,0,0.07)",width:2},Zr=De({},ys,{filter:os}),Ss=De({},Zr,{size:10}),bs=De({},ys,{show:!1}),Qr='12px system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',ks="bold "+Qr,xs=1.5,bo={show:!0,scale:"x",stroke:Ir,space:50,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:ks,side:2,grid:Zr,ticks:Ss,border:bs,font:Qr,lineGap:xs,rotate:0},Zu="Value",Qu="Time",ko={show:!0,scale:"x",auto:!1,sorted:1,min:fe,max:-fe,idxs:[]};function Xu(e,t,n,l,i){return t.map(s=>s==null?"":jr(s))}function ea(e,t,n,l,i,s,c){let f=[],d=Bt.get(i)||0;n=c?n:he(On(n,i),d);for(let _=n;_<=l;_=he(_+i,d))f.push(Object.is(_,-0)?0:_);return f}function Pr(e,t,n,l,i,s,c){const f=[],d=e.scales[e.axes[t].scale].log,_=d==10?Ft:ns,w=it(_(n));i=Cl(d,w),d==10&&(i=nl[St(i,nl)]);let m=n,h=i*d;d==10&&(h=nl[St(h,nl)]);do f.push(m),m=m+i,d==10&&!Bt.has(m)&&(m=he(m,Bt.get(i))),m>=h&&(i=m,h=i*d,d==10&&(h=nl[St(h,nl)]));while(m<=l);return f}function ta(e,t,n,l,i,s,c){let d=e.scales[e.axes[t].scale].asinh,_=l>d?Pr(e,t,qe(d,n),l,i):[d],w=l>=0&&n<=0?[0]:[];return(n<-d?Pr(e,t,qe(d,-l),-n,i):[d]).reverse().map(h=>-h).concat(w,_)}const Ts=/./,la=/[12357]/,na=/[125]/,xo=/1/,Lr=(e,t,n,l)=>e.map((i,s)=>t==4&&i==0||s%l==0&&n.test(i.toExponential()[i<0?1:0])?i:null);function ra(e,t,n,l,i){let s=e.axes[n],c=s.scale,f=e.scales[c],d=e.valToPos,_=s._space,w=d(10,c),m=d(9,c)-w>=_?Ts:d(7,c)-w>=_?la:d(5,c)-w>=_?na:xo;if(m==xo){let h=Ce(d(1,c)-w);if(h<_)return Lr(t.slice().reverse(),f.distr,m,dt(_/h)).reverse()}return Lr(t,f.distr,m,1)}function ia(e,t,n,l,i){let s=e.axes[n],c=s.scale,f=s._space,d=e.valToPos,_=Ce(d(1,c)-d(2,c));return _<f?Lr(t.slice().reverse(),3,Ts,dt(f/_)).reverse():t}function oa(e,t,n,l){return l==null?Gr:t==null?"":jr(t)}const To={show:!0,scale:"y",stroke:Ir,space:30,gap:5,alignTo:1,size:50,labelGap:0,labelSize:30,labelFont:ks,side:3,grid:Zr,ticks:Ss,border:bs,font:Qr,lineGap:xs,rotate:0};function sa(e,t){let n=3+(e||1)*2;return he(n*t,3)}function ca(e,t){let{scale:n,idxs:l}=e.series[0],i=e._data[0],s=e.valToPos(i[l[0]],n,!0),c=e.valToPos(i[l[1]],n,!0),f=Ce(c-s),d=e.series[t],_=f/(d.points.space*se);return l[1]-l[0]<=_}const Mo={scale:null,auto:!0,sorted:0,min:fe,max:-fe},Ms=(e,t,n,l,i)=>i,Ao={show:!0,auto:!0,sorted:0,gaps:Ms,alpha:1,facets:[De({},Mo,{scale:"x"}),De({},Mo,{scale:"y"})]},Do={scale:"y",auto:!0,sorted:0,show:!0,spanGaps:!1,gaps:Ms,alpha:1,points:{show:ca,filter:null},values:null,min:fe,max:-fe,idxs:[],path:null,clip:null};function ua(e,t,n,l,i){return n/10}const As={time:Nc,auto:!0,distr:1,log:10,asinh:1,min:null,max:null,dir:1,ori:0},aa=De({},As,{time:!1,ori:1}),Eo={};function Ds(e,t){let n=Eo[e];return n||(n={key:e,plots:[],sub(l){n.plots.push(l)},unsub(l){n.plots=n.plots.filter(i=>i!=l)},pub(l,i,s,c,f,d,_){for(let w=0;w<n.plots.length;w++)n.plots[w]!=i&&n.plots[w].pub(l,i,s,c,f,d,_)}},e!=null&&(Eo[e]=n)),n}const Fl=1,Cr=2;function sl(e,t,n){const l=e.mode,i=e.series[t],s=l==2?e._data[t]:e._data,c=e.scales,f=e.bbox;let d=s[0],_=l==2?s[1]:s[t],w=l==2?c[i.facets[0].scale]:c[e.series[0].scale],m=l==2?c[i.facets[1].scale]:c[i.scale],h=f.left,b=f.top,x=f.width,M=f.height,E=e.valToPosH,R=e.valToPosV;return w.ori==0?n(i,d,_,w,m,E,R,h,b,x,M,Wn,Ol,In,Ps,Cs):n(i,d,_,w,m,R,E,b,h,M,x,$n,Vl,ti,Ls,Rs)}function Xr(e,t){let n=0,l=0,i=ie(e.bands,Kr);for(let s=0;s<i.length;s++){let c=i[s];c.series[0]==t?n=c.dir:c.series[1]==t&&(c.dir==1?l|=1:l|=2)}return[n,l==1?-1:l==2?1:l==3?2:0]}function fa(e,t,n,l,i){let s=e.mode,c=e.series[t],f=s==2?c.facets[1].scale:c.scale,d=e.scales[f];return i==-1?d.min:i==1?d.max:d.distr==3?d.dir==1?d.min:d.max:0}function Ht(e,t,n,l,i,s){return sl(e,t,(c,f,d,_,w,m,h,b,x,M,E)=>{let R=c.pxRound;const S=_.dir*(_.ori==0?1:-1),F=_.ori==0?Ol:Vl;let D,U;S==1?(D=n,U=l):(D=l,U=n);let L=R(m(f[D],_,M,b)),K=R(h(d[D],w,E,x)),B=R(m(f[U],_,M,b)),J=R(h(s==1?w.max:w.min,w,E,x)),$=new Path2D(i);return F($,B,J),F($,L,J),F($,L,K),$})}function zn(e,t,n,l,i,s){let c=null;if(e.length>0){c=new Path2D;const f=t==0?In:ti;let d=n;for(let m=0;m<e.length;m++){let h=e[m];if(h[1]>h[0]){let b=h[0]-d;b>0&&f(c,d,l,b,l+s),d=h[1]}}let _=n+i-d,w=10;_>0&&f(c,d,l-w/2,_,l+s+w)}return c}function ha(e,t,n){let l=e[e.length-1];l&&l[0]==t?l[1]=n:e.push([t,n])}function ei(e,t,n,l,i,s,c){let f=[],d=e.length;for(let _=i==1?n:l;_>=n&&_<=l;_+=i)if(t[_]===null){let m=_,h=_;if(i==1)for(;++_<=l&&t[_]===null;)h=_;else for(;--_>=n&&t[_]===null;)h=_;let b=s(e[m]),x=h==m?b:s(e[h]),M=m-i;b=c<=0&&M>=0&&M<d?s(e[M]):b;let R=h+i;x=c>=0&&R>=0&&R<d?s(e[R]):x,x>=b&&f.push([b,x])}return f}function Po(e){return e==0?is:e==1?Le:t=>ll(t,e)}function Es(e){let t=e==0?Wn:$n,n=e==0?(i,s,c,f,d,_)=>{i.arcTo(s,c,f,d,_)}:(i,s,c,f,d,_)=>{i.arcTo(c,s,d,f,_)},l=e==0?(i,s,c,f,d)=>{i.rect(s,c,f,d)}:(i,s,c,f,d)=>{i.rect(c,s,d,f)};return(i,s,c,f,d,_=0,w=0)=>{_==0&&w==0?l(i,s,c,f,d):(_=bt(_,f/2,d/2),w=bt(w,f/2,d/2),t(i,s+_,c),n(i,s+f,c,s+f,c+d,_),n(i,s+f,c+d,s,c+d,w),n(i,s,c+d,s,c,w),n(i,s,c,s+f,c,_),i.closePath())}}const Wn=(e,t,n)=>{e.moveTo(t,n)},$n=(e,t,n)=>{e.moveTo(n,t)},Ol=(e,t,n)=>{e.lineTo(t,n)},Vl=(e,t,n)=>{e.lineTo(n,t)},In=Es(0),ti=Es(1),Ps=(e,t,n,l,i,s)=>{e.arc(t,n,l,i,s)},Ls=(e,t,n,l,i,s)=>{e.arc(n,t,l,i,s)},Cs=(e,t,n,l,i,s,c)=>{e.bezierCurveTo(t,n,l,i,s,c)},Rs=(e,t,n,l,i,s,c)=>{e.bezierCurveTo(n,t,i,l,c,s)};function Ns(e){return(t,n,l,i,s)=>sl(t,n,(c,f,d,_,w,m,h,b,x,M,E)=>{let{pxRound:R,points:S}=c,F,D;_.ori==0?(F=Wn,D=Ps):(F=$n,D=Ls);const U=he(S.width*se,3);let L=(S.size-S.width)/2*se,K=he(L*2,3),B=new Path2D,J=new Path2D,{left:$,top:A,width:Z,height:O}=t.bbox;In(J,$-K,A-K,Z+K*2,O+K*2);const Y=I=>{if(d[I]!=null){let te=R(m(f[I],_,M,b)),W=R(h(d[I],w,E,x));F(B,te+L,W),D(B,te,W,L,0,xn*2)}};if(s)s.forEach(Y);else for(let I=l;I<=i;I++)Y(I);return{stroke:U>0?B:null,fill:B,clip:J,flags:Fl|Cr}})}function Fs(e){return(t,n,l,i,s,c)=>{l!=i&&(s!=l&&c!=l&&e(t,n,l),s!=i&&c!=i&&e(t,n,i),e(t,n,c))}}const _a=Fs(Ol),da=Fs(Vl);function Hs(e){const t=ie(e==null?void 0:e.alignGaps,0);return(n,l,i,s)=>sl(n,l,(c,f,d,_,w,m,h,b,x,M,E)=>{[i,s]=Fn(d,i,s);let R=c.pxRound,S=O=>R(m(O,_,M,b)),F=O=>R(h(O,w,E,x)),D,U;_.ori==0?(D=Ol,U=_a):(D=Vl,U=da);const L=_.dir*(_.ori==0?1:-1),K={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Fl},B=K.stroke;let J=!1;if(s-i>=M*4){let O=V=>n.posToVal(V,_.key,!0),Y=null,I=null,te,W,Je,we=S(f[L==1?i:s]),le=S(f[i]),ue=S(f[s]),Q=O(L==1?le+1:ue-1);for(let V=L==1?i:s;V>=i&&V<=s;V+=L){let Ee=f[V],ye=(L==1?Ee<Q:Ee>Q)?we:S(Ee),ne=d[V];ye==we?ne!=null?(W=ne,Y==null?(D(B,ye,F(W)),te=Y=I=W):W<Y?Y=W:W>I&&(I=W)):ne===null&&(J=!0):(Y!=null&&U(B,we,F(Y),F(I),F(te),F(W)),ne!=null?(W=ne,D(B,ye,F(W)),Y=I=te=W):(Y=I=null,ne===null&&(J=!0)),we=ye,Q=O(we+L))}Y!=null&&Y!=I&&Je!=we&&U(B,we,F(Y),F(I),F(te),F(W))}else for(let O=L==1?i:s;O>=i&&O<=s;O+=L){let Y=d[O];Y===null?J=!0:Y!=null&&D(B,S(f[O]),F(Y))}let[A,Z]=Xr(n,l);if(c.fill!=null||A!=0){let O=K.fill=new Path2D(B),Y=c.fillTo(n,l,c.min,c.max,A),I=F(Y),te=S(f[i]),W=S(f[s]);L==-1&&([W,te]=[te,W]),D(O,W,I),D(O,te,I)}if(!c.spanGaps){let O=[];J&&O.push(...ei(f,d,i,s,L,S,t)),K.gaps=O=c.gaps(n,l,i,s,O),K.clip=zn(O,_.ori,b,x,M,E)}return Z!=0&&(K.band=Z==2?[Ht(n,l,i,s,B,-1),Ht(n,l,i,s,B,1)]:Ht(n,l,i,s,B,Z)),K})}function pa(e){const t=ie(e.align,1),n=ie(e.ascDesc,!1),l=ie(e.alignGaps,0),i=ie(e.extend,!1);return(s,c,f,d)=>sl(s,c,(_,w,m,h,b,x,M,E,R,S,F)=>{[f,d]=Fn(m,f,d);let D=_.pxRound,{left:U,width:L}=s.bbox,K=le=>D(x(le,h,S,E)),B=le=>D(M(le,b,F,R)),J=h.ori==0?Ol:Vl;const $={stroke:new Path2D,fill:null,clip:null,band:null,gaps:null,flags:Fl},A=$.stroke,Z=h.dir*(h.ori==0?1:-1);let O=B(m[Z==1?f:d]),Y=K(w[Z==1?f:d]),I=Y,te=Y;i&&t==-1&&(te=U,J(A,te,O)),J(A,Y,O);for(let le=Z==1?f:d;le>=f&&le<=d;le+=Z){let ue=m[le];if(ue==null)continue;let Q=K(w[le]),V=B(ue);t==1?J(A,Q,O):J(A,I,V),J(A,Q,V),O=V,I=Q}let W=I;i&&t==1&&(W=U+L,J(A,W,O));let[Je,we]=Xr(s,c);if(_.fill!=null||Je!=0){let le=$.fill=new Path2D(A),ue=_.fillTo(s,c,_.min,_.max,Je),Q=B(ue);J(le,W,Q),J(le,te,Q)}if(!_.spanGaps){let le=[];le.push(...ei(w,m,f,d,Z,K,l));let ue=_.width*se/2,Q=n||t==1?ue:-ue,V=n||t==-1?-ue:ue;le.forEach(Ee=>{Ee[0]+=Q,Ee[1]+=V}),$.gaps=le=_.gaps(s,c,f,d,le),$.clip=zn(le,h.ori,E,R,S,F)}return we!=0&&($.band=we==2?[Ht(s,c,f,d,A,-1),Ht(s,c,f,d,A,1)]:Ht(s,c,f,d,A,we)),$})}function Lo(e,t,n,l,i,s,c=fe){if(e.length>1){let f=null;for(let d=0,_=1/0;d<e.length;d++)if(t[d]!==void 0){if(f!=null){let w=Ce(e[d]-e[f]);w<_&&(_=w,c=Ce(n(e[d],l,i,s)-n(e[f],l,i,s)))}f=d}}return c}function ma(e){e=e||en;const t=ie(e.size,[.6,fe,1]),n=e.align||0,l=e.gap||0;let i=e.radius;i=i==null?[0,0]:typeof i=="number"?[i,0]:i;const s=ee(i),c=1-t[0],f=ie(t[1],fe),d=ie(t[2],1),_=ie(e.disp,en),w=ie(e.each,b=>{}),{fill:m,stroke:h}=_;return(b,x,M,E)=>sl(b,x,(R,S,F,D,U,L,K,B,J,$,A)=>{let Z=R.pxRound,O=n,Y=l*se,I=f*se,te=d*se,W,Je;D.ori==0?[W,Je]=s(b,x):[Je,W]=s(b,x);const we=D.dir*(D.ori==0?1:-1);let le=D.ori==0?In:ti,ue=D.ori==0?w:(N,de,Pe,fl,Kt,xt,qt)=>{w(N,de,Pe,Kt,fl,qt,xt)},Q=ie(b.bands,Kr).find(N=>N.series[0]==x),V=Q!=null?Q.dir:0,Ee=R.fillTo(b,x,R.min,R.max,V),Ue=Z(K(Ee,U,A,J)),ye,ne,pt,Xe=$,be=Z(R.width*se),kt=!1,Lt=null,st=null,Ot=null,cl=null;m!=null&&(be==0||h!=null)&&(kt=!0,Lt=m.values(b,x,M,E),st=new Map,new Set(Lt).forEach(N=>{N!=null&&st.set(N,new Path2D)}),be>0&&(Ot=h.values(b,x,M,E),cl=new Map,new Set(Ot).forEach(N=>{N!=null&&cl.set(N,new Path2D)})));let{x0:ul,size:zl}=_;if(ul!=null&&zl!=null){O=1,S=ul.values(b,x,M,E),ul.unit==2&&(S=S.map(Pe=>b.posToVal(B+Pe*$,D.key,!0)));let N=zl.values(b,x,M,E);zl.unit==2?ne=N[0]*$:ne=L(N[0],D,$,B)-L(0,D,$,B),Xe=Lo(S,F,L,D,$,B,Xe),pt=Xe-ne+Y}else Xe=Lo(S,F,L,D,$,B,Xe),pt=Xe*c+Y,ne=Xe-pt;pt<1&&(pt=0),be>=ne/2&&(be=0),pt<5&&(Z=is);let nn=pt>0,Yt=Xe-pt-(nn?be:0);ne=Z(Er(Yt,te,I)),ye=(O==0?ne/2:O==we?0:ne)-O*we*((O==0?Y/2:0)+(nn?be/2:0));const Be={stroke:null,fill:null,clip:null,band:null,gaps:null,flags:0},al=kt?null:new Path2D;let Ct=null;if(Q!=null)Ct=b.data[Q.series[1]];else{let{y0:N,y1:de}=_;N!=null&&de!=null&&(F=de.values(b,x,M,E),Ct=N.values(b,x,M,E))}let jt=W*ne,q=Je*ne;for(let N=we==1?M:E;N>=M&&N<=E;N+=we){let de=F[N];if(de==null)continue;if(Ct!=null){let Ze=Ct[N]??0;if(de-Ze==0)continue;Ue=K(Ze,U,A,J)}let Pe=D.distr!=2||_!=null?S[N]:N,fl=L(Pe,D,$,B),Kt=K(ie(de,Ee),U,A,J),xt=Z(fl-ye),qt=Z(qe(Kt,Ue)),et=Z(bt(Kt,Ue)),ct=qt-et;if(de!=null){let Ze=de<0?q:jt,mt=de<0?jt:q;kt?(be>0&&Ot[N]!=null&&le(cl.get(Ot[N]),xt,et+it(be/2),ne,qe(0,ct-be),Ze,mt),Lt[N]!=null&&le(st.get(Lt[N]),xt,et+it(be/2),ne,qe(0,ct-be),Ze,mt)):le(al,xt,et+it(be/2),ne,qe(0,ct-be),Ze,mt),ue(b,x,N,xt-be/2,et,ne+be,ct)}}return be>0?Be.stroke=kt?cl:al:kt||(Be._fill=R.width==0?R._fill:R._stroke??R._fill,Be.width=0),Be.fill=kt?st:al,Be})}function ga(e,t){const n=ie(t==null?void 0:t.alignGaps,0);return(l,i,s,c)=>sl(l,i,(f,d,_,w,m,h,b,x,M,E,R)=>{[s,c]=Fn(_,s,c);let S=f.pxRound,F=W=>S(h(W,w,E,x)),D=W=>S(b(W,m,R,M)),U,L,K;w.ori==0?(U=Wn,K=Ol,L=Cs):(U=$n,K=Vl,L=Rs);const B=w.dir*(w.ori==0?1:-1);let J=F(d[B==1?s:c]),$=J,A=[],Z=[];for(let W=B==1?s:c;W>=s&&W<=c;W+=B)if(_[W]!=null){let we=d[W],le=F(we);A.push($=le),Z.push(D(_[W]))}const O={stroke:e(A,Z,U,K,L,S),fill:null,clip:null,band:null,gaps:null,flags:Fl},Y=O.stroke;let[I,te]=Xr(l,i);if(f.fill!=null||I!=0){let W=O.fill=new Path2D(Y),Je=f.fillTo(l,i,f.min,f.max,I),we=D(Je);K(W,$,we),K(W,J,we)}if(!f.spanGaps){let W=[];W.push(...ei(d,_,s,c,B,F,n)),O.gaps=W=f.gaps(l,i,s,c,W),O.clip=zn(W,w.ori,x,M,E,R)}return te!=0&&(O.band=te==2?[Ht(l,i,s,c,Y,-1),Ht(l,i,s,c,Y,1)]:Ht(l,i,s,c,Y,te)),O})}function va(e){return ga(wa,e)}function wa(e,t,n,l,i,s){const c=e.length;if(c<2)return null;const f=new Path2D;if(n(f,e[0],t[0]),c==2)l(f,e[1],t[1]);else{let d=Array(c),_=Array(c-1),w=Array(c-1),m=Array(c-1);for(let h=0;h<c-1;h++)w[h]=t[h+1]-t[h],m[h]=e[h+1]-e[h],_[h]=w[h]/m[h];d[0]=_[0];for(let h=1;h<c-1;h++)_[h]===0||_[h-1]===0||_[h-1]>0!=_[h]>0?d[h]=0:(d[h]=3*(m[h-1]+m[h])/((2*m[h]+m[h-1])/_[h-1]+(m[h]+2*m[h-1])/_[h]),isFinite(d[h])||(d[h]=0));d[c-1]=_[c-2];for(let h=0;h<c-1;h++)i(f,e[h]+m[h]/3,t[h]+d[h]*m[h]/3,e[h+1]-m[h]/3,t[h+1]-d[h+1]*m[h]/3,e[h+1],t[h+1])}return f}const Rr=new Set;function Co(){for(let e of Rr)e.syncRect(!0)}Hl&&(il(Xc,El,Co),il(eu,El,Co,!0),il(En,El,()=>{Ge.pxRatio=se}));const ya=Hs(),Sa=Ns();function Ro(e,t,n,l){return(l?[e[0],e[1]].concat(e.slice(2)):[e[0]].concat(e.slice(1))).map((s,c)=>Nr(s,c,t,n))}function ba(e,t){return e.map((n,l)=>l==0?{}:De({},t,n))}function Nr(e,t,n,l){return De({},t==0?n:l,e)}function Os(e,t,n){return t==null?Rl:[t,n]}const ka=Os;function xa(e,t,n){return t==null?Rl:Pn(t,n,Yr,!0)}function Vs(e,t,n,l){return t==null?Rl:Hn(t,n,e.scales[l].log,!1)}const Ta=Vs;function zs(e,t,n,l){return t==null?Rl:Br(t,n,e.scales[l].log,!1)}const Ma=zs;function Aa(e,t,n,l,i){let s=qe(ao(e),ao(t)),c=t-e,f=St(i/l*c,n);do{let d=n[f],_=l*d/c;if(_>=i&&s+(d<5?Bt.get(d):0)<=17)return[d,_]}while(++f<n.length);return[0,0]}function No(e){let t,n;return e=e.replace(/(\d+)px/,(l,i)=>(t=Le((n=+i)*se))+"px"),[e,t,n]}function Da(e){e.show&&[e.font,e.labelFont].forEach(t=>{let n=he(t[2]*se,1);t[0]=t[0].replace(/[0-9.]+px/,n+"px"),t[1]=n})}function Ge(e,t,n){const l={mode:ie(e.mode,1)},i=l.mode;function s(r,o,u,a){let p=o.valToPct(r);return a+u*(o.dir==-1?1-p:p)}function c(r,o,u,a){let p=o.valToPct(r);return a+u*(o.dir==-1?p:1-p)}function f(r,o,u,a){return o.ori==0?s(r,o,u,a):c(r,o,u,a)}l.valToPosH=s,l.valToPosV=c;let d=!1;l.status=0;const _=l.root=_t(Fc);if(e.id!=null&&(_.id=e.id),rt(_,e.class),e.title){let r=_t(Vc,_);r.textContent=e.title}const w=yt("canvas"),m=l.ctx=w.getContext("2d"),h=_t(zc,_);il("click",h,r=>{r.target===x&&(pe!=bl||Se!=kl)&&$e.click(l,r)},!0);const b=l.under=_t(Wc,h);h.appendChild(w);const x=l.over=_t($c,h);e=Nl(e);const M=+ie(e.pxAlign,1),E=Po(M);(e.plugins||[]).forEach(r=>{r.opts&&(e=r.opts(l,e)||e)});const R=e.ms||.001,S=l.series=i==1?Ro(e.series||[],ko,Do,!1):ba(e.series||[null],Ao),F=l.axes=Ro(e.axes||[],bo,To,!0),D=l.scales={},U=l.bands=e.bands||[];U.forEach(r=>{r.fill=ee(r.fill||null),r.dir=ie(r.dir,-1)});const L=i==2?S[1].facets[0].scale:S[0].scale,K={axes:tc,series:Js},B=(e.drawOrder||["axes","series"]).map(r=>K[r]);function J(r){const o=r.distr==3?u=>Ft(u>0?u:r.clamp(l,u,r.min,r.max,r.key)):r.distr==4?u=>gr(u,r.asinh):r.distr==100?u=>r.fwd(u):u=>u;return u=>{let a=o(u),{_min:p,_max:g}=r,y=g-p;return(a-p)/y}}function $(r){let o=D[r];if(o==null){let u=(e.scales||en)[r]||en;if(u.from!=null){$(u.from);let a=De({},D[u.from],u,{key:r});a.valToPct=J(a),D[r]=a}else{o=D[r]=De({},r==L?As:aa,u),o.key=r;let a=o.time,p=o.range,g=Ut(p);if((r!=L||i==2&&!a)&&(g&&(p[0]==null||p[1]==null)&&(p={min:p[0]==null?so:{mode:1,hard:p[0],soft:p[0]},max:p[1]==null?so:{mode:1,hard:p[1],soft:p[1]}},g=!1),!g&&Vn(p))){let y=p;p=(k,T,P)=>T==null?Rl:Pn(T,P,y)}o.range=ee(p||(a?ka:r==L?o.distr==3?Ta:o.distr==4?Ma:Os:o.distr==3?Vs:o.distr==4?zs:xa)),o.auto=ee(g?!1:o.auto),o.clamp=ee(o.clamp||ua),o._min=o._max=null,o.valToPct=J(o)}}}$("x"),$("y"),i==1&&S.forEach(r=>{$(r.scale)}),F.forEach(r=>{$(r.scale)});for(let r in e.scales)$(r);const A=D[L],Z=A.distr;let O,Y;A.ori==0?(rt(_,Hc),O=s,Y=c):(rt(_,Oc),O=c,Y=s);const I={};for(let r in D){let o=D[r];(o.min!=null||o.max!=null)&&(I[r]={min:o.min,max:o.max},o.min=o.max=null)}const te=e.tzDate||(r=>new Date(Le(r/R))),W=e.fmtDate||qr,Je=R==1?Hu(te):zu(te),we=wo(te,vo(R==1?Fu:Vu,W)),le=So(te,yo($u,W)),ue=[],Q=l.legend=De({},Uu,e.legend),V=l.cursor=De({},Ju,{drag:{y:i==2}},e.cursor),Ee=Q.show,Ue=V.show,ye=Q.markers;Q.idxs=ue,ye.width=ee(ye.width),ye.dash=ee(ye.dash),ye.stroke=ee(ye.stroke),ye.fill=ee(ye.fill);let ne,pt,Xe,be=[],kt=[],Lt,st=!1,Ot={};if(Q.live){const r=S[1]?S[1].values:null;st=r!=null,Lt=st?r(l,1,0):{_:0};for(let o in Lt)Ot[o]=Gr}if(Ee)if(ne=yt("table",jc,_),Xe=yt("tbody",null,ne),Q.mount(l,ne),st){pt=yt("thead",null,ne,Xe);let r=yt("tr",null,pt);yt("th",null,r);for(var cl in Lt)yt("th",Ki,r).textContent=cl}else rt(ne,qc),Q.live&&rt(ne,Kc);const ul={show:!0},zl={show:!1};function nn(r,o){if(o==0&&(st||!Q.live||i==2))return Rl;let u=[],a=yt("tr",Jc,Xe,Xe.childNodes[o]);rt(a,r.class),r.show||rt(a,rl);let p=yt("th",null,a);if(ye.show){let k=_t(Zc,p);if(o>0){let T=ye.width(l,o);T&&(k.style.border=T+"px "+ye.dash(l,o)+" "+ye.stroke(l,o)),k.style.background=ye.fill(l,o)}}let g=_t(Ki,p);r.label instanceof HTMLElement?g.appendChild(r.label):g.textContent=r.label,o>0&&(ye.show||(g.style.color=r.width>0?ye.stroke(l,o):ye.fill(l,o)),Be("click",p,k=>{if(V._lock)return;Zt(k);let T=S.indexOf(r);if((k.ctrlKey||k.metaKey)!=Q.isolate){let P=S.some((C,H)=>H>0&&H!=T&&C.show);S.forEach((C,H)=>{H>0&&Mt(H,P?H==T?ul:zl:ul,!0,Me.setSeries)})}else Mt(T,{show:!r.show},!0,Me.setSeries)},!1),_l&&Be(Qi,p,k=>{V._lock||(Zt(k),Mt(S.indexOf(r),Tl,!0,Me.setSeries))},!1));for(var y in Lt){let k=yt("td",Qc,a);k.textContent="--",u.push(k)}return[a,u]}const Yt=new Map;function Be(r,o,u,a=!0){const p=Yt.get(o)||{},g=V.bind[r](l,o,u,a);g&&(il(r,o,p[r]=g),Yt.set(o,p))}function al(r,o,u){const a=Yt.get(o)||{};for(let p in a)(r==null||p==r)&&(Dr(p,o,a[p]),delete a[p]);r==null&&Yt.delete(o)}let Ct=0,jt=0,q=0,N=0,de=0,Pe=0,fl=de,Kt=Pe,xt=q,qt=N,et=0,ct=0,Ze=0,mt=0;l.bbox={};let Gn=!1,rn=!1,hl=!1,Jt=!1,on=!1,ut=!1;function Un(r,o,u){(u||r!=l.width||o!=l.height)&&li(r,o),vl(!1),hl=!0,rn=!0,wl()}function li(r,o){l.width=Ct=q=r,l.height=jt=N=o,de=Pe=0,Gs(),Us();let u=l.bbox;et=u.left=ll(de*se,.5),ct=u.top=ll(Pe*se,.5),Ze=u.width=ll(q*se,.5),mt=u.height=ll(N*se,.5)}const Ws=3;function $s(){let r=!1,o=0;for(;!r;){o++;let u=Xs(o),a=ec(o);r=o==Ws||u&&a,r||(li(l.width,l.height),rn=!0)}}function Is({width:r,height:o}){Un(r,o)}l.setSize=Is;function Gs(){let r=!1,o=!1,u=!1,a=!1;F.forEach((p,g)=>{if(p.show&&p._show){let{side:y,_size:k}=p,T=y%2,P=p.label!=null?p.labelSize:0,C=k+P;C>0&&(T?(q-=C,y==3?(de+=C,a=!0):u=!0):(N-=C,y==0?(Pe+=C,r=!0):o=!0))}}),Qt[0]=r,Qt[1]=u,Qt[2]=o,Qt[3]=a,q-=Vt[1]+Vt[3],de+=Vt[3],N-=Vt[2]+Vt[0],Pe+=Vt[0]}function Us(){let r=de+q,o=Pe+N,u=de,a=Pe;function p(g,y){switch(g){case 1:return r+=y,r-y;case 2:return o+=y,o-y;case 3:return u-=y,u+y;case 0:return a-=y,a+y}}F.forEach((g,y)=>{if(g.show&&g._show){let k=g.side;g._pos=p(k,g._size),g.label!=null&&(g._lpos=p(k,g.labelSize))}})}if(V.dataIdx==null){let r=V.hover,o=r.skip=new Set(r.skip??[]);o.add(void 0);let u=r.prox=ee(r.prox),a=r.bias??(r.bias=0);V.dataIdx=(p,g,y,k)=>{if(g==0)return y;let T=y,P=u(p,g,y,k)??fe,C=P>=0&&P<fe,H=A.ori==0?q:N,j=V.left,oe=t[0],re=t[g];if(o.has(re[y])){T=null;let X=null,G=null,z;if(a==0||a==-1)for(z=y;X==null&&z-- >0;)o.has(re[z])||(X=z);if(a==0||a==1)for(z=y;G==null&&z++<re.length;)o.has(re[z])||(G=z);if(X!=null||G!=null)if(C){let ge=X==null?-1/0:O(oe[X],A,H,0),ke=G==null?1/0:O(oe[G],A,H,0),ze=j-ge,ae=ke-j;ze<=ae?ze<=P&&(T=X):ae<=P&&(T=G)}else T=G==null?X:X==null?G:y-X<=G-y?X:G}else C&&Ce(j-O(oe[y],A,H,0))>P&&(T=null);return T}}const Zt=r=>{V.event=r};V.idxs=ue,V._lock=!1;let Ie=V.points;Ie.show=ee(Ie.show),Ie.size=ee(Ie.size),Ie.stroke=ee(Ie.stroke),Ie.width=ee(Ie.width),Ie.fill=ee(Ie.fill);const Tt=l.focus=De({},e.focus||{alpha:.3},V.focus),_l=Tt.prox>=0,dl=_l&&Ie.one;let at=[],pl=[],ml=[];function ni(r,o){let u=Ie.show(l,o);if(u instanceof HTMLElement)return rt(u,Yc),rt(u,r.class),Pt(u,-10,-10,q,N),x.insertBefore(u,at[o]),u}function ri(r,o){if(i==1||o>0){let u=i==1&&D[r.scale].time,a=r.value;r.value=u?_o(a)?So(te,yo(a,W)):a||le:a||oa,r.label=r.label||(u?Qu:Zu)}if(dl||o>0){r.width=r.width==null?1:r.width,r.paths=r.paths||ya||au,r.fillTo=ee(r.fillTo||fa),r.pxAlign=+ie(r.pxAlign,M),r.pxRound=Po(r.pxAlign),r.stroke=ee(r.stroke||null),r.fill=ee(r.fill||null),r._stroke=r._fill=r._paths=r._focus=null;let u=sa(qe(1,r.width),1),a=r.points=De({},{size:u,width:qe(1,u*.2),stroke:r.stroke,space:u*2,paths:Sa,_stroke:null,_fill:null},r.points);a.show=ee(a.show),a.filter=ee(a.filter),a.fill=ee(a.fill),a.stroke=ee(a.stroke),a.paths=ee(a.paths),a.pxAlign=r.pxAlign}if(Ee){let u=nn(r,o);be.splice(o,0,u[0]),kt.splice(o,0,u[1]),Q.values.push(null)}if(Ue){ue.splice(o,0,null);let u=null;dl?o==0&&(u=ni(r,o)):o>0&&(u=ni(r,o)),at.splice(o,0,u),pl.splice(o,0,0),ml.splice(o,0,0)}Ve("addSeries",o)}function Bs(r,o){o=o??S.length,r=i==1?Nr(r,o,ko,Do):Nr(r,o,{},Ao),S.splice(o,0,r),ri(S[o],o)}l.addSeries=Bs;function Ys(r){if(S.splice(r,1),Ee){Q.values.splice(r,1),kt.splice(r,1);let o=be.splice(r,1)[0];al(null,o.firstChild),o.remove()}Ue&&(ue.splice(r,1),at.splice(r,1)[0].remove(),pl.splice(r,1),ml.splice(r,1)),Ve("delSeries",r)}l.delSeries=Ys;const Qt=[!1,!1,!1,!1];function js(r,o){if(r._show=r.show,r.show){let u=r.side%2,a=D[r.scale];a==null&&(r.scale=u?S[1].scale:L,a=D[r.scale]);let p=a.time;r.size=ee(r.size),r.space=ee(r.space),r.rotate=ee(r.rotate),Ut(r.incrs)&&r.incrs.forEach(y=>{!Bt.has(y)&&Bt.set(y,cs(y))}),r.incrs=ee(r.incrs||(a.distr==2?Cu:p?R==1?Nu:Ou:nl)),r.splits=ee(r.splits||(p&&a.distr==1?Je:a.distr==3?Pr:a.distr==4?ta:ea)),r.stroke=ee(r.stroke),r.grid.stroke=ee(r.grid.stroke),r.ticks.stroke=ee(r.ticks.stroke),r.border.stroke=ee(r.border.stroke);let g=r.values;r.values=Ut(g)&&!Ut(g[0])?ee(g):p?Ut(g)?wo(te,vo(g,W)):_o(g)?Wu(te,g):g||we:g||Xu,r.filter=ee(r.filter||(a.distr>=3&&a.log==10?ra:a.distr==3&&a.log==2?ia:os)),r.font=No(r.font),r.labelFont=No(r.labelFont),r._size=r.size(l,null,o,0),r._space=r._rotate=r._incrs=r._found=r._splits=r._values=null,r._size>0&&(Qt[o]=!0,r._el=_t(Ic,h))}}function Wl(r,o,u,a){let[p,g,y,k]=u,T=o%2,P=0;return T==0&&(k||g)&&(P=o==0&&!p||o==2&&!y?Le(bo.size/3):0),T==1&&(p||y)&&(P=o==1&&!g||o==3&&!k?Le(To.size/2):0),P}const ii=l.padding=(e.padding||[Wl,Wl,Wl,Wl]).map(r=>ee(ie(r,Wl))),Vt=l._padding=ii.map((r,o)=>r(l,o,Qt,0));let We,Ne=null,Fe=null;const sn=i==1?S[0].idxs:null;let gt=null,$l=!1;function oi(r,o){if(t=r??[],l.data=l._data=t,i==2){We=0;for(let u=1;u<S.length;u++)We+=t[u][0].length}else{t.length==0&&(l.data=l._data=t=[[]]),gt=t[0],We=gt.length;let u=t;if(Z==2){u=t.slice();let a=u[0]=Array(We);for(let p=0;p<We;p++)a[p]=p}l._data=t=u}if(vl(!0),Ve("setData"),Z==2&&(hl=!0),o!==!1){let u=A;u.auto(l,$l)?Bn():Wt(L,u.min,u.max),Jt=Jt||V.left>=0,ut=!0,wl()}}l.setData=oi;function Bn(){$l=!0;let r,o;i==1&&(We>0?(Ne=sn[0]=0,Fe=sn[1]=We-1,r=t[0][Ne],o=t[0][Fe],Z==2?(r=Ne,o=Fe):r==o&&(Z==3?[r,o]=Hn(r,r,A.log,!1):Z==4?[r,o]=Br(r,r,A.log,!1):A.time?o=r+Le(86400/R):[r,o]=Pn(r,o,Yr,!0))):(Ne=sn[0]=r=null,Fe=sn[1]=o=null)),Wt(L,r,o)}let cn,gl,Yn,jn,Kn,qn,Jn,Zn,Qn,Qe;function si(r,o,u,a,p,g){r??(r=Ji),u??(u=Kr),a??(a="butt"),p??(p=Ji),g??(g="round"),r!=cn&&(m.strokeStyle=cn=r),p!=gl&&(m.fillStyle=gl=p),o!=Yn&&(m.lineWidth=Yn=o),g!=Kn&&(m.lineJoin=Kn=g),a!=qn&&(m.lineCap=qn=a),u!=jn&&m.setLineDash(jn=u)}function ci(r,o,u,a){o!=gl&&(m.fillStyle=gl=o),r!=Jn&&(m.font=Jn=r),u!=Zn&&(m.textAlign=Zn=u),a!=Qn&&(m.textBaseline=Qn=a)}function Xn(r,o,u,a,p=0){if(a.length>0&&r.auto(l,$l)&&(o==null||o.min==null)){let g=ie(Ne,0),y=ie(Fe,a.length-1),k=u.min==null?ru(a,g,y,p,r.distr==3):[u.min,u.max];r.min=bt(r.min,u.min=k[0]),r.max=qe(r.max,u.max=k[1])}}const ui={min:null,max:null};function Ks(){for(let a in D){let p=D[a];I[a]==null&&(p.min==null||I[L]!=null&&p.auto(l,$l))&&(I[a]=ui)}for(let a in D){let p=D[a];I[a]==null&&p.from!=null&&I[p.from]!=null&&(I[a]=ui)}I[L]!=null&&vl(!0);let r={};for(let a in I){let p=I[a];if(p!=null){let g=r[a]=Nl(D[a],_u);if(p.min!=null)De(g,p);else if(a!=L||i==2)if(We==0&&g.from==null){let y=g.range(l,null,null,a);g.min=y[0],g.max=y[1]}else g.min=fe,g.max=-fe}}if(We>0){S.forEach((a,p)=>{if(i==1){let g=a.scale,y=I[g];if(y==null)return;let k=r[g];if(p==0){let T=k.range(l,k.min,k.max,g);k.min=T[0],k.max=T[1],Ne=St(k.min,t[0]),Fe=St(k.max,t[0]),Fe-Ne>1&&(t[0][Ne]<k.min&&Ne++,t[0][Fe]>k.max&&Fe--),a.min=gt[Ne],a.max=gt[Fe]}else a.show&&a.auto&&Xn(k,y,a,t[p],a.sorted);a.idxs[0]=Ne,a.idxs[1]=Fe}else if(p>0&&a.show&&a.auto){let[g,y]=a.facets,k=g.scale,T=y.scale,[P,C]=t[p],H=r[k],j=r[T];H!=null&&Xn(H,I[k],g,P,g.sorted),j!=null&&Xn(j,I[T],y,C,y.sorted),a.min=y.min,a.max=y.max}});for(let a in r){let p=r[a],g=I[a];if(p.from==null&&(g==null||g.min==null)){let y=p.range(l,p.min==fe?null:p.min,p.max==-fe?null:p.max,a);p.min=y[0],p.max=y[1]}}}for(let a in r){let p=r[a];if(p.from!=null){let g=r[p.from];if(g.min==null)p.min=p.max=null;else{let y=p.range(l,g.min,g.max,a);p.min=y[0],p.max=y[1]}}}let o={},u=!1;for(let a in r){let p=r[a],g=D[a];if(g.min!=p.min||g.max!=p.max){g.min=p.min,g.max=p.max;let y=g.distr;g._min=y==3?Ft(g.min):y==4?gr(g.min,g.asinh):y==100?g.fwd(g.min):g.min,g._max=y==3?Ft(g.max):y==4?gr(g.max,g.asinh):y==100?g.fwd(g.max):g.max,o[a]=u=!0}}if(u){S.forEach((a,p)=>{i==2?p>0&&o.y&&(a._paths=null):o[a.scale]&&(a._paths=null)});for(let a in o)hl=!0,Ve("setScale",a);Ue&&V.left>=0&&(Jt=ut=!0)}for(let a in I)I[a]=null}function qs(r){let o=Er(Ne-1,0,We-1),u=Er(Fe+1,0,We-1);for(;r[o]==null&&o>0;)o--;for(;r[u]==null&&u<We-1;)u++;return[o,u]}function Js(){if(We>0){let r=S.some(o=>o._focus)&&Qe!=Tt.alpha;r&&(m.globalAlpha=Qe=Tt.alpha),S.forEach((o,u)=>{if(u>0&&o.show&&(ai(u,!1),ai(u,!0),o._paths==null)){let a=Qe;Qe!=o.alpha&&(m.globalAlpha=Qe=o.alpha);let p=i==2?[0,t[u][0].length-1]:qs(t[u]);o._paths=o.paths(l,u,p[0],p[1]),Qe!=a&&(m.globalAlpha=Qe=a)}}),S.forEach((o,u)=>{if(u>0&&o.show){let a=Qe;Qe!=o.alpha&&(m.globalAlpha=Qe=o.alpha),o._paths!=null&&fi(u,!1);{let p=o._paths!=null?o._paths.gaps:null,g=o.points.show(l,u,Ne,Fe,p),y=o.points.filter(l,u,g,p);(g||y)&&(o.points._paths=o.points.paths(l,u,Ne,Fe,y),fi(u,!0))}Qe!=a&&(m.globalAlpha=Qe=a),Ve("drawSeries",u)}}),r&&(m.globalAlpha=Qe=1)}}function ai(r,o){let u=o?S[r].points:S[r];u._stroke=u.stroke(l,r),u._fill=u.fill(l,r)}function fi(r,o){let u=o?S[r].points:S[r],{stroke:a,fill:p,clip:g,flags:y,_stroke:k=u._stroke,_fill:T=u._fill,_width:P=u.width}=u._paths;P=he(P*se,3);let C=null,H=P%2/2;o&&T==null&&(T=P>0?"#fff":k);let j=u.pxAlign==1&&H>0;if(j&&m.translate(H,H),!o){let oe=et-P/2,re=ct-P/2,X=Ze+P,G=mt+P;C=new Path2D,C.rect(oe,re,X,G)}o?er(k,P,u.dash,u.cap,T,a,p,y,g):Zs(r,k,P,u.dash,u.cap,T,a,p,y,C,g),j&&m.translate(-H,-H)}function Zs(r,o,u,a,p,g,y,k,T,P,C){let H=!1;T!=0&&U.forEach((j,oe)=>{if(j.series[0]==r){let re=S[j.series[1]],X=t[j.series[1]],G=(re._paths||en).band;Ut(G)&&(G=j.dir==1?G[0]:G[1]);let z,ge=null;re.show&&G&&ou(X,Ne,Fe)?(ge=j.fill(l,oe)||g,z=re._paths.clip):G=null,er(o,u,a,p,ge,y,k,T,P,C,z,G),H=!0}}),H||er(o,u,a,p,g,y,k,T,P,C)}const hi=Fl|Cr;function er(r,o,u,a,p,g,y,k,T,P,C,H){si(r,o,u,a,p),(T||P||H)&&(m.save(),T&&m.clip(T),P&&m.clip(P)),H?(k&hi)==hi?(m.clip(H),C&&m.clip(C),an(p,y),un(r,g,o)):k&Cr?(an(p,y),m.clip(H),un(r,g,o)):k&Fl&&(m.save(),m.clip(H),C&&m.clip(C),an(p,y),m.restore(),un(r,g,o)):(an(p,y),un(r,g,o)),(T||P||H)&&m.restore()}function un(r,o,u){u>0&&(o instanceof Map?o.forEach((a,p)=>{m.strokeStyle=cn=p,m.stroke(a)}):o!=null&&r&&m.stroke(o))}function an(r,o){o instanceof Map?o.forEach((u,a)=>{m.fillStyle=gl=a,m.fill(u)}):o!=null&&r&&m.fill(o)}function Qs(r,o,u,a){let p=F[r],g;if(a<=0)g=[0,0];else{let y=p._space=p.space(l,r,o,u,a),k=p._incrs=p.incrs(l,r,o,u,a,y);g=Aa(o,u,k,a,y)}return p._found=g}function tr(r,o,u,a,p,g,y,k,T,P){let C=y%2/2;M==1&&m.translate(C,C),si(k,y,T,P,k),m.beginPath();let H,j,oe,re,X=p+(a==0||a==3?-g:g);u==0?(j=p,re=X):(H=p,oe=X);for(let G=0;G<r.length;G++)o[G]!=null&&(u==0?H=oe=r[G]:j=re=r[G],m.moveTo(H,j),m.lineTo(oe,re));m.stroke(),M==1&&m.translate(-C,-C)}function Xs(r){let o=!0;return F.forEach((u,a)=>{if(!u.show)return;let p=D[u.scale];if(p.min==null){u._show&&(o=!1,u._show=!1,vl(!1));return}else u._show||(o=!1,u._show=!0,vl(!1));let g=u.side,y=g%2,{min:k,max:T}=p,[P,C]=Qs(a,k,T,y==0?q:N);if(C==0)return;let H=p.distr==2,j=u._splits=u.splits(l,a,k,T,P,C,H),oe=p.distr==2?j.map(z=>gt[z]):j,re=p.distr==2?gt[j[1]]-gt[j[0]]:P,X=u._values=u.values(l,u.filter(l,oe,a,C,re),a,C,re);u._rotate=g==2?u.rotate(l,X,a,C):0;let G=u._size;u._size=dt(u.size(l,X,a,r)),G!=null&&u._size!=G&&(o=!1)}),o}function ec(r){let o=!0;return ii.forEach((u,a)=>{let p=u(l,a,Qt,r);p!=Vt[a]&&(o=!1),Vt[a]=p}),o}function tc(){for(let r=0;r<F.length;r++){let o=F[r];if(!o.show||!o._show)continue;let u=o.side,a=u%2,p,g,y=o.stroke(l,r),k=u==0||u==3?-1:1,[T,P]=o._found;if(o.label!=null){let je=o.labelGap*k,nt=Le((o._lpos+je)*se);ci(o.labelFont[0],y,"center",u==2?jl:qi),m.save(),a==1?(p=g=0,m.translate(nt,Le(ct+mt/2)),m.rotate((u==3?-xn:xn)/2)):(p=Le(et+Ze/2),g=nt);let tl=rs(o.label)?o.label(l,r,T,P):o.label;m.fillText(tl,p,g),m.restore()}if(P==0)continue;let C=D[o.scale],H=a==0?Ze:mt,j=a==0?et:ct,oe=o._splits,re=C.distr==2?oe.map(je=>gt[je]):oe,X=C.distr==2?gt[oe[1]]-gt[oe[0]]:T,G=o.ticks,z=o.border,ge=G.show?G.size:0,ke=Le(ge*se),ze=Le((o.alignTo==2?o._size-ge-o.gap:o.gap)*se),ae=o._rotate*-xn/180,xe=E(o._pos*se),tt=(ke+ze)*k,Ye=xe+tt;g=a==0?Ye:0,p=a==1?Ye:0;let ft=o.font[0],vt=o.align==1?Al:o.align==2?dr:ae>0?Al:ae<0?dr:a==0?"center":u==3?dr:Al,Dt=ae||a==1?"middle":u==2?jl:qi;ci(ft,y,vt,Dt);let lt=o.font[1]*o.lineGap,ht=oe.map(je=>E(f(je,C,H,j))),wt=o._values;for(let je=0;je<wt.length;je++){let nt=wt[je];if(nt!=null){a==0?p=ht[je]:g=ht[je],nt=""+nt;let tl=nt.indexOf(`
3
+ `)==-1?[nt]:nt.split(/\n/gm);for(let Ke=0;Ke<tl.length;Ke++){let Li=tl[Ke];ae?(m.save(),m.translate(p,g+Ke*lt),m.rotate(ae),m.fillText(Li,0,0),m.restore()):m.fillText(Li,p,g+Ke*lt)}}}G.show&&tr(ht,G.filter(l,re,r,P,X),a,u,xe,ke,he(G.width*se,3),G.stroke(l,r),G.dash,G.cap);let Et=o.grid;Et.show&&tr(ht,Et.filter(l,re,r,P,X),a,a==0?2:1,a==0?ct:et,a==0?mt:Ze,he(Et.width*se,3),Et.stroke(l,r),Et.dash,Et.cap),z.show&&tr([xe],[1],a==0?1:0,a==0?1:2,a==1?ct:et,a==1?mt:Ze,he(z.width*se,3),z.stroke(l,r),z.dash,z.cap)}Ve("drawAxes")}function vl(r){S.forEach((o,u)=>{u>0&&(o._paths=null,r&&(i==1?(o.min=null,o.max=null):o.facets.forEach(a=>{a.min=null,a.max=null})))})}let fn=!1,lr=!1,Il=[];function lc(){lr=!1;for(let r=0;r<Il.length;r++)Ve(...Il[r]);Il.length=0}function wl(){fn||(yu(_i),fn=!0)}function nc(r,o=!1){fn=!0,lr=o,r(l),_i(),o&&Il.length>0&&queueMicrotask(lc)}l.batch=nc;function _i(){if(Gn&&(Ks(),Gn=!1),hl&&($s(),hl=!1),rn){if(ve(b,Al,de),ve(b,jl,Pe),ve(b,ql,q),ve(b,Jl,N),ve(x,Al,de),ve(x,jl,Pe),ve(x,ql,q),ve(x,Jl,N),ve(h,ql,Ct),ve(h,Jl,jt),w.width=Le(Ct*se),w.height=Le(jt*se),F.forEach(({_el:r,_show:o,_size:u,_pos:a,side:p})=>{if(r!=null)if(o){let g=p===3||p===0?u:0,y=p%2==1;ve(r,y?"left":"top",a-g),ve(r,y?"width":"height",u),ve(r,y?"top":"left",y?Pe:de),ve(r,y?"height":"width",y?N:q),Ar(r,rl)}else rt(r,rl)}),cn=gl=Yn=Kn=qn=Jn=Zn=Qn=jn=null,Qe=1,Bl(!0),de!=fl||Pe!=Kt||q!=xt||N!=qt){vl(!1);let r=q/xt,o=N/qt;if(Ue&&!Jt&&V.left>=0){V.left*=r,V.top*=o,yl&&Pt(yl,Le(V.left),0,q,N),Sl&&Pt(Sl,0,Le(V.top),q,N);for(let u=0;u<at.length;u++){let a=at[u];a!=null&&(pl[u]*=r,ml[u]*=o,Pt(a,dt(pl[u]),dt(ml[u]),q,N))}}if(me.show&&!on&&me.left>=0&&me.width>0){me.left*=r,me.width*=r,me.top*=o,me.height*=o;for(let u in cr)ve(xl,u,me[u])}fl=de,Kt=Pe,xt=q,qt=N}Ve("setSize"),rn=!1}Ct>0&&jt>0&&(m.clearRect(0,0,w.width,w.height),Ve("drawClear"),B.forEach(r=>r()),Ve("draw")),me.show&&on&&(hn(me),on=!1),Ue&&Jt&&(el(null,!0,!1),Jt=!1),Q.show&&Q.live&&ut&&(or(),ut=!1),d||(d=!0,l.status=1,Ve("ready")),$l=!1,fn=!1}l.redraw=(r,o)=>{hl=o||!1,r!==!1?Wt(L,A.min,A.max):wl()};function nr(r,o){let u=D[r];if(u.from==null){if(We==0){let a=u.range(l,o.min,o.max,r);o.min=a[0],o.max=a[1]}if(o.min>o.max){let a=o.min;o.min=o.max,o.max=a}if(We>1&&o.min!=null&&o.max!=null&&o.max-o.min<1e-16)return;r==L&&u.distr==2&&We>0&&(o.min=St(o.min,t[0]),o.max=St(o.max,t[0]),o.min==o.max&&o.max++),I[r]=o,Gn=!0,wl()}}l.setScale=nr;let rr,ir,yl,Sl,di,pi,bl,kl,mi,gi,pe,Se,zt=!1;const $e=V.drag;let He=$e.x,Oe=$e.y;Ue&&(V.x&&(rr=_t(Uc,x)),V.y&&(ir=_t(Bc,x)),A.ori==0?(yl=rr,Sl=ir):(yl=ir,Sl=rr),pe=V.left,Se=V.top);const me=l.select=De({show:!0,over:!0,left:0,width:0,top:0,height:0},e.select),xl=me.show?_t(Gc,me.over?x:b):null;function hn(r,o){if(me.show){for(let u in r)me[u]=r[u],u in cr&&ve(xl,u,r[u]);o!==!1&&Ve("setSelect")}}l.setSelect=hn;function rc(r){if(S[r].show)Ee&&Ar(be[r],rl);else if(Ee&&rt(be[r],rl),Ue){let u=dl?at[0]:at[r];u!=null&&Pt(u,-10,-10,q,N)}}function Wt(r,o,u){nr(r,{min:o,max:u})}function Mt(r,o,u,a){o.focus!=null&&uc(r),o.show!=null&&S.forEach((p,g)=>{g>0&&(r==g||r==null)&&(p.show=o.show,rc(g),i==2?(Wt(p.facets[0].scale,null,null),Wt(p.facets[1].scale,null,null)):Wt(p.scale,null,null),wl())}),u!==!1&&Ve("setSeries",r,o),a&&Yl("setSeries",l,r,o)}l.setSeries=Mt;function ic(r,o){De(U[r],o)}function oc(r,o){r.fill=ee(r.fill||null),r.dir=ie(r.dir,-1),o=o??U.length,U.splice(o,0,r)}function sc(r){r==null?U.length=0:U.splice(r,1)}l.addBand=oc,l.setBand=ic,l.delBand=sc;function cc(r,o){S[r].alpha=o,Ue&&at[r]!=null&&(at[r].style.opacity=o),Ee&&be[r]&&(be[r].style.opacity=o)}let Rt,$t,Xt;const Tl={focus:!0};function uc(r){if(r!=Xt){let o=r==null,u=Tt.alpha!=1;S.forEach((a,p)=>{if(i==1||p>0){let g=o||p==0||p==r;a._focus=o?null:g,u&&cc(p,g?1:Tt.alpha)}}),Xt=r,u&&wl()}}Ee&&_l&&Be(Xi,ne,r=>{V._lock||(Zt(r),Xt!=null&&Mt(null,Tl,!0,Me.setSeries))});function At(r,o,u){let a=D[o];u&&(r=r/se-(a.ori==1?Pe:de));let p=q;a.ori==1&&(p=N,r=p-r),a.dir==-1&&(r=p-r);let g=a._min,y=a._max,k=r/p,T=g+(y-g)*k,P=a.distr;return P==3?Cl(10,T):P==4?cu(T,a.asinh):P==100?a.bwd(T):T}function ac(r,o){let u=At(r,L,o);return St(u,t[0],Ne,Fe)}l.valToIdx=r=>St(r,t[0]),l.posToIdx=ac,l.posToVal=At,l.valToPos=(r,o,u)=>D[o].ori==0?s(r,D[o],u?Ze:q,u?et:0):c(r,D[o],u?mt:N,u?ct:0),l.setCursor=(r,o,u)=>{pe=r.left,Se=r.top,el(null,o,u)};function vi(r,o){ve(xl,Al,me.left=r),ve(xl,ql,me.width=o)}function wi(r,o){ve(xl,jl,me.top=r),ve(xl,Jl,me.height=o)}let Gl=A.ori==0?vi:wi,Ul=A.ori==1?vi:wi;function fc(){if(Ee&&Q.live)for(let r=i==2?1:0;r<S.length;r++){if(r==0&&st)continue;let o=Q.values[r],u=0;for(let a in o)kt[r][u++].firstChild.nodeValue=o[a]}}function or(r,o){if(r!=null&&(r.idxs?r.idxs.forEach((u,a)=>{ue[a]=u}):hu(r.idx)||ue.fill(r.idx),Q.idx=ue[0]),Ee&&Q.live){for(let u=0;u<S.length;u++)(u>0||i==1&&!st)&&hc(u,ue[u]);fc()}ut=!1,o!==!1&&Ve("setLegend")}l.setLegend=or;function hc(r,o){let u=S[r],a=r==0&&Z==2?gt:t[r],p;st?p=u.values(l,r,o)??Ot:(p=u.value(l,o==null?null:a[o],r,o),p=p==null?Ot:{_:p}),Q.values[r]=p}function el(r,o,u){mi=pe,gi=Se,[pe,Se]=V.move(l,pe,Se),V.left=pe,V.top=Se,Ue&&(yl&&Pt(yl,Le(pe),0,q,N),Sl&&Pt(Sl,0,Le(Se),q,N));let a,p=Ne>Fe;Rt=fe,$t=null;let g=A.ori==0?q:N,y=A.ori==1?q:N;if(pe<0||We==0||p){a=V.idx=null;for(let k=0;k<S.length;k++){let T=at[k];T!=null&&Pt(T,-10,-10,q,N)}_l&&Mt(null,Tl,!0,r==null&&Me.setSeries),Q.live&&(ue.fill(a),ut=!0)}else{let k,T,P;i==1&&(k=A.ori==0?pe:Se,T=At(k,L),a=V.idx=St(T,t[0],Ne,Fe),P=O(t[0][a],A,g,0));let C=-10,H=-10,j=0,oe=0,re=!0,X="",G="";for(let z=i==2?1:0;z<S.length;z++){let ge=S[z],ke=ue[z],ze=ke==null?null:i==1?t[z][ke]:t[z][1][ke],ae=V.dataIdx(l,z,a,T),xe=ae==null?null:i==1?t[z][ae]:t[z][1][ae];if(ut=ut||xe!=ze||ae!=ke,ue[z]=ae,z>0&&ge.show){let tt=ae==null?-10:ae==a?P:O(i==1?t[0][ae]:t[z][0][ae],A,g,0),Ye=xe==null?-10:Y(xe,i==1?D[ge.scale]:D[ge.facets[1].scale],y,0);if(_l&&xe!=null){let ft=A.ori==1?pe:Se,vt=Ce(Tt.dist(l,z,ae,Ye,ft));if(vt<Rt){let Dt=Tt.bias;if(Dt!=0){let lt=At(ft,ge.scale),ht=xe>=0?1:-1,wt=lt>=0?1:-1;wt==ht&&(wt==1?Dt==1?xe>=lt:xe<=lt:Dt==1?xe<=lt:xe>=lt)&&(Rt=vt,$t=z)}else Rt=vt,$t=z}}if(ut||dl){let ft,vt;A.ori==0?(ft=tt,vt=Ye):(ft=Ye,vt=tt);let Dt,lt,ht,wt,Et,je,nt=!0,tl=Ie.bbox;if(tl!=null){nt=!1;let Ke=tl(l,z);ht=Ke.left,wt=Ke.top,Dt=Ke.width,lt=Ke.height}else ht=ft,wt=vt,Dt=lt=Ie.size(l,z);if(je=Ie.fill(l,z),Et=Ie.stroke(l,z),dl)z==$t&&Rt<=Tt.prox&&(C=ht,H=wt,j=Dt,oe=lt,re=nt,X=je,G=Et);else{let Ke=at[z];Ke!=null&&(pl[z]=ht,ml[z]=wt,oo(Ke,Dt,lt,nt),ro(Ke,je,Et),Pt(Ke,dt(ht),dt(wt),q,N))}}}}if(dl){let z=Tt.prox,ge=Xt==null?Rt<=z:Rt>z||$t!=Xt;if(ut||ge){let ke=at[0];ke!=null&&(pl[0]=C,ml[0]=H,oo(ke,j,oe,re),ro(ke,X,G),Pt(ke,dt(C),dt(H),q,N))}}}if(me.show&&zt)if(r!=null){let[k,T]=Me.scales,[P,C]=Me.match,[H,j]=r.cursor.sync.scales,oe=r.cursor.drag;if(He=oe._x,Oe=oe._y,He||Oe){let{left:re,top:X,width:G,height:z}=r.select,ge=r.scales[H].ori,ke=r.posToVal,ze,ae,xe,tt,Ye,ft=k!=null&&P(k,H),vt=T!=null&&C(T,j);ft&&He?(ge==0?(ze=re,ae=G):(ze=X,ae=z),xe=D[k],tt=O(ke(ze,H),xe,g,0),Ye=O(ke(ze+ae,H),xe,g,0),Gl(bt(tt,Ye),Ce(Ye-tt))):Gl(0,g),vt&&Oe?(ge==1?(ze=re,ae=G):(ze=X,ae=z),xe=D[T],tt=Y(ke(ze,j),xe,y,0),Ye=Y(ke(ze+ae,j),xe,y,0),Ul(bt(tt,Ye),Ce(Ye-tt))):Ul(0,y)}else ur()}else{let k=Ce(mi-di),T=Ce(gi-pi);if(A.ori==1){let j=k;k=T,T=j}He=$e.x&&k>=$e.dist,Oe=$e.y&&T>=$e.dist;let P=$e.uni;P!=null?He&&Oe&&(He=k>=P,Oe=T>=P,!He&&!Oe&&(T>k?Oe=!0:He=!0)):$e.x&&$e.y&&(He||Oe)&&(He=Oe=!0);let C,H;He&&(A.ori==0?(C=bl,H=pe):(C=kl,H=Se),Gl(bt(C,H),Ce(H-C)),Oe||Ul(0,y)),Oe&&(A.ori==1?(C=bl,H=pe):(C=kl,H=Se),Ul(bt(C,H),Ce(H-C)),He||Gl(0,g)),!He&&!Oe&&(Gl(0,0),Ul(0,0))}if($e._x=He,$e._y=Oe,r==null){if(u){if(Pi!=null){let[k,T]=Me.scales;Me.values[0]=k!=null?At(A.ori==0?pe:Se,k):null,Me.values[1]=T!=null?At(A.ori==1?pe:Se,T):null}Yl(pr,l,pe,Se,q,N,a)}if(_l){let k=u&&Me.setSeries,T=Tt.prox;Xt==null?Rt<=T&&Mt($t,Tl,!0,k):Rt>T?Mt(null,Tl,!0,k):$t!=Xt&&Mt($t,Tl,!0,k)}}ut&&(Q.idx=a,or()),o!==!1&&Ve("setCursor")}let It=null;Object.defineProperty(l,"rect",{get(){return It==null&&Bl(!1),It}});function Bl(r=!1){r?It=null:(It=x.getBoundingClientRect(),Ve("syncRect",It))}function yi(r,o,u,a,p,g,y){V._lock||zt&&r!=null&&r.movementX==0&&r.movementY==0||(sr(r,o,u,a,p,g,y,!1,r!=null),r!=null?el(null,!0,!0):el(o,!0,!1))}function sr(r,o,u,a,p,g,y,k,T){if(It==null&&Bl(!1),Zt(r),r!=null)u=r.clientX-It.left,a=r.clientY-It.top;else{if(u<0||a<0){pe=-10,Se=-10;return}let[P,C]=Me.scales,H=o.cursor.sync,[j,oe]=H.values,[re,X]=H.scales,[G,z]=Me.match,ge=o.axes[0].side%2==1,ke=A.ori==0?q:N,ze=A.ori==1?q:N,ae=ge?g:p,xe=ge?p:g,tt=ge?a:u,Ye=ge?u:a;if(re!=null?u=G(P,re)?f(j,D[P],ke,0):-10:u=ke*(tt/ae),X!=null?a=z(C,X)?f(oe,D[C],ze,0):-10:a=ze*(Ye/xe),A.ori==1){let ft=u;u=a,a=ft}}T&&(o==null||o.cursor.event.type==pr)&&((u<=1||u>=q-1)&&(u=ll(u,q)),(a<=1||a>=N-1)&&(a=ll(a,N))),k?(di=u,pi=a,[bl,kl]=V.move(l,u,a)):(pe=u,Se=a)}const cr={width:0,height:0,left:0,top:0};function ur(){hn(cr,!1)}let Si,bi,ki,xi;function Ti(r,o,u,a,p,g,y){zt=!0,He=Oe=$e._x=$e._y=!1,sr(r,o,u,a,p,g,y,!0,!1),r!=null&&(Be(mr,Tr,Mi,!1),Yl(Zi,l,bl,kl,q,N,null));let{left:k,top:T,width:P,height:C}=me;Si=k,bi=T,ki=P,xi=C}function Mi(r,o,u,a,p,g,y){zt=$e._x=$e._y=!1,sr(r,o,u,a,p,g,y,!1,!0);let{left:k,top:T,width:P,height:C}=me,H=P>0||C>0,j=Si!=k||bi!=T||ki!=P||xi!=C;if(H&&j&&hn(me),$e.setScale&&H&&j){let oe=k,re=P,X=T,G=C;if(A.ori==1&&(oe=T,re=C,X=k,G=P),He&&Wt(L,At(oe,L),At(oe+re,L)),Oe)for(let z in D){let ge=D[z];z!=L&&ge.from==null&&ge.min!=fe&&Wt(z,At(X+G,z),At(X,z))}ur()}else V.lock&&(V._lock=!V._lock,el(o,!0,r!=null));r!=null&&(al(mr,Tr),Yl(mr,l,pe,Se,q,N,null))}function _c(r,o,u,a,p,g,y){if(V._lock)return;Zt(r);let k=zt;if(zt){let T=!0,P=!0,C=10,H,j;A.ori==0?(H=He,j=Oe):(H=Oe,j=He),H&&j&&(T=pe<=C||pe>=q-C,P=Se<=C||Se>=N-C),H&&T&&(pe=pe<bl?0:q),j&&P&&(Se=Se<kl?0:N),el(null,!0,!0),zt=!1}pe=-10,Se=-10,ue.fill(null),el(null,!0,!0),k&&(zt=k)}function Ai(r,o,u,a,p,g,y){V._lock||(Zt(r),Bn(),ur(),r!=null&&Yl(eo,l,pe,Se,q,N,null))}function Di(){F.forEach(Da),Un(l.width,l.height,!0)}il(En,El,Di);const Ml={};Ml.mousedown=Ti,Ml.mousemove=yi,Ml.mouseup=Mi,Ml.dblclick=Ai,Ml.setSeries=(r,o,u,a)=>{let p=Me.match[2];u=p(l,o,u),u!=-1&&Mt(u,a,!0,!1)},Ue&&(Be(Zi,x,Ti),Be(pr,x,yi),Be(Qi,x,r=>{Zt(r),Bl(!1)}),Be(Xi,x,_c),Be(eo,x,Ai),Rr.add(l),l.syncRect=Bl);const _n=l.hooks=e.hooks||{};function Ve(r,o,u){lr?Il.push([r,o,u]):r in _n&&_n[r].forEach(a=>{a.call(null,l,o,u)})}(e.plugins||[]).forEach(r=>{for(let o in r.hooks)_n[o]=(_n[o]||[]).concat(r.hooks[o])});const Ei=(r,o,u)=>u,Me=De({key:null,setSeries:!1,filters:{pub:fo,sub:fo},scales:[L,S[1]?S[1].scale:null],match:[ho,ho,Ei],values:[null,null]},V.sync);Me.match.length==2&&Me.match.push(Ei),V.sync=Me;const Pi=Me.key,ar=Ds(Pi);function Yl(r,o,u,a,p,g,y){Me.filters.pub(r,o,u,a,p,g,y)&&ar.pub(r,o,u,a,p,g,y)}ar.sub(l);function dc(r,o,u,a,p,g,y){Me.filters.sub(r,o,u,a,p,g,y)&&Ml[r](null,o,u,a,p,g,y)}l.pub=dc;function pc(){ar.unsub(l),Rr.delete(l),Yt.clear(),Dr(En,El,Di),_.remove(),ne==null||ne.remove(),Ve("destroy")}l.destroy=pc;function fr(){Ve("init",e,t),oi(t||e.data,!1),I[L]?nr(L,I[L]):Bn(),on=me.show&&(me.width>0||me.height>0),Jt=ut=!0,Un(e.width,e.height)}return S.forEach(ri),F.forEach(js),n?n instanceof HTMLElement?(n.appendChild(_),fr()):n(l,fr):fr(),l}Ge.assign=De;Ge.fmtNum=jr;Ge.rangeNum=Pn;Ge.rangeLog=Hn;Ge.rangeAsinh=Br;Ge.orient=sl;Ge.pxRatio=se;Ge.join=wu;Ge.fmtDate=qr,Ge.tzDate=Pu;Ge.sync=Ds;{Ge.addGap=ha,Ge.clipGaps=zn;let e=Ge.paths={points:Ns};e.linear=Hs,e.stepped=pa,e.bars=ma,e.spline=va}const wn=["#58a6ff","#3fb950","#d29922","#db6d28","#f85149","#bc8cff","#39c5cf"];function Fo({opts:e,data:t}){const n=Gi(null),l=Gi(null);return qo(()=>{if(!n.current)return;(()=>{var f;(f=l.current)==null||f.destroy();const c=n.current.clientWidth||720;l.current=new Ge(e(c),t,n.current)})();const s=new ResizeObserver(()=>{l.current&&n.current&&l.current.setSize({width:n.current.clientWidth,height:260})});return s.observe(n.current),()=>{var c;s.disconnect(),(c=l.current)==null||c.destroy(),l.current=null}},[t]),v("div",{class:"chart",ref:n})}function Ea({data:e}){var b,x;const t=e.history;if(t.length<2)return v(Ll,{children:"Need at least two runs to show trends. Keep running `edsger benchmark`."});const n=t.map(M=>Date.parse(M.generatedAt)/1e3),l=t.map(M=>M.overall),i=((b=e.latest)==null?void 0:b.categories.map(M=>M.id))??Object.keys(t[0].categories),s=new Map((x=e.latest)==null?void 0:x.categories.map(M=>[M.id,M.name])),c=M=>({width:M,height:260,scales:{y:{range:[0,100]}},axes:Ho(),series:[{},{label:"Overall",stroke:"#e6edf3",width:2,points:{show:!0,size:6,fill:"#e6edf3"}}]}),f=M=>({width:M,height:260,scales:{y:{range:[0,100]}},axes:Ho(),series:[{},...i.map((E,R)=>({label:s.get(E)??E,stroke:wn[R%wn.length],width:2}))]}),d=[n,l],_=[n,...i.map(M=>t.map(E=>E.categories[M]==null?null:Math.round(E.categories[M]*100)))],w=l[0],m=l[l.length-1],h=m-w;return v("div",{class:"stack",children:[v("section",{class:"card",children:[v("h2",{class:"card-title",children:["Overall score over time"," ",v("span",{class:"muted",children:["· ",h>=0?"+":"",h," since first run"]})]}),v(Fo,{opts:c,data:d}),v("div",{class:"legend",children:[v("span",{children:["First ",v("b",{children:w})]}),v("span",{children:["Latest ",v("b",{style:{color:Wr(m/100)},children:m})]}),v("span",{children:["Runs ",t.length]})]})]}),v("section",{class:"card",children:[v("h2",{class:"card-title",children:"Category scores over time"}),v(Fo,{opts:f,data:_}),v("div",{class:"legend wrap",children:i.map((M,E)=>v("span",{children:[v("span",{class:"swatch",style:{background:wn[E%wn.length]}}),s.get(M)??M]},M))})]})]})}function Ho(){const e="#8b949e",t={stroke:"#21262d",width:1};return[{stroke:e,grid:t,ticks:t},{stroke:e,grid:t,ticks:t}]}const Pa=[{id:"overview",label:"Overview"},{id:"criteria",label:"Criteria"},{id:"history",label:"History"},{id:"trends",label:"Trends"}];function La(){var f;const[e,t]=kn(null),[n,l]=kn(null),[i,s]=kn("overview");qo(()=>{Dc().then(t).catch(d=>l(d instanceof Error?d.message:String(d)))},[]);const c=(e==null?void 0:e.repo)??((f=e==null?void 0:e.latest)==null?void 0:f.repo)??"";return v("div",{class:"app",children:[v("header",{class:"topbar",children:[v("div",{class:"brand",children:[v("span",{class:"logo",children:"edsger"}),v("span",{class:"subtitle",children:"benchmark dashboard"})]}),c?v("div",{class:"repo",children:c}):null]}),v("nav",{class:"tabs",children:Pa.map(d=>v("button",{class:`tab ${i===d.id?"active":""}`,onClick:()=>s(d.id),children:d.label},d.id))}),v("main",{class:"content",children:n?v(Ll,{children:[v("strong",{children:"Failed to load data."}),v("div",{class:"muted",children:n})]}):e?i==="overview"?v(Lc,{data:e}):i==="criteria"?v(Cc,{data:e}):i==="history"?v(Rc,{data:e}):v(Ea,{data:e}):v(Ll,{children:"Loading…"})}),v("footer",{class:"foot",children:v("span",{children:"Generated by edsger"})})]})}const Oo=document.getElementById("app");Oo&&kc(v(La,{}),Oo);
@@ -0,0 +1 @@
1
+ .uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg: #0d1117;--panel: #161b22;--panel-2: #1c2129;--border: #30363d;--text: #e6edf3;--muted: #8b949e;--accent: #58a6ff;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--panel-2);padding:1px 5px;border-radius:5px}.app{max-width:1040px;margin:0 auto;padding:0 20px 60px}.topbar{display:flex;align-items:baseline;justify-content:space-between;padding:22px 0 14px}.brand{display:flex;align-items:baseline;gap:10px}.logo{font-weight:800;font-size:22px;letter-spacing:-.5px}.subtitle{color:var(--muted)}.repo{color:var(--muted);font-family:ui-monospace,monospace}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:22px}.tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:10px 14px;font-size:14px;cursor:pointer}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.stack{display:flex;flex-direction:column;gap:18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 720px){.two-col{grid-template-columns:1fr}}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px 20px}.card-title{margin:0 0 14px;font-size:15px;font-weight:600}.hero{display:flex;gap:26px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:22px}@media (max-width: 720px){.hero{flex-direction:column;align-items:flex-start}}.hero-meta{flex:1}.summary{margin:0 0 14px;font-size:15px}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 18px;margin:0}.facts div{display:flex;flex-direction:column}.facts dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}.facts dd{margin:2px 0 0}.ring svg{display:block}.ring-track{fill:none;stroke:var(--border);stroke-width:12}.ring-value{fill:none;stroke-width:12;stroke-linecap:round;transition:stroke-dasharray .6s ease}.ring-score{font-size:34px;font-weight:800;text-anchor:middle}.ring-grade{font-size:12px;fill:var(--muted);text-anchor:middle}.bar-row{display:grid;grid-template-columns:220px 1fr 120px;align-items:center;gap:12px;padding:5px 0}@media (max-width: 620px){.bar-row{grid-template-columns:130px 1fr 70px}}.bar-label{color:var(--text)}.bar-track{background:var(--panel-2);border-radius:6px;height:10px;overflow:hidden}.bar-fill{height:100%;border-radius:6px;transition:width .5s ease}.bar-value{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.list{margin:0;padding-left:18px}.list li{margin:4px 0}.list.good li::marker{color:#3fb950}.list.bad li::marker{color:#f85149}.recs{list-style:none;margin:0;padding:0}.recs li{padding:8px 0;border-bottom:1px solid var(--border)}.recs li:last-child{border-bottom:none}.pill{display:inline-block;font-size:11px;text-transform:uppercase;border-radius:20px;padding:2px 8px;margin-right:8px;font-weight:700}.pill.high{background:#6e2019;color:#ff7b72}.pill.medium{background:#5a4212;color:#e3b341}.pill.low{background:#22333b;color:#7ee2c8}.run-picker{display:flex;align-items:center;gap:10px}.run-picker select,select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.crit-list{display:flex;flex-direction:column;gap:6px}.crit{border:1px solid var(--border);border-radius:8px;padding:8px 12px;background:var(--panel-2)}.crit summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.crit summary::-webkit-details-marker{display:none}.score-chip{font-variant-numeric:tabular-nums;font-weight:700;color:#0d1117;border-radius:6px;padding:1px 8px;font-size:12px}.crit-title{font-weight:500}.crit-just{margin:10px 0 6px;color:var(--text)}.evidence{margin:0;padding-left:18px}.evidence li{margin:3px 0}.table-wrap{overflow-x:auto}table.history{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.history th,table.history td{padding:7px 10px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}table.history th{color:var(--muted);font-weight:600;font-size:12px}table.history .num{text-align:right}table.history .cat{color:var(--muted)}table.history .strong{font-weight:700}.up{color:#3fb950}.down{color:#f85149}.grade-dot{font-size:10px}.chart{width:100%}.legend{display:flex;gap:18px;color:var(--muted);margin-top:12px;flex-wrap:wrap}.legend.wrap span{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.empty{text-align:center;color:var(--muted);padding:60px 20px}.muted{color:var(--muted)}.foot{text-align:center;color:var(--muted);margin-top:34px;font-size:12px}.uplot,.u-title,.u-legend{color:var(--text)}.u-legend .u-marker{border-radius:2px}
@@ -0,0 +1,14 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Edsger — Benchmark Dashboard</title>
7
+ <!-- __EDSGER_DATA__ is injected here when exported as a single self-contained file. -->
8
+ <script type="module" crossorigin src="./assets/index-C7hwGkuU.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-Dhc-7q5o.css">
10
+ </head>
11
+ <body>
12
+ <div id="app"></div>
13
+ </body>
14
+ </html>