claude-session-memory 0.2.0 → 0.3.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 (44) hide show
  1. package/README.md +47 -10
  2. package/dist/cli.js +0 -0
  3. package/dist/database.js +15 -0
  4. package/dist/database.js.map +1 -1
  5. package/dist/server.js +89 -0
  6. package/dist/server.js.map +1 -1
  7. package/dist/tools/get-stats.d.ts +7 -2
  8. package/dist/tools/get-stats.js +22 -0
  9. package/dist/tools/get-stats.js.map +1 -1
  10. package/dist/tools/query-memory.js +2 -0
  11. package/dist/tools/query-memory.js.map +1 -1
  12. package/dist/tools/review-session.d.ts +19 -0
  13. package/dist/tools/review-session.js +54 -0
  14. package/dist/tools/review-session.js.map +1 -0
  15. package/dist/utils/session-intelligence.d.ts +36 -0
  16. package/dist/utils/session-intelligence.js +154 -0
  17. package/dist/utils/session-intelligence.js.map +1 -0
  18. package/dist/utils/token-savings.d.ts +10 -0
  19. package/dist/utils/token-savings.js +27 -0
  20. package/dist/utils/token-savings.js.map +1 -0
  21. package/dist/web/routes/analytics.js +6 -0
  22. package/dist/web/routes/analytics.js.map +1 -1
  23. package/dist/web-dist/assets/AnalyticsPage-B0ZCSmi7.js +3 -0
  24. package/dist/web-dist/assets/{DashboardPage-DtQ8bcLR.js → DashboardPage-BmkQ7Pir.js} +1 -1
  25. package/dist/web-dist/assets/{DecisionDetailPage-CoNQF-FB.js → DecisionDetailPage-DSNQOk0G.js} +1 -1
  26. package/dist/web-dist/assets/{DecisionsPage-F2KA9sQF.js → DecisionsPage-Druu3aUr.js} +1 -1
  27. package/dist/web-dist/assets/{ImportExportPage-CqhNTw6I.js → ImportExportPage-yQxs-fBD.js} +1 -1
  28. package/dist/web-dist/assets/{SessionDetailPage-DtQ1Jsmp.js → SessionDetailPage-D0ruOy8B.js} +1 -1
  29. package/dist/web-dist/assets/{SessionsPage-BVR-mFw1.js → SessionsPage-5lqQKejq.js} +1 -1
  30. package/dist/web-dist/assets/{SettingsPage-Dluf2etQ.js → SettingsPage-Dj2KkiKe.js} +1 -1
  31. package/dist/web-dist/assets/{StatCard.vue_vue_type_script_setup_true_lang-DRCbHjfR.js → StatCard.vue_vue_type_script_setup_true_lang-HwJVk8w_.js} +1 -1
  32. package/dist/web-dist/assets/{TagPill.vue_vue_type_script_setup_true_lang-D3QpKM6-.js → TagPill.vue_vue_type_script_setup_true_lang-CA2dOM-H.js} +1 -1
  33. package/dist/web-dist/assets/{decisions-D4RIsPGu.js → decisions-zp0xvZqp.js} +1 -1
  34. package/dist/web-dist/assets/{index-CB5v6K3L.js → index-Bl3DbLj3.js} +2 -2
  35. package/dist/web-dist/assets/{index-DnStDInH.css → index-CoMkCnBk.css} +1 -1
  36. package/dist/web-dist/assets/{installCanvasRenderer-ZjWTVaVA.js → installCanvasRenderer-CuEbBLw0.js} +1 -1
  37. package/dist/web-dist/assets/{sessions-CbnjP7UX.js → sessions-CtlNQ8lw.js} +1 -1
  38. package/dist/web-dist/assets/useApi-DkK919W_.js +1 -0
  39. package/dist/web-dist/index.html +2 -2
  40. package/package.json +1 -1
  41. package/schema.sql +12 -0
  42. package/templates/memory-instructions.md +10 -0
  43. package/dist/web-dist/assets/AnalyticsPage-CFlZyCBZ.js +0 -3
  44. package/dist/web-dist/assets/useApi-goimj9yG.js +0 -1
@@ -0,0 +1,154 @@
1
+ import { execSync } from 'child_process';
2
+ // --- Last Session ---
3
+ export function getLastSessionContext(db) {
4
+ const session = db.prepare(`
5
+ SELECT id, started_at, ended_at, git_branch, summary, decision_count
6
+ FROM sessions
7
+ WHERE ended_at IS NOT NULL
8
+ ORDER BY ended_at DESC
9
+ LIMIT 1
10
+ `).get();
11
+ if (!session)
12
+ return null;
13
+ const decisions = db.prepare(`
14
+ SELECT d.id, d.title, d.tags
15
+ FROM decisions d
16
+ WHERE d.session_id = ?
17
+ ORDER BY d.created_at DESC
18
+ `).all(session.id);
19
+ const files = db.prepare(`
20
+ SELECT DISTINCT df.file_path
21
+ FROM decision_files df
22
+ JOIN decisions d ON d.id = df.decision_id
23
+ WHERE d.session_id = ?
24
+ `).all(session.id);
25
+ const endedMs = new Date(session.ended_at).getTime();
26
+ const hoursAgo = Math.max(0, Math.round((Date.now() - endedMs) / (1000 * 60 * 60)));
27
+ return {
28
+ sessionId: session.id,
29
+ startedAt: session.started_at,
30
+ endedAt: session.ended_at,
31
+ branch: session.git_branch,
32
+ summary: session.summary,
33
+ decisionCount: session.decision_count,
34
+ decisions: decisions.map(d => ({
35
+ id: d.id,
36
+ title: d.title,
37
+ tags: d.tags ? JSON.parse(d.tags) : [],
38
+ })),
39
+ affectedFiles: files.map(f => f.file_path),
40
+ hoursAgo,
41
+ };
42
+ }
43
+ // --- Current Git Work ---
44
+ export function detectCurrentWork(projectRoot) {
45
+ const result = {
46
+ branch: null,
47
+ modifiedFiles: [],
48
+ stagedFiles: [],
49
+ uncommittedChangeCount: 0,
50
+ };
51
+ try {
52
+ result.branch = execSync('git branch --show-current', { cwd: projectRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim() || null;
53
+ }
54
+ catch { /* not a git repo */ }
55
+ try {
56
+ const modified = execSync('git diff --name-only', { cwd: projectRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
57
+ result.modifiedFiles = modified ? modified.split('\n') : [];
58
+ }
59
+ catch { /* ignore */ }
60
+ try {
61
+ const staged = execSync('git diff --cached --name-only', { cwd: projectRoot, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
62
+ result.stagedFiles = staged ? staged.split('\n') : [];
63
+ }
64
+ catch { /* ignore */ }
65
+ result.uncommittedChangeCount = result.modifiedFiles.length + result.stagedFiles.length;
66
+ return result;
67
+ }
68
+ // --- Relevant Decisions ---
69
+ export function getRelevantDecisions(db, context) {
70
+ const limit = context.limit || 5;
71
+ const allFiles = context.modifiedFiles || [];
72
+ const results = [];
73
+ const seenIds = new Set();
74
+ // Strategy 1: Decisions linked to currently modified files
75
+ if (allFiles.length > 0) {
76
+ for (const filePath of allFiles.slice(0, 20)) { // cap to avoid excessive queries
77
+ const rows = db.prepare(`
78
+ SELECT d.id, d.title, d.decision, d.tags, df.file_path
79
+ FROM decisions d
80
+ JOIN decision_files df ON d.id = df.decision_id
81
+ WHERE d.status = 'active' AND df.file_path LIKE ?
82
+ ORDER BY d.created_at DESC
83
+ LIMIT 3
84
+ `).all(`%${filePath}%`);
85
+ for (const row of rows) {
86
+ if (!seenIds.has(row.id) && results.length < limit) {
87
+ seenIds.add(row.id);
88
+ results.push({
89
+ id: row.id,
90
+ title: row.title,
91
+ decision: row.decision,
92
+ tags: row.tags ? JSON.parse(row.tags) : [],
93
+ matchReason: `file:${row.file_path}`,
94
+ });
95
+ }
96
+ }
97
+ }
98
+ }
99
+ // Strategy 2: Match branch name keywords against tags
100
+ if (context.branch && results.length < limit) {
101
+ const keywords = context.branch
102
+ .replace(/^(feature|fix|hotfix|bugfix|chore|release)\//i, '')
103
+ .split(/[/\-_]/)
104
+ .filter(k => k.length > 2);
105
+ for (const keyword of keywords) {
106
+ if (results.length >= limit)
107
+ break;
108
+ const rows = db.prepare(`
109
+ SELECT d.id, d.title, d.decision, d.tags
110
+ FROM decisions d
111
+ WHERE d.status = 'active' AND d.tags LIKE ?
112
+ ORDER BY d.created_at DESC
113
+ LIMIT ?
114
+ `).all(`%"${keyword}"%`, limit);
115
+ for (const row of rows) {
116
+ if (!seenIds.has(row.id) && results.length < limit) {
117
+ seenIds.add(row.id);
118
+ results.push({
119
+ id: row.id,
120
+ title: row.title,
121
+ decision: row.decision,
122
+ tags: row.tags ? JSON.parse(row.tags) : [],
123
+ matchReason: `branch:${keyword}`,
124
+ });
125
+ }
126
+ }
127
+ }
128
+ }
129
+ // Strategy 3: Fallback to most recent active decisions
130
+ if (results.length < limit) {
131
+ const remaining = limit - results.length;
132
+ const rows = db.prepare(`
133
+ SELECT d.id, d.title, d.decision, d.tags
134
+ FROM decisions d
135
+ WHERE d.status = 'active'
136
+ ORDER BY d.created_at DESC
137
+ LIMIT ?
138
+ `).all(remaining + seenIds.size);
139
+ for (const row of rows) {
140
+ if (!seenIds.has(row.id) && results.length < limit) {
141
+ seenIds.add(row.id);
142
+ results.push({
143
+ id: row.id,
144
+ title: row.title,
145
+ decision: row.decision,
146
+ tags: row.tags ? JSON.parse(row.tags) : [],
147
+ matchReason: 'recent',
148
+ });
149
+ }
150
+ }
151
+ }
152
+ return results.slice(0, limit);
153
+ }
154
+ //# sourceMappingURL=session-intelligence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-intelligence.js","sourceRoot":"","sources":["../../src/utils/session-intelligence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type Database from 'better-sqlite3';
2
+ export interface TokenSavingsResult {
3
+ totalQueries: number;
4
+ successfulQueries: number;
5
+ estimatedTokensSaved: number;
6
+ estimatedMinutesSaved: number;
7
+ estimatedCostSaved: number;
8
+ }
9
+ export declare function logQuery(db: Database.Database, sessionId: string, query: string, resultCount: number): void;
10
+ export declare function getTokenSavings(db: Database.Database, days?: number): TokenSavingsResult;
@@ -0,0 +1,27 @@
1
+ const TOKENS_PER_SUCCESSFUL_QUERY = 300;
2
+ const MINUTES_PER_SUCCESSFUL_QUERY = 2;
3
+ const COST_PER_TOKEN = 0.000003; // ~$3/1M input tokens at Sonnet pricing
4
+ export function logQuery(db, sessionId, query, resultCount) {
5
+ const tokensSaved = resultCount > 0 ? TOKENS_PER_SUCCESSFUL_QUERY : 0;
6
+ db.prepare('INSERT INTO query_log (session_id, query, result_count, estimated_tokens_saved) VALUES (?, ?, ?, ?)').run(sessionId, query, resultCount, tokensSaved);
7
+ }
8
+ export function getTokenSavings(db, days = 30) {
9
+ const row = db.prepare(`
10
+ SELECT
11
+ COUNT(*) as totalQueries,
12
+ SUM(CASE WHEN result_count > 0 THEN 1 ELSE 0 END) as successfulQueries,
13
+ SUM(estimated_tokens_saved) as estimatedTokensSaved
14
+ FROM query_log
15
+ WHERE created_at >= datetime('now', '-' || ? || ' days')
16
+ `).get(days);
17
+ const successfulQueries = row.successfulQueries || 0;
18
+ const estimatedTokensSaved = row.estimatedTokensSaved || 0;
19
+ return {
20
+ totalQueries: row.totalQueries || 0,
21
+ successfulQueries,
22
+ estimatedTokensSaved,
23
+ estimatedMinutesSaved: successfulQueries * MINUTES_PER_SUCCESSFUL_QUERY,
24
+ estimatedCostSaved: parseFloat((estimatedTokensSaved * COST_PER_TOKEN).toFixed(4)),
25
+ };
26
+ }
27
+ //# sourceMappingURL=token-savings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-savings.js","sourceRoot":"","sources":["../../src/utils/token-savings.ts"],"names":[],"mappings":"AAEA,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,wCAAwC;AAUzE,MAAM,UAAU,QAAQ,CACtB,EAAqB,EACrB,SAAiB,EACjB,KAAa,EACb,WAAmB;IAEnB,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,EAAE,CAAC,OAAO,CACR,qGAAqG,CACtG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAqB,EAAE,OAAe,EAAE;IACtE,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;GAOtB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAsF,CAAC;IAElG,MAAM,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC;IACrD,MAAM,oBAAoB,GAAG,GAAG,CAAC,oBAAoB,IAAI,CAAC,CAAC;IAE3D,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC;QACnC,iBAAiB;QACjB,oBAAoB;QACpB,qBAAqB,EAAE,iBAAiB,GAAG,4BAA4B;QACvE,kBAAkB,EAAE,UAAU,CAAC,CAAC,oBAAoB,GAAG,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACnF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import { getDecisionQualityMetrics, getWorkPatternMetrics, getCodebaseMetrics, getSetting, saveCoachSummary, getCoachSummaries, getLatestCoachSummary } from '../queries.js';
2
2
  import { generateCoachInsights } from '../analytics-coach.js';
3
+ import { getTokenSavings } from '../../utils/token-savings.js';
3
4
  export function registerAnalyticsRoutes(app, deps) {
5
+ app.get('/api/analytics/token-savings', async (req) => {
6
+ const query = req.query;
7
+ const days = parseInt(query.days || '30', 10);
8
+ return getTokenSavings(deps.db, days);
9
+ });
4
10
  app.get('/api/analytics/quality', async () => {
5
11
  return getDecisionQualityMetrics(deps.db);
6
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/web/routes/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/web/routes/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import{d as ut,r as M,a as pt,e as gt,f as L,g,y as ht,u as _,F as H,q as E,t as I,l as F,h as Le,w as Ie,i as K,j as ge,n as Pe,c as vt,b as Re,k as ft,o as D}from"./index-Bl3DbLj3.js";import{a as $}from"./useApi-DkK919W_.js";import{_ as q,c as Qe,N as W,S as Ze,a4 as Ke,t as V,z as Je,a5 as Te,w as et,a6 as de,q as we,a7 as mt,o as yt,i as se,u as X,a8 as he,s as xt,M as bt,G as Ce,a9 as _t,h as Y,H as St,Q as tt,aa as rt,ab as te,b as oe,g as kt,d as at,m as At,ac as wt,f as Ct,E as Dt,ad as Lt,W as It,ae as j,af as Pt,ag as Rt,Y as Tt,ah as Gt,ai as Ot,aj as le,ak as Bt,al as nt,am as Nt,an as zt,ao as Vt,ap as Et,aq as Wt,ar as Ge,D as Ft,as as qt,at as Mt,K as xe,au as Oe,J as Be,av as jt,aw as Ht,ax as ee,ay as $t,az as Ut,a as Yt,aA as Xt,aB as Qt,aC as Zt,aD as Kt,B as Jt,aE as er,r as tr,$ as ce,a1 as rr,a2 as ar,a3 as nr,a0 as ir}from"./installCanvasRenderer-CuEbBLw0.js";var be=(function(i){q(t,i);function t(){var e=i!==null&&i.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.getInitialData=function(e,r){return Qe(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(e,r,n){var s=this.coordinateSystem;if(s&&s.clampData){var l=s.clampData(e),d=s.dataToPoint(l);if(n)W(s.getAxes(),function(u,h){if(u.type==="category"&&r!=null){var v=u.getTicksCoords(),m=u.getTickModel().get("alignWithLabel"),y=l[h],f=r[h]==="x1"||r[h]==="y1";if(f&&!m&&(y+=1),v.length<2)return;if(v.length===2){d[h]=u.toGlobalCoord(u.getExtent()[f?1:0]);return}for(var x=void 0,b=void 0,w=1,S=0;S<v.length;S++){var A=v[S].coord,C=S===v.length-1?v[S-1].tickValue+w:v[S].tickValue;if(C===y){b=A;break}else if(C<y)x=A;else if(x!=null&&C>y){b=(A+x)/2;break}S===1&&(w=C-v[0].tickValue)}b==null&&(x?x&&(b=v[v.length-1].coord):b=v[0].coord),d[h]=u.toGlobalCoord(b)}});else{var c=this.getData(),o=c.getLayout("offset"),a=c.getLayout("size"),p=s.getBaseAxis().isHorizontal()?0:1;d[p]+=o+a/2}return d}return[NaN,NaN]},t.type="series.__base_bar__",t.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod",defaultBarGap:"10%"},t})(Ze);Ze.registerClass(be);var sr=(function(i){q(t,i);function t(){var e=i!==null&&i.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.getInitialData=function(){return Qe(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},t.prototype.getProgressive=function(){return this.get("large")?this.get("progressive"):!1},t.prototype.getProgressiveThreshold=function(){var e=this.get("progressiveThreshold"),r=this.get("largeThreshold");return r>e&&(e=r),e},t.prototype.brushSelector=function(e,r,n){return n.rect(r.getItemLayout(e))},t.type="series.bar",t.dependencies=["grid","polar"],t.defaultOption=Ke(be.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:V.color.primary,borderWidth:2}},realtimeSort:!1}),t})(be),or=(function(){function i(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return i})(),Ne=(function(i){q(t,i);function t(e){var r=i.call(this,e)||this;return r.type="sausage",r}return t.prototype.getDefaultShape=function(){return new or},t.prototype.buildPath=function(e,r){var n=r.cx,s=r.cy,l=Math.max(r.r0||0,0),d=Math.max(r.r,0),c=(d-l)*.5,o=l+c,a=r.startAngle,p=r.endAngle,u=r.clockwise,h=Math.PI*2,v=u?p-a<h:a-p<h;v||(a=p-(u?h:-h));var m=Math.cos(a),y=Math.sin(a),f=Math.cos(p),x=Math.sin(p);v?(e.moveTo(m*l+n,y*l+s),e.arc(m*o+n,y*o+s,c,-Math.PI+a,a,!u)):e.moveTo(m*d+n,y*d+s),e.arc(n,s,d,a,p,!u),e.arc(f*o+n,x*o+s,c,p-Math.PI*2,p-Math.PI,!u),l!==0&&e.arc(n,s,l,p,a,u)},t})(Je);function lr(i,t){t=t||{};var e=t.isRoundCap;return function(r,n,s){var l=n.position;if(!l||l instanceof Array)return Te(r,n,s);var d=i(l),c=n.distance!=null?n.distance:5,o=this.shape,a=o.cx,p=o.cy,u=o.r,h=o.r0,v=(u+h)/2,m=o.startAngle,y=o.endAngle,f=(m+y)/2,x=e?Math.abs(u-h)/2:0,b=Math.cos,w=Math.sin,S=a+u*b(m),A=p+u*w(m),C="left",R="top";switch(d){case"startArc":S=a+(h-c)*b(f),A=p+(h-c)*w(f),C="center",R="top";break;case"insideStartArc":S=a+(h+c)*b(f),A=p+(h+c)*w(f),C="center",R="bottom";break;case"startAngle":S=a+v*b(m)+re(m,c+x,!1),A=p+v*w(m)+ae(m,c+x,!1),C="right",R="middle";break;case"insideStartAngle":S=a+v*b(m)+re(m,-c+x,!1),A=p+v*w(m)+ae(m,-c+x,!1),C="left",R="middle";break;case"middle":S=a+v*b(f),A=p+v*w(f),C="center",R="middle";break;case"endArc":S=a+(u+c)*b(f),A=p+(u+c)*w(f),C="center",R="bottom";break;case"insideEndArc":S=a+(u-c)*b(f),A=p+(u-c)*w(f),C="center",R="top";break;case"endAngle":S=a+v*b(y)+re(y,c+x,!0),A=p+v*w(y)+ae(y,c+x,!0),C="left",R="middle";break;case"insideEndAngle":S=a+v*b(y)+re(y,-c+x,!0),A=p+v*w(y)+ae(y,-c+x,!0),C="right",R="middle";break;default:return Te(r,n,s)}return r=r||{},r.x=S,r.y=A,r.align=C,r.verticalAlign=R,r}}function cr(i,t,e,r){if(et(r)){i.setTextConfig({rotation:r});return}else if(de(t)){i.setTextConfig({rotation:0});return}var n=i.shape,s=n.clockwise?n.startAngle:n.endAngle,l=n.clockwise?n.endAngle:n.startAngle,d=(s+l)/2,c,o=e(t);switch(o){case"startArc":case"insideStartArc":case"middle":case"insideEndArc":case"endArc":c=d;break;case"startAngle":case"insideStartAngle":c=s;break;case"endAngle":case"insideEndAngle":c=l;break;default:i.setTextConfig({rotation:0});return}var a=Math.PI*1.5-c;o==="middle"&&a>Math.PI/2&&a<Math.PI*1.5&&(a-=Math.PI),i.setTextConfig({rotation:a})}function re(i,t,e){return t*Math.sin(i)*(e?-1:1)}function ae(i,t,e){return t*Math.cos(i)*(e?1:-1)}function dr(i,t,e){var r=i.get("borderRadius");if(r==null)return{cornerRadius:0};de(r)||(r=[r,r,r,r]);var n=Math.abs(t.r||0-t.r0||0);return{cornerRadius:we(r,function(s){return mt(s,n)})}}var ve=Math.max,fe=Math.min;function ur(i,t){var e=i.getArea&&i.getArea();if(tt(i,"cartesian2d")){var r=i.getBaseAxis();if(r.type!=="category"||!r.onBand){var n=t.getLayout("bandWidth");r.isHorizontal()?(e.x-=n,e.width+=n*2):(e.y-=n,e.height+=n*2)}}return e}var pr=(function(i){q(t,i);function t(){var e=i.call(this)||this;return e.type=t.type,e._isFirstFrame=!0,e}return t.prototype.render=function(e,r,n,s){this._model=e,this._removeOnRenderedListener(n),this._updateDrawMode(e);var l=e.get("coordinateSystem");(l==="cartesian2d"||l==="polar")&&(this._progressiveEls=null,this._isLargeDraw?this._renderLarge(e,r,n):this._renderNormal(e,r,n,s))},t.prototype.incrementalPrepareRender=function(e){this._clear(),this._updateDrawMode(e),this._updateLargeClip(e)},t.prototype.incrementalRender=function(e,r){this._progressiveEls=[],this._incrementalRenderLarge(e,r)},t.prototype.eachRendered=function(e){yt(this._progressiveEls||this.group,e)},t.prototype._updateDrawMode=function(e){var r=e.pipelineContext.large;(this._isLargeDraw==null||r!==this._isLargeDraw)&&(this._isLargeDraw=r,this._clear())},t.prototype._renderNormal=function(e,r,n,s){var l=this.group,d=e.getData(),c=this._data,o=e.coordinateSystem,a=o.getBaseAxis(),p;o.type==="cartesian2d"?p=a.isHorizontal():o.type==="polar"&&(p=a.dim==="angle");var u=e.isAnimationEnabled()?e:null,h=gr(e,o);h&&this._enableRealtimeSort(h,d,n);var v=e.get("clip",!0)||h,m=ur(o,d);l.removeClipPath();var y=e.get("roundCap",!0),f=e.get("showBackground",!0),x=e.getModel("backgroundStyle"),b=x.get("borderRadius")||0,w=[],S=this._backgroundEls,A=s&&s.isInitSort,C=s&&s.type==="changeAxisOrder";function R(k){var O=ne[o.type](d,k);if(!O)return null;var P=br(o,p,O);return P.useStyle(x.getItemStyle()),o.type==="cartesian2d"?P.setShape("r",b):P.setShape("cornerRadius",b),w[k]=P,P}d.diff(c).add(function(k){var O=d.getItemModel(k),P=ne[o.type](d,k,O);if(P&&(f&&R(k),!(!d.hasValue(k)||!Fe[o.type](P)))){var B=!1;v&&(B=ze[o.type](m,P));var G=Ve[o.type](e,d,k,P,p,u,a.model,!1,y);h&&(G.forceLabelAnimation=!0),qe(G,d,k,O,P,e,p,o.type==="polar"),A?G.attr({shape:P}):h?Ee(h,u,G,P,k,p,!1,!1):se(G,{shape:P},e,k),d.setItemGraphicEl(k,G),l.add(G),G.ignore=B}}).update(function(k,O){var P=d.getItemModel(k),B=ne[o.type](d,k,P);if(B){if(f){var G=void 0;S.length===0?G=R(O):(G=S[O],G.useStyle(x.getItemStyle()),o.type==="cartesian2d"?G.setShape("r",b):G.setShape("cornerRadius",b),w[k]=G);var Q=ne[o.type](d,k),Z=st(p,Q,o);X(G,{shape:Z},u,k)}var T=c.getItemGraphicEl(O);if(!d.hasValue(k)||!Fe[o.type](B)){l.remove(T);return}var ue=!1;v&&(ue=ze[o.type](m,B),ue&&l.remove(T));var dt=T&&(T.type==="sector"&&y||T.type==="sausage"&&!y);if(dt&&(T&&he(T,e,O),T=null),T?xt(T):T=Ve[o.type](e,d,k,B,p,u,a.model,!0,y),h&&(T.forceLabelAnimation=!0),C){var De=T.getTextContent();if(De){var pe=bt(De);pe.prevValue!=null&&(pe.prevValue=pe.value)}}else qe(T,d,k,P,B,e,p,o.type==="polar");A?T.attr({shape:B}):h?Ee(h,u,T,B,k,p,!0,C):X(T,{shape:B},e,k,null),d.setItemGraphicEl(k,T),T.ignore=ue,l.add(T)}}).remove(function(k){var O=c.getItemGraphicEl(k);O&&he(O,e,k)}).execute();var N=this._backgroundGroup||(this._backgroundGroup=new Ce);N.removeAll();for(var z=0;z<w.length;++z)N.add(w[z]);l.add(N),this._backgroundEls=w,this._data=d},t.prototype._renderLarge=function(e,r,n){this._clear(),je(e,this.group),this._updateLargeClip(e)},t.prototype._incrementalRenderLarge=function(e,r){this._removeBackground(),je(r,this.group,this._progressiveEls,!0)},t.prototype._updateLargeClip=function(e){var r=e.get("clip",!0)&&_t(e.coordinateSystem,!1,e),n=this.group;r?n.setClipPath(r):n.removeClipPath()},t.prototype._enableRealtimeSort=function(e,r,n){var s=this;if(r.count()){var l=e.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(r,e,n),this._isFirstFrame=!1;else{var d=function(c){var o=r.getItemGraphicEl(c),a=o&&o.shape;return a&&Math.abs(l.isHorizontal()?a.height:a.width)||0};this._onRendered=function(){s._updateSortWithinSameData(r,d,l,n)},n.getZr().on("rendered",this._onRendered)}}},t.prototype._dataSort=function(e,r,n){var s=[];return e.each(e.mapDimension(r.dim),function(l,d){var c=n(d);c=c??NaN,s.push({dataIndex:d,mappedValue:c,ordinalNumber:l})}),s.sort(function(l,d){return d.mappedValue-l.mappedValue}),{ordinalNumbers:we(s,function(l){return l.ordinalNumber})}},t.prototype._isOrderChangedWithinSameData=function(e,r,n){for(var s=n.scale,l=e.mapDimension(n.dim),d=Number.MAX_VALUE,c=0,o=s.getOrdinalMeta().categories.length;c<o;++c){var a=e.rawIndexOf(l,s.getRawOrdinalNumber(c)),p=a<0?Number.MIN_VALUE:r(e.indexOfRawIndex(a));if(p>d)return!0;d=p}return!1},t.prototype._isOrderDifferentInView=function(e,r){for(var n=r.scale,s=n.getExtent(),l=Math.max(0,s[0]),d=Math.min(s[1],n.getOrdinalMeta().categories.length-1);l<=d;++l)if(e.ordinalNumbers[l]!==n.getRawOrdinalNumber(l))return!0},t.prototype._updateSortWithinSameData=function(e,r,n,s){if(this._isOrderChangedWithinSameData(e,r,n)){var l=this._dataSort(e,n,r);this._isOrderDifferentInView(l,n)&&(this._removeOnRenderedListener(s),s.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:l}))}},t.prototype._dispatchInitSort=function(e,r,n){var s=r.baseAxis,l=this._dataSort(e,s,function(d){return e.get(e.mapDimension(r.otherAxis.dim),d)});n.dispatchAction({type:"changeAxisOrder",componentType:s.dim+"Axis",isInitSort:!0,axisId:s.index,sortInfo:l})},t.prototype.remove=function(e,r){this._clear(this._model),this._removeOnRenderedListener(r)},t.prototype.dispose=function(e,r){this._removeOnRenderedListener(r)},t.prototype._removeOnRenderedListener=function(e){this._onRendered&&(e.getZr().off("rendered",this._onRendered),this._onRendered=null)},t.prototype._clear=function(e){var r=this.group,n=this._data;e&&e.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl(function(s){he(s,e,Y(s).dataIndex)})):r.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type="bar",t})(St),ze={cartesian2d:function(i,t){var e=t.width<0?-1:1,r=t.height<0?-1:1;e<0&&(t.x+=t.width,t.width=-t.width),r<0&&(t.y+=t.height,t.height=-t.height);var n=i.x+i.width,s=i.y+i.height,l=ve(t.x,i.x),d=fe(t.x+t.width,n),c=ve(t.y,i.y),o=fe(t.y+t.height,s),a=d<l,p=o<c;return t.x=a&&l>n?d:l,t.y=p&&c>s?o:c,t.width=a?0:d-l,t.height=p?0:o-c,e<0&&(t.x+=t.width,t.width=-t.width),r<0&&(t.y+=t.height,t.height=-t.height),a||p},polar:function(i,t){var e=t.r0<=t.r?1:-1;if(e<0){var r=t.r;t.r=t.r0,t.r0=r}var n=fe(t.r,i.r),s=ve(t.r0,i.r0);t.r=n,t.r0=s;var l=n-s<0;if(e<0){var r=t.r;t.r=t.r0,t.r0=r}return l}},Ve={cartesian2d:function(i,t,e,r,n,s,l,d,c){var o=new te({shape:oe({},r),z2:1});if(o.__dataIndex=e,o.name="item",s){var a=o.shape,p=n?"height":"width";a[p]=0}return o},polar:function(i,t,e,r,n,s,l,d,c){var o=!n&&c?Ne:rt,a=new o({shape:r,z2:1});a.name="item";var p=it(n);if(a.calculateTextPosition=lr(p,{isRoundCap:o===Ne}),s){var u=a.shape,h=n?"r":"endAngle",v={};u[h]=n?r.r0:r.startAngle,v[h]=r[h],(d?X:se)(a,{shape:v},s)}return a}};function gr(i,t){var e=i.get("realtimeSort",!0),r=t.getBaseAxis();if(e&&r.type==="category"&&t.type==="cartesian2d")return{baseAxis:r,otherAxis:t.getOtherAxis(r)}}function Ee(i,t,e,r,n,s,l,d){var c,o;s?(o={x:r.x,width:r.width},c={y:r.y,height:r.height}):(o={y:r.y,height:r.height},c={x:r.x,width:r.width}),d||(l?X:se)(e,{shape:c},t,n,null);var a=t?i.baseAxis.model:null;(l?X:se)(e,{shape:o},a,n)}function We(i,t){for(var e=0;e<t.length;e++)if(!isFinite(i[t[e]]))return!0;return!1}var hr=["x","y","width","height"],vr=["cx","cy","r","startAngle","endAngle"],Fe={cartesian2d:function(i){return!We(i,hr)},polar:function(i){return!We(i,vr)}},ne={cartesian2d:function(i,t,e){var r=i.getItemLayout(t);if(!r)return null;var n=e?mr(e,r):0,s=r.width>0?1:-1,l=r.height>0?1:-1;return{x:r.x+s*n/2,y:r.y+l*n/2,width:r.width-s*n,height:r.height-l*n}},polar:function(i,t,e){var r=i.getItemLayout(t);return{cx:r.cx,cy:r.cy,r0:r.r0,r:r.r,startAngle:r.startAngle,endAngle:r.endAngle,clockwise:r.clockwise}}};function fr(i){return i.startAngle!=null&&i.endAngle!=null&&i.startAngle===i.endAngle}function it(i){return(function(t){var e=t?"Arc":"Angle";return function(r){switch(r){case"start":case"insideStart":case"end":case"insideEnd":return r+e;default:return r}}})(i)}function qe(i,t,e,r,n,s,l,d){var c=t.getItemVisual(e,"style");if(d){if(!s.get("roundCap")){var a=i.shape,p=dr(r.getModel("itemStyle"),a);oe(a,p),i.setShape(a)}}else{var o=r.get(["itemStyle","borderRadius"])||0;i.setShape("r",o)}i.useStyle(c);var u=r.getShallow("cursor");u&&i.attr("cursor",u);var h=d?l?n.r>=n.r0?"endArc":"startArc":n.endAngle>=n.startAngle?"endAngle":"startAngle":l?n.height>=0?"bottom":"top":n.width>=0?"right":"left",v=kt(r);at(i,v,{labelFetcher:s,labelDataIndex:e,defaultText:At(s.getData(),e),inheritColor:c.fill,defaultOpacity:c.opacity,defaultOutsidePosition:h});var m=i.getTextContent();if(d&&m){var y=r.get(["label","position"]);i.textConfig.inside=y==="middle"?!0:null,cr(i,y==="outside"?h:y,it(l),r.get(["label","rotate"]))}wt(m,v,s.getRawValue(e),function(x){return It(t,x)});var f=r.getModel(["emphasis"]);Ct(i,f.get("focus"),f.get("blurScope"),f.get("disabled")),Dt(i,r),fr(n)&&(i.style.fill="none",i.style.stroke="none",W(i.states,function(x){x.style&&(x.style.fill=x.style.stroke="none")}))}function mr(i,t){var e=i.get(["itemStyle","borderColor"]);if(!e||e==="none")return 0;var r=i.get(["itemStyle","borderWidth"])||0,n=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),s=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(r,n,s)}var yr=(function(){function i(){}return i})(),Me=(function(i){q(t,i);function t(e){var r=i.call(this,e)||this;return r.type="largeBar",r}return t.prototype.getDefaultShape=function(){return new yr},t.prototype.buildPath=function(e,r){for(var n=r.points,s=this.baseDimIdx,l=1-this.baseDimIdx,d=[],c=[],o=this.barWidth,a=0;a<n.length;a+=3)c[s]=o,c[l]=n[a+2],d[s]=n[a+s],d[l]=n[a+l],e.rect(d[0],d[1],c[0],c[1])},t})(Je);function je(i,t,e,r){var n=i.getData(),s=n.getLayout("valueAxisHorizontal")?1:0,l=n.getLayout("largeDataIndices"),d=n.getLayout("size"),c=i.getModel("backgroundStyle"),o=n.getLayout("largeBackgroundPoints");if(o){var a=new Me({shape:{points:o},incremental:!!r,silent:!0,z2:0});a.baseDimIdx=s,a.largeDataIndices=l,a.barWidth=d,a.useStyle(c.getItemStyle()),t.add(a),e&&e.push(a)}var p=new Me({shape:{points:n.getLayout("largePoints")},incremental:!!r,ignoreCoarsePointer:!0,z2:1});p.baseDimIdx=s,p.largeDataIndices=l,p.barWidth=d,t.add(p),p.useStyle(n.getVisual("style")),p.style.stroke=null,Y(p).seriesIndex=i.seriesIndex,i.get("silent")||(p.on("mousedown",He),p.on("mousemove",He)),e&&e.push(p)}var He=Lt(function(i){var t=this,e=xr(t,i.offsetX,i.offsetY);Y(t).dataIndex=e>=0?e:null},30,!1);function xr(i,t,e){for(var r=i.baseDimIdx,n=1-r,s=i.shape.points,l=i.largeDataIndices,d=[],c=[],o=i.barWidth,a=0,p=s.length/3;a<p;a++){var u=a*3;if(c[r]=o,c[n]=s[u+2],d[r]=s[u+r],d[n]=s[u+n],c[n]<0&&(d[n]+=c[n],c[n]=-c[n]),t>=d[0]&&t<=d[0]+c[0]&&e>=d[1]&&e<=d[1]+c[1])return l[a]}return-1}function st(i,t,e){if(tt(e,"cartesian2d")){var r=t,n=e.getArea();return{x:i?r.x:n.x,y:i?n.y:r.y,width:i?r.width:n.width,height:i?n.height:r.height}}else{var n=e.getArea(),s=t;return{cx:n.cx,cy:n.cy,r0:i?n.r0:s.r0,r:i?n.r:s.r,startAngle:i?s.startAngle:0,endAngle:i?s.endAngle:Math.PI*2}}}function br(i,t,e){var r=i.type==="polar"?rt:te;return new r({shape:st(t,e,i),silent:!0,z2:0})}function _r(i){i.registerChartView(pr),i.registerSeriesModel(sr),i.registerLayout(i.PRIORITY.VISUAL.LAYOUT,j(Pt,"bar")),i.registerLayout(i.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Rt("bar")),i.registerProcessor(i.PRIORITY.PROCESSOR.STATISTIC,Tt("bar")),i.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,e){var r=t.componentType||"series";e.eachComponent({mainType:r,query:t},function(n){t.sortInfo&&n.axis.setCategorySortInfo(t.sortInfo)})})}function Sr(i,t){var e=Gt(t.get("padding")),r=t.getItemStyle(["color","opacity"]);r.fill=t.get("backgroundColor");var n=new te({shape:{x:i.x-e[3],y:i.y-e[0],width:i.width+e[1]+e[3],height:i.height+e[0]+e[2],r:t.get("borderRadius")},style:r,silent:!0,z2:-1});return n}var kr=function(i,t){if(t==="all")return{type:"all",title:i.getLocaleModel().get(["legend","selector","all"])};if(t==="inverse")return{type:"inverse",title:i.getLocaleModel().get(["legend","selector","inverse"])}},_e=(function(i){q(t,i);function t(){var e=i!==null&&i.apply(this,arguments)||this;return e.type=t.type,e.layoutMode={type:"box",ignoreSize:!0},e}return t.prototype.init=function(e,r,n){this.mergeDefaultAndTheme(e,n),e.selected=e.selected||{},this._updateSelector(e)},t.prototype.mergeOption=function(e,r){i.prototype.mergeOption.call(this,e,r),this._updateSelector(e)},t.prototype._updateSelector=function(e){var r=e.selector,n=this.ecModel;r===!0&&(r=e.selector=["all","inverse"]),de(r)&&W(r,function(s,l){le(s)&&(s={type:s}),r[l]=Ot(s,kr(n,s.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var e=this._data;if(e[0]&&this.get("selectedMode")==="single"){for(var r=!1,n=0;n<e.length;n++){var s=e[n].get("name");if(this.isSelected(s)){this.select(s),r=!0;break}}!r&&this.select(e[0].get("name"))}},t.prototype._updateData=function(e){var r=[],n=[];e.eachRawSeries(function(c){var o=c.name;n.push(o);var a;if(c.legendVisualProvider){var p=c.legendVisualProvider,u=p.getAllNames();e.isSeriesFiltered(c)||(n=n.concat(u)),u.length?r=r.concat(u):a=!0}else a=!0;a&&Bt(c)&&r.push(c.name)}),this._availableNames=n;var s=this.get("data")||r,l=nt(),d=we(s,function(c){return(le(c)||et(c))&&(c={name:c}),l.get(c.name)?null:(l.set(c.name,!0),new Nt(c,this,this.ecModel))},this);this._data=zt(d,function(c){return!!c})},t.prototype.getData=function(){return this._data},t.prototype.select=function(e){var r=this.option.selected,n=this.get("selectedMode");if(n==="single"){var s=this._data;W(s,function(l){r[l.get("name")]=!1})}r[e]=!0},t.prototype.unSelect=function(e){this.get("selectedMode")!=="single"&&(this.option.selected[e]=!1)},t.prototype.toggleSelected=function(e){var r=this.option.selected;r.hasOwnProperty(e)||(r[e]=!0),this[r[e]?"unSelect":"select"](e)},t.prototype.allSelect=function(){var e=this._data,r=this.option.selected;W(e,function(n){r[n.get("name",!0)]=!0})},t.prototype.inverseSelect=function(){var e=this._data,r=this.option.selected;W(e,function(n){var s=n.get("name",!0);r.hasOwnProperty(s)||(r[s]=!0),r[s]=!r[s]})},t.prototype.isSelected=function(e){var r=this.option.selected;return!(r.hasOwnProperty(e)&&!r[e])&&Vt(this._availableNames,e)>=0},t.prototype.getOrient=function(){return this.get("orient")==="vertical"?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},t.type="legend.plain",t.dependencies=["series"],t.defaultOption={z:4,show:!0,orient:"horizontal",left:"center",bottom:V.size.m,align:"auto",backgroundColor:V.color.transparent,borderColor:V.color.border,borderRadius:0,borderWidth:0,padding:5,itemGap:8,itemWidth:25,itemHeight:14,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:V.color.disabled,inactiveBorderColor:V.color.disabled,inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:V.color.disabled,inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:V.color.secondary},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:V.color.tertiary,borderWidth:1,borderColor:V.color.border},emphasis:{selectorLabel:{show:!0,color:V.color.quaternary}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1},triggerEvent:!1},t})(Et),U=j,Se=W,ie=Ce,ot=(function(i){q(t,i);function t(){var e=i!==null&&i.apply(this,arguments)||this;return e.type=t.type,e.newlineDisabled=!1,e}return t.prototype.init=function(){this.group.add(this._contentGroup=new ie),this.group.add(this._selectorGroup=new ie),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(e,r,n){var s=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!e.get("show",!0)){var l=e.get("align"),d=e.get("orient");(!l||l==="auto")&&(l=e.get("left")==="right"&&d==="vertical"?"right":"left");var c=e.get("selector",!0),o=e.get("selectorPosition",!0);c&&(!o||o==="auto")&&(o=d==="horizontal"?"end":"start"),this.renderInner(l,e,r,n,c,d,o);var a=Wt(e,n).refContainer,p=e.getBoxLayoutParams(),u=e.get("padding"),h=Ge(p,a,u),v=this.layoutInner(e,l,h,s,c,o),m=Ge(Ft({width:v.width,height:v.height},p),a,u);this.group.x=m.x-v.x,this.group.y=m.y-v.y,this.group.markRedraw(),this.group.add(this._backgroundEl=Sr(v,e))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(e,r,n,s,l,d,c){var o=this.getContentGroup(),a=nt(),p=r.get("selectedMode"),u=r.get("triggerEvent"),h=[];n.eachRawSeries(function(v){!v.get("legendHoverLink")&&h.push(v.id)}),Se(r.getData(),function(v,m){var y=this,f=v.get("name");if(!this.newlineDisabled&&(f===""||f===`
2
+ `)){var x=new ie;x.newline=!0,o.add(x);return}var b=n.getSeriesByName(f)[0];if(!a.get(f))if(b){var w=b.getData(),S=w.getVisual("legendLineStyle")||{},A=w.getVisual("legendIcon"),C=w.getVisual("style"),R=this._createItem(b,f,m,v,r,e,S,C,A,p,s);R.on("click",U($e,f,null,s,h)).on("mouseover",U(ke,b.name,null,s,h)).on("mouseout",U(Ae,b.name,null,s,h)),n.ssr&&R.eachChild(function(N){var z=Y(N);z.seriesIndex=b.seriesIndex,z.dataIndex=m,z.ssrType="legend"}),u&&R.eachChild(function(N){y.packEventData(N,r,b,m,f)}),a.set(f,!0)}else n.eachRawSeries(function(N){var z=this;if(!a.get(f)&&N.legendVisualProvider){var k=N.legendVisualProvider;if(!k.containName(f))return;var O=k.indexOfName(f),P=k.getItemVisual(O,"style"),B=k.getItemVisual(O,"legendIcon"),G=qt(P.fill);G&&G[3]===0&&(G[3]=.2,P=oe(oe({},P),{fill:Mt(G,"rgba")}));var Q=this._createItem(N,f,m,v,r,e,{},P,B,p,s);Q.on("click",U($e,null,f,s,h)).on("mouseover",U(ke,null,f,s,h)).on("mouseout",U(Ae,null,f,s,h)),n.ssr&&Q.eachChild(function(Z){var T=Y(Z);T.seriesIndex=N.seriesIndex,T.dataIndex=m,T.ssrType="legend"}),u&&Q.eachChild(function(Z){z.packEventData(Z,r,N,m,f)}),a.set(f,!0)}},this)},this),l&&this._createSelector(l,r,s,d,c)},t.prototype.packEventData=function(e,r,n,s,l){var d={componentType:"legend",componentIndex:r.componentIndex,dataIndex:s,value:l,seriesIndex:n.seriesIndex};Y(e).eventData=d},t.prototype._createSelector=function(e,r,n,s,l){var d=this.getSelectorGroup();Se(e,function(o){var a=o.type,p=new xe({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:a==="all"?"legendAllSelect":"legendInverseSelect",legendId:r.id})}});d.add(p);var u=r.getModel("selectorLabel"),h=r.getModel(["emphasis","selectorLabel"]);at(p,{normal:u,emphasis:h},{defaultText:o.title}),Oe(p)})},t.prototype._createItem=function(e,r,n,s,l,d,c,o,a,p,u){var h=e.visualDrawType,v=l.get("itemWidth"),m=l.get("itemHeight"),y=l.isSelected(r),f=s.get("symbolRotate"),x=s.get("symbolKeepAspect"),b=s.get("icon");a=b||a||"roundRect";var w=Ar(a,s,c,o,h,y,u),S=new ie,A=s.getModel("textStyle");if(Be(e.getLegendIcon)&&(!b||b==="inherit"))S.add(e.getLegendIcon({itemWidth:v,itemHeight:m,icon:a,iconRotate:f,itemStyle:w.itemStyle,lineStyle:w.lineStyle,symbolKeepAspect:x}));else{var C=b==="inherit"&&e.getData().getVisual("symbol")?f==="inherit"?e.getData().getVisual("symbolRotate"):f:0;S.add(wr({itemWidth:v,itemHeight:m,icon:a,iconRotate:C,itemStyle:w.itemStyle,symbolKeepAspect:x}))}var R=d==="left"?v+5:-5,N=d,z=l.get("formatter"),k=r;le(z)&&z?k=z.replace("{name}",r??""):Be(z)&&(k=z(r));var O=y?A.getTextColor():s.get("inactiveColor");S.add(new xe({style:jt(A,{text:k,x:R,y:m/2,fill:O,align:N,verticalAlign:"middle"},{inheritColor:O})}));var P=new te({shape:S.getBoundingRect(),style:{fill:"transparent"}}),B=s.getModel("tooltip");return B.get("show")&&Ht({el:P,componentModel:l,itemName:r,itemTooltipOption:B.option}),S.add(P),S.eachChild(function(G){G.silent=!0}),P.silent=!p,this.getContentGroup().add(S),Oe(S),S.__legendDataIndex=n,S},t.prototype.layoutInner=function(e,r,n,s,l,d){var c=this.getContentGroup(),o=this.getSelectorGroup();ee(e.get("orient"),c,e.get("itemGap"),n.width,n.height);var a=c.getBoundingRect(),p=[-a.x,-a.y];if(o.markRedraw(),c.markRedraw(),l){ee("horizontal",o,e.get("selectorItemGap",!0));var u=o.getBoundingRect(),h=[-u.x,-u.y],v=e.get("selectorButtonGap",!0),m=e.getOrient().index,y=m===0?"width":"height",f=m===0?"height":"width",x=m===0?"y":"x";d==="end"?h[m]+=a[y]+v:p[m]+=u[y]+v,h[1-m]+=a[f]/2-u[f]/2,o.x=h[0],o.y=h[1],c.x=p[0],c.y=p[1];var b={x:0,y:0};return b[y]=a[y]+v+u[y],b[f]=Math.max(a[f],u[f]),b[x]=Math.min(0,u[x]+h[1-m]),b}else return c.x=p[0],c.y=p[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type="legend.plain",t})($t);function Ar(i,t,e,r,n,s,l){function d(y,f){y.lineWidth==="auto"&&(y.lineWidth=f.lineWidth>0?2:0),Se(y,function(x,b){y[b]==="inherit"&&(y[b]=f[b])})}var c=t.getModel("itemStyle"),o=c.getItemStyle(),a=i.lastIndexOf("empty",0)===0?"fill":"stroke",p=c.getShallow("decal");o.decal=!p||p==="inherit"?r.decal:Ut(p,l),o.fill==="inherit"&&(o.fill=r[n]),o.stroke==="inherit"&&(o.stroke=r[a]),o.opacity==="inherit"&&(o.opacity=(n==="fill"?r:e).opacity),d(o,r);var u=t.getModel("lineStyle"),h=u.getLineStyle();if(d(h,e),o.fill==="auto"&&(o.fill=r.fill),o.stroke==="auto"&&(o.stroke=r.fill),h.stroke==="auto"&&(h.stroke=r.fill),!s){var v=t.get("inactiveBorderWidth"),m=o[a];o.lineWidth=v==="auto"?r.lineWidth>0&&m?2:0:o.lineWidth,o.fill=t.get("inactiveColor"),o.stroke=t.get("inactiveBorderColor"),h.stroke=u.get("inactiveColor"),h.lineWidth=u.get("inactiveWidth")}return{itemStyle:o,lineStyle:h}}function wr(i){var t=i.icon||"roundRect",e=Yt(t,0,0,i.itemWidth,i.itemHeight,i.itemStyle.fill,i.symbolKeepAspect);return e.setStyle(i.itemStyle),e.rotation=(i.iconRotate||0)*Math.PI/180,e.setOrigin([i.itemWidth/2,i.itemHeight/2]),t.indexOf("empty")>-1&&(e.style.stroke=e.style.fill,e.style.fill=V.color.neutral00,e.style.lineWidth=2),e}function $e(i,t,e,r){Ae(i,t,e,r),e.dispatchAction({type:"legendToggleSelect",name:i??t}),ke(i,t,e,r)}function lt(i){for(var t=i.getZr().storage.getDisplayList(),e,r=0,n=t.length;r<n&&!(e=t[r].states.emphasis);)r++;return e&&e.hoverLayer}function ke(i,t,e,r){lt(e)||e.dispatchAction({type:"highlight",seriesName:i,name:t,excludeSeriesId:r})}function Ae(i,t,e,r){lt(e)||e.dispatchAction({type:"downplay",seriesName:i,name:t,excludeSeriesId:r})}function Cr(i){var t=i.findComponents({mainType:"legend"});t&&t.length&&i.filterSeries(function(e){for(var r=0;r<t.length;r++)if(!t[r].isSelected(e.name))return!1;return!0})}function J(i,t,e){var r=i==="allSelect"||i==="inverseSelect",n={},s=[];e.eachComponent({mainType:"legend",query:t},function(d){r?d[i]():d[i](t.name),Ue(d,n),s.push(d.componentIndex)});var l={};return e.eachComponent("legend",function(d){W(n,function(c,o){d[c?"select":"unSelect"](o)}),Ue(d,l)}),r?{selected:l,legendIndex:s}:{name:t.name,selected:l}}function Ue(i,t){var e=t||{};return W(i.getData(),function(r){var n=r.get("name");if(!(n===`
3
+ `||n==="")){var s=i.isSelected(n);Xt(e,n)?e[n]=e[n]&&s:e[n]=s}}),e}function Dr(i){i.registerAction("legendToggleSelect","legendselectchanged",j(J,"toggleSelected")),i.registerAction("legendAllSelect","legendselectall",j(J,"allSelect")),i.registerAction("legendInverseSelect","legendinverseselect",j(J,"inverseSelect")),i.registerAction("legendSelect","legendselected",j(J,"select")),i.registerAction("legendUnSelect","legendunselected",j(J,"unSelect"))}function ct(i){i.registerComponentModel(_e),i.registerComponentView(ot),i.registerProcessor(i.PRIORITY.PROCESSOR.SERIES_FILTER,Cr),i.registerSubTypeDefaulter("legend",function(){return"plain"}),Dr(i)}var Lr=(function(i){q(t,i);function t(){var e=i!==null&&i.apply(this,arguments)||this;return e.type=t.type,e}return t.prototype.setScrollDataIndex=function(e){this.option.scrollDataIndex=e},t.prototype.init=function(e,r,n){var s=Qt(e);i.prototype.init.call(this,e,r,n),Ye(this,e,s)},t.prototype.mergeOption=function(e,r){i.prototype.mergeOption.call(this,e,r),Ye(this,this.option,e)},t.type="legend.scroll",t.defaultOption=Ke(_e.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:V.color.accent50,pageIconInactiveColor:V.color.accent10,pageIconSize:15,pageTextStyle:{color:V.color.tertiary},animationDurationUpdate:800}),t})(_e);function Ye(i,t,e){var r=i.getOrient(),n=[1,1];n[r.index]=0,Zt(t,e,{type:"box",ignoreSize:!!n})}var Xe=Ce,me=["width","height"],ye=["x","y"],Ir=(function(i){q(t,i);function t(){var e=i!==null&&i.apply(this,arguments)||this;return e.type=t.type,e.newlineDisabled=!0,e._currentIndex=0,e}return t.prototype.init=function(){i.prototype.init.call(this),this.group.add(this._containerGroup=new Xe),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new Xe)},t.prototype.resetInner=function(){i.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},t.prototype.renderInner=function(e,r,n,s,l,d,c){var o=this;i.prototype.renderInner.call(this,e,r,n,s,l,d,c);var a=this._controllerGroup,p=r.get("pageIconSize",!0),u=de(p)?p:[p,p];v("pagePrev",0);var h=r.getModel("pageTextStyle");a.add(new xe({name:"pageText",style:{text:"xx/xx",fill:h.getTextColor(),font:h.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),v("pageNext",1);function v(m,y){var f=m+"DataIndex",x=Kt(r.get("pageIcons",!0)[r.getOrient().name][y],{onclick:Jt(o._pageGo,o,f,r,s)},{x:-u[0]/2,y:-u[1]/2,width:u[0],height:u[1]});x.name=m,a.add(x)}},t.prototype.layoutInner=function(e,r,n,s,l,d){var c=this.getSelectorGroup(),o=e.getOrient().index,a=me[o],p=ye[o],u=me[1-o],h=ye[1-o];l&&ee("horizontal",c,e.get("selectorItemGap",!0));var v=e.get("selectorButtonGap",!0),m=c.getBoundingRect(),y=[-m.x,-m.y],f=er(n);l&&(f[a]=n[a]-m[a]-v);var x=this._layoutContentAndController(e,s,f,o,a,u,h,p);if(l){if(d==="end")y[o]+=x[a]+v;else{var b=m[a]+v;y[o]-=b,x[p]-=b}x[a]+=m[a]+v,y[1-o]+=x[h]+x[u]/2-m[u]/2,x[u]=Math.max(x[u],m[u]),x[h]=Math.min(x[h],m[h]+y[1-o]),c.x=y[0],c.y=y[1],c.markRedraw()}return x},t.prototype._layoutContentAndController=function(e,r,n,s,l,d,c,o){var a=this.getContentGroup(),p=this._containerGroup,u=this._controllerGroup;ee(e.get("orient"),a,e.get("itemGap"),s?n.width:null,s?null:n.height),ee("horizontal",u,e.get("pageButtonItemGap",!0));var h=a.getBoundingRect(),v=u.getBoundingRect(),m=this._showController=h[l]>n[l],y=[-h.x,-h.y];r||(y[s]=a[o]);var f=[0,0],x=[-v.x,-v.y],b=tr(e.get("pageButtonGap",!0),e.get("itemGap",!0));if(m){var w=e.get("pageButtonPosition",!0);w==="end"?x[s]+=n[l]-v[l]:f[s]+=v[l]+b}x[1-s]+=h[d]/2-v[d]/2,a.setPosition(y),p.setPosition(f),u.setPosition(x);var S={x:0,y:0};if(S[l]=m?n[l]:h[l],S[d]=Math.max(h[d],v[d]),S[c]=Math.min(0,v[c]+x[1-s]),p.__rectSize=n[l],m){var A={x:0,y:0};A[l]=Math.max(n[l]-v[l]-b,0),A[d]=S[d],p.setClipPath(new te({shape:A})),p.__rectSize=A[l]}else u.eachChild(function(R){R.attr({invisible:!0,silent:!0})});var C=this._getPageInfo(e);return C.pageIndex!=null&&X(a,{x:C.contentPosition[0],y:C.contentPosition[1]},m?e:null),this._updatePageInfoView(e,C),S},t.prototype._pageGo=function(e,r,n){var s=this._getPageInfo(r)[e];s!=null&&n.dispatchAction({type:"legendScroll",scrollDataIndex:s,legendId:r.id})},t.prototype._updatePageInfoView=function(e,r){var n=this._controllerGroup;W(["pagePrev","pageNext"],function(a){var p=a+"DataIndex",u=r[p]!=null,h=n.childOfName(a);h&&(h.setStyle("fill",u?e.get("pageIconColor",!0):e.get("pageIconInactiveColor",!0)),h.cursor=u?"pointer":"default")});var s=n.childOfName("pageText"),l=e.get("pageFormatter"),d=r.pageIndex,c=d!=null?d+1:0,o=r.pageCount;s&&l&&s.setStyle("text",le(l)?l.replace("{current}",c==null?"":c+"").replace("{total}",o==null?"":o+""):l({current:c,total:o}))},t.prototype._getPageInfo=function(e){var r=e.get("scrollDataIndex",!0),n=this.getContentGroup(),s=this._containerGroup.__rectSize,l=e.getOrient().index,d=me[l],c=ye[l],o=this._findTargetItemIndex(r),a=n.children(),p=a[o],u=a.length,h=u?1:0,v={contentPosition:[n.x,n.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!p)return v;var m=w(p);v.contentPosition[l]=-m.s;for(var y=o+1,f=m,x=m,b=null;y<=u;++y)b=w(a[y]),(!b&&x.e>f.s+s||b&&!S(b,f.s))&&(x.i>f.i?f=x:f=b,f&&(v.pageNextDataIndex==null&&(v.pageNextDataIndex=f.i),++v.pageCount)),x=b;for(var y=o-1,f=m,x=m,b=null;y>=-1;--y)b=w(a[y]),(!b||!S(x,b.s))&&f.i<x.i&&(x=f,v.pagePrevDataIndex==null&&(v.pagePrevDataIndex=f.i),++v.pageCount,++v.pageIndex),f=b;return v;function w(A){if(A){var C=A.getBoundingRect(),R=C[c]+A[c];return{s:R,e:R+C[d],i:A.__legendDataIndex}}}function S(A,C){return A.e>=C&&A.s<=C+s}},t.prototype._findTargetItemIndex=function(e){if(!this._showController)return 0;var r,n=this.getContentGroup(),s;return n.eachChild(function(l,d){var c=l.__legendDataIndex;s==null&&c!=null&&(s=d),c===e&&(r=d)}),r??s},t.type="legend.scroll",t})(ot);function Pr(i){i.registerAction("legendScroll","legendscroll",function(t,e){var r=t.scrollDataIndex;r!=null&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(n){n.setScrollDataIndex(r)})})}function Rr(i){ce(ct),i.registerComponentModel(Lr),i.registerComponentView(Ir),Pr(i)}function Tr(i){ce(ct),ce(Rr)}const Gr=ut("analytics",()=>{const i=M(null),t=M(null),e=M(null),r=M(null),n=M(null),s=M(!1),l=M(!1),d=M(null);async function c(){s.value=!0,d.value=null;try{const[p,u,h,v]=await Promise.all([$.getAnalyticsQuality(),$.getAnalyticsPatterns(),$.getAnalyticsCodebase(),$.getTokenSavings()]);i.value=p,t.value=u,e.value=h,n.value=v}catch(p){d.value=p.message}finally{s.value=!1}}async function o(){l.value=!0;try{r.value=await $.getAnalyticsCoach()}catch(p){d.value=p.message}finally{l.value=!1}}async function a(){try{const p=await $.getCoachLatest();p&&(r.value={insights:p.insights,generatedAt:p.createdAt})}catch{}}return{quality:i,patterns:t,codebase:e,coach:r,tokenSavings:n,loading:s,coachLoading:l,error:d,fetchAnalytics:c,fetchCoach:o,loadLatestCoach:a}}),Or={class:"flex-1 overflow-y-auto p-6 lg:p-10"},Br={class:"max-w-6xl mx-auto space-y-8"},Nr={key:0,class:"py-20 text-center text-slate-400"},zr={class:"flex flex-col md:flex-row md:items-center justify-between gap-4 mb-6"},Vr=["disabled"],Er={key:0,class:"bg-bg-dark/40 border border-red-500/20 rounded-xl p-6 mb-6"},Wr={class:"text-sm text-red-400"},Fr={class:"text-xs text-slate-500 mt-2"},qr={key:1,class:"bg-bg-dark/40 border border-primary/10 rounded-xl p-12 flex items-center justify-center"},Mr={key:2,class:"grid grid-cols-1 md:grid-cols-3 gap-4"},jr={class:"flex items-start justify-between mb-5"},Hr={class:"w-12 h-12 rounded-xl bg-bg-dark/80 border border-primary/10 flex items-center justify-center"},$r={class:"font-bold text-white text-lg mb-2 leading-snug"},Ur={class:"text-sm text-slate-400 leading-relaxed flex-1"},Yr={class:"mt-5"},Xr={key:3,class:"bg-bg-dark/40 border border-primary/10 border-dashed rounded-xl p-12 text-center"},Qr={key:0},Zr={class:"grid grid-cols-1 md:grid-cols-4 gap-4"},Kr={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},Jr={class:"text-3xl font-black text-primary"},ea={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},ta={class:"text-3xl font-black text-primary"},ra={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},aa={class:"text-3xl font-black text-primary"},na={class:"text-[10px] text-slate-400 mt-2"},ia={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},sa={class:"text-3xl font-black text-primary"},oa={class:"flex items-center justify-between"},la={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"},ca={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},da={class:"relative w-24 h-24 mb-4"},ua={class:"w-full h-full -rotate-90",viewBox:"0 0 36 36"},pa=["stroke-dasharray"],ga={class:"absolute inset-0 flex items-center justify-center font-bold text-xl text-slate-100"},ha={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},va={class:"text-3xl font-black text-primary mb-1"},fa={class:"w-full bg-primary/10 h-1.5 rounded-full overflow-hidden"},ma={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},ya={class:"text-3xl font-black text-primary mb-1"},xa={class:"flex gap-1"},ba={class:"bg-bg-dark/40 border border-primary/10 p-5 rounded-xl flex flex-col items-center text-center"},_a={class:"text-3xl font-black text-primary mb-1"},Sa={class:"material-symbols-outlined text-primary/60 text-4xl"},ka={class:"grid grid-cols-1 lg:grid-cols-2 gap-6"},Aa={class:"bg-bg-dark/40 border border-primary/10 p-6 rounded-xl"},wa={key:1,class:"h-48 flex items-center justify-center text-xs text-slate-500"},Ca={class:"bg-bg-dark/40 border border-primary/10 p-6 rounded-xl"},Da={key:0,class:"space-y-4"},La={class:"text-xs font-medium w-20 text-slate-400 truncate capitalize"},Ia={class:"flex-1 bg-primary/10 h-2 rounded-full overflow-hidden"},Pa={key:1,class:"h-48 flex items-center justify-center text-xs text-slate-500"},Ra={class:"grid grid-cols-1 lg:grid-cols-3 gap-6"},Ta={class:"bg-bg-dark/40 border border-primary/10 p-6 rounded-xl"},Ga={key:0,class:"space-y-4"},Oa={class:"flex flex-col min-w-0"},Ba={class:"text-xs font-medium text-slate-200 truncate"},Na={class:"text-xs font-bold text-primary bg-primary/10 px-2 py-1 rounded flex-shrink-0 ml-2"},za={key:1,class:"text-xs text-slate-500 py-6 text-center"},Va={class:"bg-bg-dark/40 border border-primary/10 p-6 rounded-xl"},Ea={key:0,class:"space-y-3"},Wa={class:"p-3 bg-red-500/5 border border-red-500/20 rounded-lg"},Fa={class:"text-xs text-slate-300 font-medium"},qa={class:"p-3 bg-primary/5 border border-primary/10 rounded-lg"},Ma={class:"text-xs text-slate-300 font-medium"},ja={key:1,class:"p-3 bg-emerald-500/5 border border-emerald-500/20 rounded-lg"},Ha={class:"bg-bg-dark/40 border border-primary/10 p-6 rounded-xl"},$a={key:0,class:"flex flex-wrap gap-2"},Ua={key:1,class:"text-xs text-slate-500 py-6 text-center"},Ya={key:2,class:"mt-6 flex items-center gap-3"},Xa={class:"text-[11px] text-slate-400"},Qa={key:2,class:"py-20 text-center"},Za={class:"text-slate-400"},tn=pt({__name:"AnalyticsPage",setup(i){ce([_r,rr,ar,Tr,nr]);const t=Gr();gt(()=>{t.fetchAnalytics(),t.loadLatestCoach()});const e={strategy:{icon:"lightbulb",color:"text-amber-400"},habits:{icon:"build",color:"text-blue-400"},docs:{icon:"description",color:"text-emerald-400"},architecture:{icon:"account_tree",color:"text-violet-400"},testing:{icon:"bug_report",color:"text-orange-400"},performance:{icon:"speed",color:"text-rose-400"}},r={high:{label:"High Priority",bg:"bg-red-500/10 border-red-500/30",text:"text-red-400",dot:"bg-red-400"},positive:{label:"Great Progress",bg:"bg-emerald-500/10 border-emerald-500/30",text:"text-emerald-400",dot:"bg-emerald-400"},recommendation:{label:"Recommendation",bg:"bg-primary/10 border-primary/30",text:"text-primary",dot:"bg-primary"}};function n(o){const a=2*Math.PI*16;return`${o/100*a}, ${a}`}function s(o){const a=Math.round(o/100*5);return Array.from({length:5},(p,u)=>u<a)}function l(o){return Math.min(100,Math.round(o/200*100))}const d=Re(()=>{const o=t.patterns?.decisionDensity||[];return o.length===0?null:{tooltip:{trigger:"axis",backgroundColor:"#102222",borderColor:"rgba(13,242,242,0.2)",textStyle:{color:"#e2e8f0",fontSize:11}},grid:{left:30,right:10,top:10,bottom:30},xAxis:{type:"category",data:o.map(a=>`${a.decisionCount}`),axisLine:{lineStyle:{color:"#1a3a3a"}},axisLabel:{color:"#64748b",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},splitLine:{lineStyle:{color:"rgba(13,242,242,0.05)"}},axisLabel:{color:"#64748b",fontSize:10}},series:[{type:"bar",data:o.map((a,p,u)=>({value:a.sessions,itemStyle:{color:`rgba(13,242,242,${.2+.8*(a.sessions/Math.max(...u.map(h=>h.sessions)))})`,borderRadius:[2,2,0,0]}})),barWidth:"60%"}]}}),c=Re(()=>{const o=t.codebase?.topTags||[];if(o.length===0)return[];const a=o[0]?.count||1;return o.slice(0,6).map(p=>({tag:p.tag,count:p.count,pct:Math.round(p.count/a*100)}))});return(o,a)=>{const p=ft("router-link");return D(),L("div",Or,[g("div",Br,[a[36]||(a[36]=ht('<div class="flex flex-col md:flex-row md:items-center justify-between gap-4"><div><h1 class="text-3xl font-black text-slate-100 tracking-tight">Developer Intelligence</h1><p class="text-primary/60 font-medium">Actionable intelligence from your decision history</p></div><button disabled title="Coming soon" class="flex items-center gap-2 bg-primary/40 text-bg-dark/60 px-6 py-2.5 rounded-lg font-bold text-sm cursor-not-allowed"><span class="material-symbols-outlined text-[18px]">ios_share</span> Export Analysis </button></div>',1)),_(t).loading?(D(),L("div",Nr,"Loading analytics...")):_(t).quality?(D(),L(H,{key:1},[g("section",null,[g("div",zr,[a[1]||(a[1]=g("div",null,[g("h2",{class:"text-2xl font-black text-slate-100 tracking-tight"},"AI Coach Summary"),g("p",{class:"text-slate-500 text-sm mt-1"},"Real-time actionable insights parsed from your development workflow and commit patterns.")],-1)),g("button",{onClick:a[0]||(a[0]=u=>_(t).fetchCoach()),disabled:_(t).coachLoading,class:E(["relative z-10 flex items-center gap-2 whitespace-nowrap bg-bg-dark/60 border border-primary/30 hover:bg-primary/10 hover:border-primary text-slate-200 px-5 py-3 rounded-lg font-bold text-sm transition-all",{"opacity-50 cursor-wait":_(t).coachLoading}])},[g("span",{class:E(["material-symbols-outlined text-[18px]",{"animate-spin":_(t).coachLoading}])},I(_(t).coachLoading?"progress_activity":"refresh"),3),F(" "+I(_(t).coachLoading?"Generating...":"Generate New Summary"),1)],10,Vr)]),_(t).coach?.error?(D(),L("div",Er,[g("p",Wr,I(_(t).coach.error),1),g("p",Fr,[a[3]||(a[3]=F(" Configure your API key in ",-1)),Le(p,{to:"/settings#api-key",class:"text-primary hover:underline"},{default:Ie(()=>[...a[2]||(a[2]=[F("Settings",-1)])]),_:1}),a[4]||(a[4]=F(". ",-1))])])):_(t).coachLoading&&!_(t).coach?.insights?.length?(D(),L("div",qr,[...a[5]||(a[5]=[g("div",{class:"flex items-center gap-3 text-primary/60"},[g("span",{class:"material-symbols-outlined animate-spin"},"progress_activity"),g("span",{class:"text-sm font-medium"},"Analyzing your patterns...")],-1)])])):_(t).coach?.insights?.length>0?(D(),L("div",Mr,[(D(!0),L(H,null,K(_(t).coach.insights,(u,h)=>(D(),L("div",{key:h,class:"bg-bg-dark/40 border border-primary/10 rounded-xl p-6 flex flex-col"},[g("div",jr,[g("div",Hr,[g("span",{class:E(["material-symbols-outlined text-2xl",(e[u.category]||e.strategy).color])},I((e[u.category]||e.strategy).icon),3)]),g("span",{class:E(["text-[10px] font-bold uppercase tracking-widest px-2.5 py-1 rounded border",(e[u.category]||e.strategy).color+" border-current/20 bg-current/5"])},I(u.category),3)]),g("h3",$r,I(u.title),1),g("p",Ur,I(u.description),1),g("div",Yr,[g("span",{class:E(["inline-flex items-center gap-1.5 text-xs font-semibold px-3 py-1.5 rounded-full border",(r[u.priority]||r.recommendation).bg+" "+(r[u.priority]||r.recommendation).text])},[g("span",{class:E(["w-1.5 h-1.5 rounded-full",(r[u.priority]||r.recommendation).dot])},null,2),F(" "+I((r[u.priority]||r.recommendation).label),1)],2)])]))),128))])):(D(),L("div",Xr,[...a[6]||(a[6]=[g("span",{class:"material-symbols-outlined text-4xl text-slate-600 mb-3"},"psychology",-1),g("p",{class:"text-sm text-slate-500"},'Click "Generate New Summary" to get AI-powered coaching insights from your decision patterns.',-1)])]))]),_(t).tokenSavings&&_(t).tokenSavings.totalQueries>0?(D(),L("section",Qr,[a[14]||(a[14]=g("h2",{class:"text-2xl font-black text-slate-100 tracking-tight mb-6"},"Memory ROI",-1)),g("div",Zr,[g("div",Kr,[a[7]||(a[7]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Total Queries",-1)),g("div",Jr,I(_(t).tokenSavings.totalQueries),1),a[8]||(a[8]=g("div",{class:"text-[10px] text-slate-400 mt-2"},"Last 30 days",-1))]),g("div",ea,[a[9]||(a[9]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Hit Rate",-1)),g("div",ta,I(_(t).tokenSavings.totalQueries>0?Math.round(_(t).tokenSavings.successfulQueries/_(t).tokenSavings.totalQueries*100):0)+"% ",1),a[10]||(a[10]=g("div",{class:"text-[10px] text-slate-400 mt-2"},"Queries with results",-1))]),g("div",ra,[a[11]||(a[11]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Tokens Saved",-1)),g("div",aa,"~"+I(_(t).tokenSavings.estimatedTokensSaved.toLocaleString()),1),g("div",na,"~$"+I(_(t).tokenSavings.estimatedCostSaved),1)]),g("div",ia,[a[12]||(a[12]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Time Saved",-1)),g("div",sa,"~"+I(_(t).tokenSavings.estimatedMinutesSaved),1),a[13]||(a[13]=g("div",{class:"text-[10px] text-slate-400 mt-2"},"minutes of re-explanation",-1))])])])):ge("",!0),g("div",oa,[a[16]||(a[16]=g("h2",{class:"text-2xl font-black text-slate-100 tracking-tight"},"Detailed Metrics",-1)),Le(p,{to:"/decisions",class:"text-sm font-semibold text-primary hover:underline"},{default:Ie(()=>[...a[15]||(a[15]=[F("View All Data",-1)])]),_:1})]),g("section",la,[g("div",ca,[a[18]||(a[18]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Alternatives Coverage",-1)),g("div",da,[(D(),L("svg",ua,[a[17]||(a[17]=g("circle",{class:"stroke-primary/10",cx:"18",cy:"18",fill:"none",r:"16","stroke-width":"3"},null,-1)),g("circle",{class:"stroke-primary",cx:"18",cy:"18",fill:"none",r:"16","stroke-dasharray":n(_(t).quality.alternativesCoverage),"stroke-linecap":"round","stroke-width":"3"},null,8,pa)])),g("div",ga,I(_(t).quality.alternativesCoverage)+"%",1)]),a[19]||(a[19]=g("p",{class:"text-xs text-slate-500"},"of decisions document alternatives",-1))]),g("div",ha,[a[20]||(a[20]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Rationale Depth",-1)),g("div",va,I(_(t).quality.avgRationaleLength),1),a[21]||(a[21]=g("div",{class:"text-[10px] text-slate-400 mb-4"},"Avg Chars / Decision",-1)),g("div",fa,[g("div",{class:"bg-primary h-full transition-all",style:Pe({width:l(_(t).quality.avgRationaleLength)+"%"})},null,4)])]),g("div",ma,[a[22]||(a[22]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Consequences Tracking",-1)),g("div",ya,I(_(t).quality.consequencesTracking)+"%",1),a[23]||(a[23]=g("div",{class:"text-[10px] text-slate-400 mb-4"},"Tagged with Outcome",-1)),g("div",xa,[(D(!0),L(H,null,K(s(_(t).quality.consequencesTracking),(u,h)=>(D(),L("div",{key:h,class:E(["w-3 h-3 rounded-full",u?"bg-primary":"bg-primary/20"])},null,2))),128))])]),g("div",ba,[a[24]||(a[24]=g("div",{class:"text-[10px] font-bold text-primary/50 uppercase tracking-widest mb-4"},"Decision Revisit Rate",-1)),g("div",_a,I(_(t).quality.revisitRate)+"%",1),a[25]||(a[25]=g("div",{class:"text-[10px] text-slate-400 mb-4"},"Stability Index",-1)),g("span",Sa,I(_(t).quality.revisitRate<=20?"trending_down":_(t).quality.revisitRate<=50?"trending_flat":"trending_up"),1)])]),g("section",ka,[g("div",Aa,[a[26]||(a[26]=g("div",{class:"flex justify-between items-center mb-6"},[g("h3",{class:"text-sm font-bold text-slate-100"},"Session Complexity Trend"),g("span",{class:"text-[10px] font-bold text-primary px-2 py-0.5 border border-primary/30 rounded"},"DECISIONS / SESSION")],-1)),d.value?(D(),vt(_(ir),{key:0,option:d.value,autoresize:"",style:{height:"200px"}},null,8,["option"])):(D(),L("div",wa,"No session data yet"))]),g("div",Ca,[a[27]||(a[27]=g("h3",{class:"text-sm font-bold text-slate-100 mb-6"},"Technology Radar",-1)),c.value.length>0?(D(),L("div",Da,[(D(!0),L(H,null,K(c.value,u=>(D(),L("div",{key:u.tag,class:"flex items-center gap-4"},[g("span",La,I(u.tag),1),g("div",Ia,[g("div",{class:E(["h-full rounded-full transition-all",u.pct>=70?"bg-primary shadow-[0_0_8px_#0df2f2]":u.pct>=40?"bg-primary/60":"bg-primary/30"]),style:Pe({width:u.pct+"%"})},null,6)]),g("span",{class:E(["text-xs font-bold w-8 text-right",u.pct>=70?"text-primary":u.pct>=40?"text-primary/60":"text-primary/30"])},I(u.count),3)]))),128))])):(D(),L("div",Pa,"No tag data yet"))])]),g("section",Ra,[g("div",Ta,[a[28]||(a[28]=g("h3",{class:"text-sm font-bold text-slate-100 mb-6 flex items-center gap-2"},[g("span",{class:"material-symbols-outlined text-primary text-sm"},"local_fire_department"),F(" Architecture Hotspots ")],-1)),_(t).codebase?.hotspots?.length>0?(D(),L("div",Ga,[(D(!0),L(H,null,K(_(t).codebase.hotspots.slice(0,5),u=>(D(),L("div",{key:u.filePath,class:"flex items-center justify-between"},[g("div",Oa,[g("span",Ba,I(u.filePath),1)]),g("span",Na,I(u.decisionCount)+" Decisions ",1)]))),128))])):(D(),L("p",za,"No file data yet"))]),g("div",Va,[a[32]||(a[32]=g("h3",{class:"text-sm font-bold text-slate-100 mb-6 flex items-center gap-2"},[g("span",{class:"material-symbols-outlined text-primary text-sm"},"visibility_off"),F(" Undocumented Zones ")],-1)),_(t).patterns?.zeroDecisionSessions>0?(D(),L("div",Ea,[g("div",Wa,[a[29]||(a[29]=g("p",{class:"text-[10px] font-bold text-red-400 mb-1 uppercase"},"Sessions Without Decisions",-1)),g("p",Fa,I(_(t).patterns.zeroDecisionSessions)+" sessions had no architectural decisions extracted",1)]),g("div",qa,[a[30]||(a[30]=g("p",{class:"text-[10px] font-bold text-primary/50 mb-1 uppercase"},"Coverage Rate",-1)),g("p",Ma,I(Math.round((_(t).patterns.totalSessions-_(t).patterns.zeroDecisionSessions)/Math.max(1,_(t).patterns.totalSessions)*100))+"% of sessions produced decisions ",1)])])):(D(),L("div",ja,[...a[31]||(a[31]=[g("p",{class:"text-xs text-emerald-400"},"All sessions have documented decisions",-1)])]))]),g("div",Ha,[a[34]||(a[34]=g("h3",{class:"text-sm font-bold text-slate-100 mb-6 flex items-center gap-2"},[g("span",{class:"material-symbols-outlined text-primary text-sm"},"tag"),F(" Cross-Cutting Tags ")],-1)),_(t).codebase?.topTags?.length>0?(D(),L("div",$a,[(D(!0),L(H,null,K(_(t).codebase.topTags.slice(0,12),(u,h)=>(D(),L("span",{key:u.tag,class:E(["px-3 py-1.5 text-[10px] font-bold rounded-full uppercase",h===0?"bg-primary text-bg-dark shadow-[0_0_10px_rgba(13,242,242,0.4)]":"bg-primary/20 text-primary border border-primary/30"])},I(u.tag),3))),128))])):(D(),L("p",Ua,"No tags yet")),_(t).codebase?.topTags?.length>0?(D(),L("div",Ya,[a[33]||(a[33]=g("div",{class:"w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-primary"},[g("span",{class:"material-symbols-outlined text-sm"},"lightbulb")],-1)),g("p",Xa,'"'+I(_(t).codebase.topTags[0]?.tag)+'" appears in '+I(_(t).codebase.topTags[0]?.count)+" decisions",1)])):ge("",!0)])])],64)):_(t).error?(D(),L("div",Qa,[a[35]||(a[35]=g("span",{class:"material-symbols-outlined text-5xl text-red-400/50 mb-4"},"error",-1)),g("p",Za,I(_(t).error),1)])):ge("",!0)])])}}});export{tn as default};
@@ -1 +1 @@
1
- import{d as Kt,r as Y,a as Ht,c as gt,u as F,b as Yt,o as B,e as te,f as X,g as k,F as tt,h as j,w as et,i as lt,j as ee,k as ae,l as ut,t as vt,n as re}from"./index-CB5v6K3L.js";import{a as Dt}from"./useApi-goimj9yG.js";import{_ as at}from"./StatCard.vue_vue_type_script_setup_true_lang-DRCbHjfR.js";import{_ as ie,a as ne}from"./TagPill.vue_vue_type_script_setup_true_lang-D3QpKM6-.js";import{_ as Q,c as se,G as st,a as pt,t as Bt,S as oe,r as le,e as ue,l as ve,u as it,s as ce,i as $t,g as bt,n as he,Z as fe,b as It,d as jt,f as yt,h as rt,j as Pt,k as me,m as Ut,o as ge,p as pe,q as St,v as nt,w as Wt,x as J,P as ye,y as kt,z as Zt,A as At,B as de,C as wt,D as Lt,E as Tt,F as Et,H as ct,I as Ct,J as ht,K as be,L as Se,M as _e,N as xt,O as De,Q as Ie,R as Pe,T as ke,U as Nt,V as Ae,W as we,X as Le,Y as Te,$ as Ee,a0 as Ce,a1 as Ne,a2 as Oe,a3 as ze}from"./installCanvasRenderer-ZjWTVaVA.js";const Ve=Kt("dashboard",()=>{const o=Y(null),a=Y([]),t=Y(!1),e=Y(null);async function n(){t.value=!0,e.value=null;try{const[r,i]=await Promise.all([Dt.getDashboard(),Dt.getTimeline()]);o.value=r,a.value=i}catch(r){e.value=r.message}finally{t.value=!1}}return{stats:o,timeline:a,loading:t,error:e,fetchDashboard:n}});var Ge=(function(o){Q(a,o);function a(){var t=o!==null&&o.apply(this,arguments)||this;return t.type=a.type,t.hasSymbolVisual=!0,t}return a.prototype.getInitialData=function(t){return se(null,this,{useEncodeDefaulter:!0})},a.prototype.getLegendIcon=function(t){var e=new st,n=pt("line",0,t.itemHeight/2,t.itemWidth,0,t.lineStyle.stroke,!1);e.add(n),n.setStyle(t.lineStyle);var r=this.getData().getVisual("symbol"),i=this.getData().getVisual("symbolRotate"),s=r==="none"?"circle":r,u=t.itemHeight*.8,l=pt(s,(t.itemWidth-u)/2,(t.itemHeight-u)/2,u,u,t.itemStyle.fill);e.add(l),l.setStyle(t.itemStyle);var h=t.iconRotate==="inherit"?i:t.iconRotate||0;return l.rotation=h*Math.PI/180,l.setOrigin([t.itemWidth/2,t.itemHeight/2]),s.indexOf("empty")>-1&&(l.style.stroke=l.style.fill,l.style.fill=Bt.color.neutral00,l.style.lineWidth=2),e},a.type="series.line",a.dependencies=["grid","polar"],a.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:6,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},a})(oe),_t=(function(o){Q(a,o);function a(t,e,n,r){var i=o.call(this)||this;return i.updateData(t,e,n,r),i}return a.prototype._createSymbol=function(t,e,n,r,i,s){this.removeAll();var u=pt(t,-1,-1,2,2,null,s);u.attr({z2:le(i,100),culling:!0,scaleX:r[0]/2,scaleY:r[1]/2}),u.drift=Re,this._symbolType=t,this.add(u)},a.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},a.prototype.getSymbolType=function(){return this._symbolType},a.prototype.getSymbolPath=function(){return this.childAt(0)},a.prototype.highlight=function(){ue(this.childAt(0))},a.prototype.downplay=function(){ve(this.childAt(0))},a.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},a.prototype.setDraggable=function(t,e){var n=this.childAt(0);n.draggable=t,n.cursor=!e&&t?"move":n.cursor},a.prototype.updateData=function(t,e,n,r){this.silent=!1;var i=t.getItemVisual(e,"symbol")||"circle",s=t.hostModel,u=a.getSymbolSize(t,e),l=a.getSymbolZ2(t,e),h=i!==this._symbolType,v=r&&r.disableAnimation;if(h){var f=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(i,t,e,u,l,f)}else{var c=this.childAt(0);c.silent=!1;var m={scaleX:u[0]/2,scaleY:u[1]/2};v?c.attr(m):it(c,m,s,e),ce(c)}if(this._updateCommon(t,e,u,n,r),h){var c=this.childAt(0);if(!v){var m={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:c.style.opacity}};c.scaleX=c.scaleY=0,c.style.opacity=0,$t(c,m,s,e)}}v&&this.childAt(0).stopAnimation("leave")},a.prototype._updateCommon=function(t,e,n,r,i){var s=this.childAt(0),u=t.hostModel,l,h,v,f,c,m,g,b,p;if(r&&(l=r.emphasisItemStyle,h=r.blurItemStyle,v=r.selectItemStyle,f=r.focus,c=r.blurScope,g=r.labelStatesModels,b=r.hoverScale,p=r.cursorStyle,m=r.emphasisDisabled),!r||t.hasItemOption){var y=r&&r.itemModel?r.itemModel:t.getItemModel(e),d=y.getModel("emphasis");l=d.getModel("itemStyle").getItemStyle(),v=y.getModel(["select","itemStyle"]).getItemStyle(),h=y.getModel(["blur","itemStyle"]).getItemStyle(),f=d.get("focus"),c=d.get("blurScope"),m=d.get("disabled"),g=bt(y),b=d.getShallow("scale"),p=y.getShallow("cursor")}var I=t.getItemVisual(e,"symbolRotate");s.attr("rotation",(I||0)*Math.PI/180||0);var D=he(t.getItemVisual(e,"symbolOffset"),n);D&&(s.x=D[0],s.y=D[1]),p&&s.attr("cursor",p);var _=t.getItemVisual(e,"style"),S=_.fill;if(s instanceof fe){var T=s.style;s.useStyle(It({image:T.image,x:T.x,y:T.y,width:T.width,height:T.height},_))}else s.__isEmptyBrush?s.useStyle(It({},_)):s.useStyle(_),s.style.decal=null,s.setColor(S,i&&i.symbolInnerColor),s.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),P=this._z2;w!=null?P==null&&(this._z2=s.z2,s.z2+=w):P!=null&&(s.z2=P,this._z2=null);var L=i&&i.useNameLabel;jt(s,g,{labelFetcher:u,labelDataIndex:e,defaultText:A,inheritColor:S,defaultOpacity:_.opacity});function A(O){return L?t.getName(O):Ut(t,O)}this._sizeX=n[0]/2,this._sizeY=n[1]/2;var E=s.ensureState("emphasis");E.style=l,s.ensureState("select").style=v,s.ensureState("blur").style=h;var V=b==null||b===!0?Math.max(1.1,3/this._sizeY):isFinite(b)&&b>0?+b:1;E.scaleX=this._sizeX*V,E.scaleY=this._sizeY*V,this.setSymbolScale(1),yt(this,f,c,m)},a.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},a.prototype.fadeOut=function(t,e,n){var r=this.childAt(0),i=rt(this).dataIndex,s=n&&n.animation;if(this.silent=r.silent=!0,n&&n.fadeLabel){var u=r.getTextContent();u&&Pt(u,{style:{opacity:0}},e,{dataIndex:i,removeOpt:s,cb:function(){r.removeTextContent()}})}else r.removeTextContent();Pt(r,{style:{opacity:0},scaleX:0,scaleY:0},e,{dataIndex:i,cb:t,removeOpt:s})},a.getSymbolSize=function(t,e){return me(t.getItemVisual(e,"symbolSize"))},a.getSymbolZ2=function(t,e){return t.getItemVisual(e,"z2")},a})(st);function Re(o,a){this.parent.drift(o,a)}function ft(o,a,t,e){return a&&!isNaN(a[0])&&!isNaN(a[1])&&!(e.isIgnore&&e.isIgnore(t))&&!(e.clipShape&&!e.clipShape.contain(a[0],a[1]))&&o.getItemVisual(t,"symbol")!=="none"}function Ot(o){return o!=null&&!pe(o)&&(o={isIgnore:o}),o||{}}function zt(o){var a=o.hostModel,t=a.getModel("emphasis");return{emphasisItemStyle:t.getModel("itemStyle").getItemStyle(),blurItemStyle:a.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:a.getModel(["select","itemStyle"]).getItemStyle(),focus:t.get("focus"),blurScope:t.get("blurScope"),emphasisDisabled:t.get("disabled"),hoverScale:t.get("scale"),labelStatesModels:bt(a),cursorStyle:a.get("cursor")}}var Me=(function(){function o(a){this.group=new st,this._SymbolCtor=a||_t}return o.prototype.updateData=function(a,t){this._progressiveEls=null,t=Ot(t);var e=this.group,n=a.hostModel,r=this._data,i=this._SymbolCtor,s=t.disableAnimation,u=zt(a),l={disableAnimation:s},h=t.getSymbolPoint||function(v){return a.getItemLayout(v)};r||e.removeAll(),a.diff(r).add(function(v){var f=h(v);if(ft(a,f,v,t)){var c=new i(a,v,u,l);c.setPosition(f),a.setItemGraphicEl(v,c),e.add(c)}}).update(function(v,f){var c=r.getItemGraphicEl(f),m=h(v);if(!ft(a,m,v,t)){e.remove(c);return}var g=a.getItemVisual(v,"symbol")||"circle",b=c&&c.getSymbolType&&c.getSymbolType();if(!c||b&&b!==g)e.remove(c),c=new i(a,v,u,l),c.setPosition(m);else{c.updateData(a,v,u,l);var p={x:m[0],y:m[1]};s?c.attr(p):it(c,p,n)}e.add(c),a.setItemGraphicEl(v,c)}).remove(function(v){var f=r.getItemGraphicEl(v);f&&f.fadeOut(function(){e.remove(f)},n)}).execute(),this._getSymbolPoint=h,this._data=a},o.prototype.updateLayout=function(){var a=this,t=this._data;t&&t.eachItemGraphicEl(function(e,n){var r=a._getSymbolPoint(n);e.setPosition(r),e.markRedraw()})},o.prototype.incrementalPrepareUpdate=function(a){this._seriesScope=zt(a),this._data=null,this.group.removeAll()},o.prototype.incrementalUpdate=function(a,t,e){this._progressiveEls=[],e=Ot(e);function n(u){u.isGroup||(u.incremental=!0,u.ensureState("emphasis").hoverLayer=!0)}for(var r=a.start;r<a.end;r++){var i=t.getItemLayout(r);if(ft(t,i,r,e)){var s=new this._SymbolCtor(t,r,this._seriesScope);s.traverse(n),s.setPosition(i),this.group.add(s),t.setItemGraphicEl(r,s),this._progressiveEls.push(s)}}},o.prototype.eachRendered=function(a){ge(this._progressiveEls||this.group,a)},o.prototype.remove=function(a){var t=this.group,e=this._data;e&&a?e.eachItemGraphicEl(function(n){n.fadeOut(function(){t.remove(n)},e.hostModel)}):t.removeAll()},o})();function Xt(o,a,t){var e=o.getBaseAxis(),n=o.getOtherAxis(e),r=Fe(n,t),i=e.dim,s=n.dim,u=a.mapDimension(s),l=a.mapDimension(i),h=s==="x"||s==="radius"?1:0,v=St(o.dimensions,function(m){return a.mapDimension(m)}),f=!1,c=a.getCalculationInfo("stackResultDimension");return nt(a,v[0])&&(f=!0,v[0]=c),nt(a,v[1])&&(f=!0,v[1]=c),{dataDimsForPoint:v,valueStart:r,valueAxisDim:s,baseAxisDim:i,stacked:!!f,valueDim:u,baseDim:l,baseDataOffset:h,stackedOverDimension:a.getCalculationInfo("stackedOverDimension")}}function Fe(o,a){var t=0,e=o.scale.getExtent();return a==="start"?t=e[0]:a==="end"?t=e[1]:Wt(a)&&!isNaN(a)?t=a:e[0]>0?t=e[0]:e[1]<0&&(t=e[1]),t}function qt(o,a,t,e){var n=NaN;o.stacked&&(n=t.get(t.getCalculationInfo("stackedOverDimension"),e)),isNaN(n)&&(n=o.valueStart);var r=o.baseDataOffset,i=[];return i[r]=t.get(o.baseDim,e),i[1-r]=n,a.dataToPoint(i)}function He(o,a){var t=[];return a.diff(o).add(function(e){t.push({cmd:"+",idx:e})}).update(function(e,n){t.push({cmd:"=",idx:n,idx1:e})}).remove(function(e){t.push({cmd:"-",idx:e})}).execute(),t}function Be(o,a,t,e,n,r,i,s){for(var u=He(o,a),l=[],h=[],v=[],f=[],c=[],m=[],g=[],b=Xt(n,a,i),p=o.getLayout("points")||[],y=a.getLayout("points")||[],d=0;d<u.length;d++){var I=u[d],D=!0,_=void 0,S=void 0;switch(I.cmd){case"=":_=I.idx*2,S=I.idx1*2;var T=p[_],w=p[_+1],P=y[S],L=y[S+1];(isNaN(T)||isNaN(w))&&(T=P,w=L),l.push(T,w),h.push(P,L),v.push(t[_],t[_+1]),f.push(e[S],e[S+1]),g.push(a.getRawIndex(I.idx1));break;case"+":var A=I.idx,E=b.dataDimsForPoint,V=n.dataToPoint([a.get(E[0],A),a.get(E[1],A)]);S=A*2,l.push(V[0],V[1]),h.push(y[S],y[S+1]);var O=qt(b,n,a,A);v.push(O[0],O[1]),f.push(e[S],e[S+1]),g.push(a.getRawIndex(A));break;case"-":D=!1}D&&(c.push(I),m.push(m.length))}m.sort(function(G,ot){return g[G]-g[ot]});for(var z=l.length,H=J(z),C=J(z),N=J(z),$=J(z),U=[],d=0;d<m.length;d++){var K=m[d],R=d*2,M=K*2;H[R]=l[M],H[R+1]=l[M+1],C[R]=h[M],C[R+1]=h[M+1],N[R]=v[M],N[R+1]=v[M+1],$[R]=f[M],$[R+1]=f[M+1],U[d]=c[K]}return{current:H,next:C,stackedOnCurrent:N,stackedOnNext:$,status:U}}var W=Math.min,Z=Math.max;function q(o,a){return isNaN(o)||isNaN(a)}function dt(o,a,t,e,n,r,i,s,u){for(var l,h,v,f,c,m,g=t,b=0;b<e;b++){var p=a[g*2],y=a[g*2+1];if(g>=n||g<0)break;if(q(p,y)){if(u){g+=r;continue}break}if(g===t)o[r>0?"moveTo":"lineTo"](p,y),v=p,f=y;else{var d=p-l,I=y-h;if(d*d+I*I<.5){g+=r;continue}if(i>0){for(var D=g+r,_=a[D*2],S=a[D*2+1];_===p&&S===y&&b<e;)b++,D+=r,g+=r,_=a[D*2],S=a[D*2+1],p=a[g*2],y=a[g*2+1],d=p-l,I=y-h;var T=b+1;if(u)for(;q(_,S)&&T<e;)T++,D+=r,_=a[D*2],S=a[D*2+1];var w=.5,P=0,L=0,A=void 0,E=void 0;if(T>=e||q(_,S))c=p,m=y;else{P=_-l,L=S-h;var V=p-l,O=_-p,z=y-h,H=S-y,C=void 0,N=void 0;if(s==="x"){C=Math.abs(V),N=Math.abs(O);var $=P>0?1:-1;c=p-$*C*i,m=y,A=p+$*N*i,E=y}else if(s==="y"){C=Math.abs(z),N=Math.abs(H);var U=L>0?1:-1;c=p,m=y-U*C*i,A=p,E=y+U*N*i}else C=Math.sqrt(V*V+z*z),N=Math.sqrt(O*O+H*H),w=N/(N+C),c=p-P*i*(1-w),m=y-L*i*(1-w),A=p+P*i*w,E=y+L*i*w,A=W(A,Z(_,p)),E=W(E,Z(S,y)),A=Z(A,W(_,p)),E=Z(E,W(S,y)),P=A-p,L=E-y,c=p-P*C/N,m=y-L*C/N,c=W(c,Z(l,p)),m=W(m,Z(h,y)),c=Z(c,W(l,p)),m=Z(m,W(h,y)),P=p-c,L=y-m,A=p+P*N/C,E=y+L*N/C}o.bezierCurveTo(v,f,c,m,p,y),v=A,f=E}else o.lineTo(p,y)}l=p,h=y,g+=r}return b}var Jt=(function(){function o(){this.smooth=0,this.smoothConstraint=!0}return o})(),$e=(function(o){Q(a,o);function a(t){var e=o.call(this,t)||this;return e.type="ec-polyline",e}return a.prototype.getDefaultStyle=function(){return{stroke:Bt.color.neutral99,fill:null}},a.prototype.getDefaultShape=function(){return new Jt},a.prototype.buildPath=function(t,e){var n=e.points,r=0,i=n.length/2;if(e.connectNulls){for(;i>0&&q(n[i*2-2],n[i*2-1]);i--);for(;r<i&&q(n[r*2],n[r*2+1]);r++);}for(;r<i;)r+=dt(t,n,r,i,i,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},a.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n=this.path,r=n.data,i=ye.CMD,s,u,l=e==="x",h=[],v=0;v<r.length;){var f=r[v++],c=void 0,m=void 0,g=void 0,b=void 0,p=void 0,y=void 0,d=void 0;switch(f){case i.M:s=r[v++],u=r[v++];break;case i.L:if(c=r[v++],m=r[v++],d=l?(t-s)/(c-s):(t-u)/(m-u),d<=1&&d>=0){var I=l?(m-u)*d+u:(c-s)*d+s;return l?[t,I]:[I,t]}s=c,u=m;break;case i.C:c=r[v++],m=r[v++],g=r[v++],b=r[v++],p=r[v++],y=r[v++];var D=l?kt(s,c,g,p,t,h):kt(u,m,b,y,t,h);if(D>0)for(var _=0;_<D;_++){var S=h[_];if(S<=1&&S>=0){var I=l?At(u,m,b,y,S):At(s,c,g,p,S);return l?[t,I]:[I,t]}}s=p,u=y;break}}},a})(Zt),je=(function(o){Q(a,o);function a(){return o!==null&&o.apply(this,arguments)||this}return a})(Jt),Ue=(function(o){Q(a,o);function a(t){var e=o.call(this,t)||this;return e.type="ec-polygon",e}return a.prototype.getDefaultShape=function(){return new je},a.prototype.buildPath=function(t,e){var n=e.points,r=e.stackedOnPoints,i=0,s=n.length/2,u=e.smoothMonotone;if(e.connectNulls){for(;s>0&&q(n[s*2-2],n[s*2-1]);s--);for(;i<s&&q(n[i*2],n[i*2+1]);i++);}for(;i<s;){var l=dt(t,n,i,s,s,1,e.smooth,u,e.connectNulls);dt(t,r,i+l-1,l,s,-1,e.stackedOnSmooth,u,e.connectNulls),i+=l+1,t.closePath()}},a})(Zt);function Vt(o,a){if(o.length===a.length){for(var t=0;t<o.length;t++)if(o[t]!==a[t])return;return!0}}function Gt(o){for(var a=1/0,t=1/0,e=-1/0,n=-1/0,r=0;r<o.length;){var i=o[r++],s=o[r++];isNaN(i)||(a=Math.min(i,a),e=Math.max(i,e)),isNaN(s)||(t=Math.min(s,t),n=Math.max(s,n))}return[[a,t],[e,n]]}function Rt(o,a){var t=Gt(o),e=t[0],n=t[1],r=Gt(a),i=r[0],s=r[1];return Math.max(Math.abs(e[0]-i[0]),Math.abs(e[1]-i[1]),Math.abs(n[0]-s[0]),Math.abs(n[1]-s[1]))}function Mt(o){return Wt(o)?o:o?.5:0}function We(o,a,t){if(!t.valueDim)return[];for(var e=a.count(),n=J(e*2),r=0;r<e;r++){var i=qt(t,o,a,r);n[r*2]=i[0],n[r*2+1]=i[1]}return n}function x(o,a,t,e,n){var r=t.getBaseAxis(),i=r.dim==="x"||r.dim==="radius"?0:1,s=[],u=0,l=[],h=[],v=[],f=[];if(n){for(u=0;u<o.length;u+=2){var c=a||o;!isNaN(c[u])&&!isNaN(c[u+1])&&f.push(o[u],o[u+1])}o=f}for(u=0;u<o.length-2;u+=2)switch(v[0]=o[u+2],v[1]=o[u+3],h[0]=o[u],h[1]=o[u+1],s.push(h[0],h[1]),e){case"end":l[i]=v[i],l[1-i]=h[1-i],s.push(l[0],l[1]);break;case"middle":var m=(h[i]+v[i])/2,g=[];l[i]=g[i]=m,l[1-i]=h[1-i],g[1-i]=v[1-i],s.push(l[0],l[1]),s.push(g[0],g[1]);break;default:l[i]=h[i],l[1-i]=v[1-i],s.push(l[0],l[1])}return s.push(o[u++],o[u++]),s}function Ze(o,a){var t=[],e=o.length,n,r;function i(h,v,f){var c=h.coord,m=(f-c)/(v.coord-c),g=Ae(m,[h.color,v.color]);return{coord:f,color:g}}for(var s=0;s<e;s++){var u=o[s],l=u.coord;if(l<0)n=u;else if(l>a){r?t.push(i(r,u,a)):n&&t.push(i(n,u,0),i(n,u,a));break}else n&&(t.push(i(n,u,0)),n=null),t.push(u),r=u}return t}function xe(o,a,t){var e=o.getVisual("visualMeta");if(!(!e||!e.length||!o.count())&&a.type==="cartesian2d"){for(var n,r,i=e.length-1;i>=0;i--){var s=o.getDimensionInfo(e[i].dimension);if(n=s&&s.coordDim,n==="x"||n==="y"){r=e[i];break}}if(r){var u=a.getAxis(n),l=St(r.stops,function(d){return{coord:u.toGlobalCoord(u.dataToCoord(d.value)),color:d.color}}),h=l.length,v=r.outerColors.slice();h&&l[0].coord>l[h-1].coord&&(l.reverse(),v.reverse());var f=Ze(l,n==="x"?t.getWidth():t.getHeight()),c=f.length;if(!c&&h)return l[0].coord<0?v[1]?v[1]:l[h-1].color:v[0]?v[0]:l[0].color;var m=10,g=f[0].coord-m,b=f[c-1].coord+m,p=b-g;if(p<.001)return"transparent";xt(f,function(d){d.offset=(d.coord-g)/p}),f.push({offset:c?f[c-1].offset:.5,color:v[1]||"transparent"}),f.unshift({offset:c?f[0].offset:.5,color:v[0]||"transparent"});var y=new De(0,0,0,0,f,!0);return y[n]=g,y[n+"2"]=b,y}}}function Xe(o,a,t){var e=o.get("showAllSymbol"),n=e==="auto";if(!(e&&!n)){var r=t.getAxesByScale("ordinal")[0];if(r&&!(n&&qe(r,a))){var i=a.mapDimension(r.dim),s={};return xt(r.getViewLabels(),function(u){var l=r.scale.getRawOrdinalNumber(u.tickValue);s[l]=1}),function(u){return!s.hasOwnProperty(a.get(i,u))}}}}function qe(o,a){var t=o.getExtent(),e=Math.abs(t[1]-t[0])/o.scale.count();isNaN(e)&&(e=0);for(var n=a.count(),r=Math.max(1,Math.round(n/5)),i=0;i<n;i+=r)if(_t.getSymbolSize(a,i)[o.isHorizontal()?1:0]*1.5>e)return!1;return!0}function Je(o,a){return isNaN(o)||isNaN(a)}function Qe(o){for(var a=o.length/2;a>0&&Je(o[a*2-2],o[a*2-1]);a--);return a-1}function Ft(o,a){return[o[a*2],o[a*2+1]]}function Ke(o,a,t){for(var e=o.length/2,n=t==="x"?0:1,r,i,s=0,u=-1,l=0;l<e;l++)if(i=o[l*2+n],!(isNaN(i)||isNaN(o[l*2+1-n]))){if(l===0){r=i;continue}if(r<=a&&i>=a||r>=a&&i<=a){u=l;break}s=l,r=i}return{range:[s,u],t:(a-r)/(i-r)}}function Qt(o){if(o.get(["endLabel","show"]))return!0;for(var a=0;a<Nt.length;a++)if(o.get([Nt[a],"endLabel","show"]))return!0;return!1}function mt(o,a,t,e){if(Ie(a,"cartesian2d")){var n=e.getModel("endLabel"),r=n.get("valueAnimation"),i=e.getData(),s={lastFrameIndex:0},u=Qt(e)?function(c,m){o._endLabelOnDuring(c,m,i,s,r,n,a)}:null,l=a.getBaseAxis().isHorizontal(),h=Pe(a,t,e,function(){var c=o._endLabel;c&&t&&s.originalX!=null&&c.attr({x:s.originalX,y:s.originalY})},u);if(!e.get("clip",!0)){var v=h.shape,f=Math.max(v.width,v.height);l?(v.y-=f,v.height+=f*2):(v.x-=f,v.width+=f*2)}return u&&u(1,h),h}else return ke(a,t,e)}function Ye(o,a){var t=a.getBaseAxis(),e=t.isHorizontal(),n=t.inverse,r=e?n?"right":"left":"center",i=e?"middle":n?"top":"bottom";return{normal:{align:o.get("align")||r,verticalAlign:o.get("verticalAlign")||i}}}var ta=(function(o){Q(a,o);function a(){return o!==null&&o.apply(this,arguments)||this}return a.prototype.init=function(){var t=new st,e=new Me;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t,this._changePolyState=de(this._changePolyState,this)},a.prototype.render=function(t,e,n){var r=t.coordinateSystem,i=this.group,s=t.getData(),u=t.getModel("lineStyle"),l=t.getModel("areaStyle"),h=s.getLayout("points")||[],v=r.type==="polar",f=this._coordSys,c=this._symbolDraw,m=this._polyline,g=this._polygon,b=this._lineGroup,p=!e.ssr&&t.get("animation"),y=!l.isEmpty(),d=l.get("origin"),I=Xt(r,s,d),D=y&&We(r,s,I),_=t.get("showSymbol"),S=t.get("connectNulls"),T=_&&!v&&Xe(t,s,r),w=this._data;w&&w.eachItemGraphicEl(function(G,ot){G.__temp&&(i.remove(G),w.setItemGraphicEl(ot,null))}),_||c.remove(),i.add(b);var P=v?!1:t.get("step"),L;r&&r.getArea&&t.get("clip",!0)&&(L=r.getArea(),L.width!=null?(L.x-=.1,L.y-=.1,L.width+=.2,L.height+=.2):L.r0&&(L.r0-=.5,L.r+=.5)),this._clipShapeForSymbol=L;var A=xe(s,r,n)||s.getVisual("style")[s.getVisual("drawType")];if(!(m&&f.type===r.type&&P===this._step))_&&c.updateData(s,{isIgnore:T,clipShape:L,disableAnimation:!0,getSymbolPoint:function(G){return[h[G*2],h[G*2+1]]}}),p&&this._initSymbolLabelAnimation(s,r,L),P&&(D&&(D=x(D,h,r,P,S)),h=x(h,null,r,P,S)),m=this._newPolyline(h),y?g=this._newPolygon(h,D):g&&(b.remove(g),g=this._polygon=null),v||this._initOrUpdateEndLabel(t,r,wt(A)),b.setClipPath(mt(this,r,!0,t));else{y&&!g?g=this._newPolygon(h,D):g&&!y&&(b.remove(g),g=this._polygon=null),v||this._initOrUpdateEndLabel(t,r,wt(A));var E=b.getClipPath();if(E){var V=mt(this,r,!1,t);$t(E,{shape:V.shape},t)}else b.setClipPath(mt(this,r,!0,t));_&&c.updateData(s,{isIgnore:T,clipShape:L,disableAnimation:!0,getSymbolPoint:function(G){return[h[G*2],h[G*2+1]]}}),(!Vt(this._stackedOnPoints,D)||!Vt(this._points,h))&&(p?this._doUpdateAnimation(s,D,r,n,P,d,S):(P&&(D&&(D=x(D,h,r,P,S)),h=x(h,null,r,P,S)),m.setShape({points:h}),g&&g.setShape({points:h,stackedOnPoints:D})))}var O=t.getModel("emphasis"),z=O.get("focus"),H=O.get("blurScope"),C=O.get("disabled");if(m.useStyle(Lt(u.getLineStyle(),{fill:"none",stroke:A,lineJoin:"bevel"})),Tt(m,t,"lineStyle"),m.style.lineWidth>0&&t.get(["emphasis","lineStyle","width"])==="bolder"){var N=m.getState("emphasis").style;N.lineWidth=+m.style.lineWidth+1}rt(m).seriesIndex=t.seriesIndex,yt(m,z,H,C);var $=Mt(t.get("smooth")),U=t.get("smoothMonotone");if(m.setShape({smooth:$,smoothMonotone:U,connectNulls:S}),g){var K=s.getCalculationInfo("stackedOnSeries"),R=0;g.useStyle(Lt(l.getAreaStyle(),{fill:A,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),K&&(R=Mt(K.get("smooth"))),g.setShape({smooth:$,stackedOnSmooth:R,smoothMonotone:U,connectNulls:S}),Tt(g,t,"areaStyle"),rt(g).seriesIndex=t.seriesIndex,yt(g,z,H,C)}var M=this._changePolyState;s.eachItemGraphicEl(function(G){G&&(G.onHoverStateChange=M)}),this._polyline.onHoverStateChange=M,this._data=s,this._coordSys=r,this._stackedOnPoints=D,this._points=h,this._step=P,this._valueOrigin=d,t.get("triggerLineEvent")&&(this.packEventData(t,m),g&&this.packEventData(t,g))},a.prototype.packEventData=function(t,e){rt(e).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},a.prototype.highlight=function(t,e,n,r){var i=t.getData(),s=Et(i,r);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var u=i.getLayout("points"),l=i.getItemGraphicEl(s);if(!l){var h=u[s*2],v=u[s*2+1];if(isNaN(h)||isNaN(v)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(h,v))return;var f=t.get("zlevel")||0,c=t.get("z")||0;l=new _t(i,s),l.x=h,l.y=v,l.setZ(f,c);var m=l.getSymbolPath().getTextContent();m&&(m.zlevel=f,m.z=c,m.z2=this._polyline.z2+1),l.__temp=!0,i.setItemGraphicEl(s,l),l.stopSymbolAnimation(!0),this.group.add(l)}l.highlight()}else ct.prototype.highlight.call(this,t,e,n,r)},a.prototype.downplay=function(t,e,n,r){var i=t.getData(),s=Et(i,r);if(this._changePolyState("normal"),s!=null&&s>=0){var u=i.getItemGraphicEl(s);u&&(u.__temp?(i.setItemGraphicEl(s,null),this.group.remove(u)):u.downplay())}else ct.prototype.downplay.call(this,t,e,n,r)},a.prototype._changePolyState=function(t){var e=this._polygon;Ct(this._polyline,t),e&&Ct(e,t)},a.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new $e({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},a.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new Ue({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},a.prototype._initSymbolLabelAnimation=function(t,e,n){var r,i,s=e.getBaseAxis(),u=s.inverse;e.type==="cartesian2d"?(r=s.isHorizontal(),i=!1):e.type==="polar"&&(r=s.dim==="angle",i=!0);var l=t.hostModel,h=l.get("animationDuration");ht(h)&&(h=h(null));var v=l.get("animationDelay")||0,f=ht(v)?v(null):v;t.eachItemGraphicEl(function(c,m){var g=c;if(g){var b=[c.x,c.y],p=void 0,y=void 0,d=void 0;if(n)if(i){var I=n,D=e.pointToCoord(b);r?(p=I.startAngle,y=I.endAngle,d=-D[1]/180*Math.PI):(p=I.r0,y=I.r,d=D[0])}else{var _=n;r?(p=_.x,y=_.x+_.width,d=c.x):(p=_.y+_.height,y=_.y,d=c.y)}var S=y===p?0:(d-p)/(y-p);u&&(S=1-S);var T=ht(v)?v(m):h*S+f,w=g.getSymbolPath(),P=w.getTextContent();g.attr({scaleX:0,scaleY:0}),g.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:T}),P&&P.animateFrom({style:{opacity:0}},{duration:300,delay:T}),w.disableLabelAnimation=!0}})},a.prototype._initOrUpdateEndLabel=function(t,e,n){var r=t.getModel("endLabel");if(Qt(t)){var i=t.getData(),s=this._polyline,u=i.getLayout("points");if(!u){s.removeTextContent(),this._endLabel=null;return}var l=this._endLabel;l||(l=this._endLabel=new be({z2:200}),l.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var h=Qe(u);h>=0&&(jt(s,bt(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:h,defaultText:function(v,f,c){return c!=null?we(i,c):Ut(i,v)},enableTextSetter:!0},Ye(r,e)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},a.prototype._endLabelOnDuring=function(t,e,n,r,i,s,u){var l=this._endLabel,h=this._polyline;if(l){t<1&&r.originalX==null&&(r.originalX=l.x,r.originalY=l.y);var v=n.getLayout("points"),f=n.hostModel,c=f.get("connectNulls"),m=s.get("precision"),g=s.get("distance")||0,b=u.getBaseAxis(),p=b.isHorizontal(),y=b.inverse,d=e.shape,I=y?p?d.x:d.y+d.height:p?d.x+d.width:d.y,D=(p?g:0)*(y?-1:1),_=(p?0:-g)*(y?-1:1),S=p?"x":"y",T=Ke(v,I,S),w=T.range,P=w[1]-w[0],L=void 0;if(P>=1){if(P>1&&!c){var A=Ft(v,w[0]);l.attr({x:A[0]+D,y:A[1]+_}),i&&(L=f.getRawValue(w[0]))}else{var A=h.getPointOn(I,S);A&&l.attr({x:A[0]+D,y:A[1]+_});var E=f.getRawValue(w[0]),V=f.getRawValue(w[1]);i&&(L=Se(n,m,E,V,T.t))}r.lastFrameIndex=w[0]}else{var O=t===1||r.lastFrameIndex>0?w[0]:0,A=Ft(v,O);i&&(L=f.getRawValue(O)),l.attr({x:A[0]+D,y:A[1]+_})}if(i){var z=_e(l);typeof z.setLabelText=="function"&&z.setLabelText(L)}}},a.prototype._doUpdateAnimation=function(t,e,n,r,i,s,u){var l=this._polyline,h=this._polygon,v=t.hostModel,f=Be(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin),c=f.current,m=f.stackedOnCurrent,g=f.next,b=f.stackedOnNext;if(i&&(m=x(f.stackedOnCurrent,f.current,n,i,u),c=x(f.current,null,n,i,u),b=x(f.stackedOnNext,f.next,n,i,u),g=x(f.next,null,n,i,u)),Rt(c,g)>3e3||h&&Rt(m,b)>3e3){l.stopAnimation(),l.setShape({points:g}),h&&(h.stopAnimation(),h.setShape({points:g,stackedOnPoints:b}));return}l.shape.__points=f.current,l.shape.points=c;var p={shape:{points:g}};f.current!==c&&(p.shape.__points=f.next),l.stopAnimation(),it(l,p,v),h&&(h.setShape({points:c,stackedOnPoints:m}),h.stopAnimation(),it(h,{shape:{stackedOnPoints:b}},v),l.shape.points!==h.shape.points&&(h.shape.points=l.shape.points));for(var y=[],d=f.status,I=0;I<d.length;I++){var D=d[I].cmd;if(D==="="){var _=t.getItemGraphicEl(d[I].idx1);_&&y.push({el:_,ptIdx:I})}}l.animators&&l.animators.length&&l.animators[0].during(function(){h&&h.dirtyShape();for(var S=l.shape.__points,T=0;T<y.length;T++){var w=y[T].el,P=y[T].ptIdx*2;w.x=S[P],w.y=S[P+1],w.markRedraw()}})},a.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl(function(r,i){r.__temp&&(e.remove(r),n.setItemGraphicEl(i,null))}),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},a.type="line",a})(ct);function ea(o,a){return{seriesType:o,plan:Le(),reset:function(t){var e=t.getData(),n=t.coordinateSystem;if(t.pipelineContext,!!n){var r=St(n.dimensions,function(v){return e.mapDimension(v)}).slice(0,2),i=r.length,s=e.getCalculationInfo("stackResultDimension");nt(e,r[0])&&(r[0]=s),nt(e,r[1])&&(r[1]=s);var u=e.getStore(),l=e.getDimensionIndex(r[0]),h=e.getDimensionIndex(r[1]);return i&&{progress:function(v,f){for(var c=v.end-v.start,m=J(c*i),g=[],b=[],p=v.start,y=0;p<v.end;p++){var d=void 0;if(i===1){var I=u.get(l,p);d=n.dataToPoint(I,null,b)}else g[0]=u.get(l,p),g[1]=u.get(h,p),d=n.dataToPoint(g,null,b);m[y++]=d[0],m[y++]=d[1]}f.setLayout("points",m)}}}}}}function aa(o){o.registerChartView(ta),o.registerSeriesModel(Ge),o.registerLayout(ea("line")),o.registerVisual({seriesType:"line",reset:function(a){var t=a.getData(),e=a.getModel("lineStyle").getLineStyle();e&&!e.stroke&&(e.stroke=t.getVisual("style").fill),t.setVisual("legendLineStyle",e)}}),o.registerProcessor(o.PRIORITY.PROCESSOR.STATISTIC,Te("line"))}const ra=Ht({__name:"ActivityChart",props:{data:{}},setup(o){Ee([aa,Ne,Oe,ze]);const a=o,t=Yt(()=>({tooltip:{trigger:"axis"},grid:{left:40,right:20,top:10,bottom:30},xAxis:{type:"category",data:a.data.map(e=>e.date),axisLine:{lineStyle:{color:"#334"}},axisLabel:{color:"#888",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},splitLine:{lineStyle:{color:"rgba(13,242,242,0.05)"}},axisLabel:{color:"#888"}},series:[{type:"line",data:a.data.map(e=>e.count),smooth:!0,lineStyle:{color:"#0df2f2",width:3},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(13,242,242,0.3)"},{offset:1,color:"rgba(13,242,242,0)"}]}},itemStyle:{color:"#0df2f2"}}]}));return(e,n)=>(B(),gt(F(Ce),{option:t.value,autoresize:"",style:{height:"220px"}},null,8,["option"]))}}),ia={class:"p-8"},na={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"},sa={class:"grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"},oa={class:"lg:col-span-2 bg-bg-dark/40 rounded-xl cyber-border p-6"},la={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},ua={class:"space-y-4"},va={class:"grid grid-cols-1 lg:grid-cols-3 gap-6"},ca={class:"lg:col-span-2 bg-bg-dark/40 rounded-xl cyber-border overflow-hidden"},ha={class:"p-6 border-b border-primary/10 flex justify-between items-center"},fa={class:"divide-y divide-primary/10"},ma={class:"flex items-center gap-4"},ga={class:"text-sm font-semibold text-white"},pa={class:"flex gap-2 mt-1"},ya={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},da={class:"space-y-6"},ba={class:"flex justify-between items-center mb-2"},Sa={class:"text-sm font-medium text-slate-300"},_a={class:"text-sm text-primary font-bold"},Da={class:"w-full bg-slate-800 h-2 rounded-full overflow-hidden"},Ia={key:1,class:"text-center py-20 text-slate-400"},Ta=Ht({__name:"DashboardPage",setup(o){const a=Ve();return te(()=>a.fetchDashboard()),(t,e)=>{const n=ae("router-link");return B(),X("div",ia,[e[8]||(e[8]=k("header",{class:"flex justify-between items-center mb-8"},[k("div",null,[k("h2",{class:"text-2xl font-bold text-white tracking-tight"},"System Overview"),k("p",{class:"text-slate-400 text-sm"},"Your context memory is synchronized.")])],-1)),F(a).stats?(B(),X(tt,{key:0},[k("div",na,[j(at,{label:"Total Decisions",value:F(a).stats.totalDecisions,icon:"analytics"},null,8,["value"]),j(at,{label:"Active",value:F(a).stats.activeDecisions,icon:"check_circle"},null,8,["value"]),j(at,{label:"Sessions",value:F(a).stats.totalSessions,icon:"terminal"},null,8,["value"]),j(at,{label:"Last Activity",value:F(a).stats.lastActivity?"Recent":"Never",icon:"schedule"},null,8,["value"])]),k("div",sa,[k("div",oa,[e[0]||(e[0]=k("div",{class:"flex justify-between items-center mb-4"},[k("h3",{class:"font-bold text-lg text-white"},"Activity Timeline"),k("span",{class:"text-xs text-slate-500"},"Last 7 Days")],-1)),j(ra,{data:F(a).timeline},null,8,["data"])]),k("div",la,[e[3]||(e[3]=k("h3",{class:"font-bold text-lg text-white mb-6"},"Quick Actions",-1)),k("div",ua,[j(n,{to:"/import-export",class:"w-full bg-primary hover:bg-primary/90 text-bg-dark font-bold py-3 px-4 rounded-lg flex items-center justify-center gap-2 transition-colors"},{default:et(()=>[...e[1]||(e[1]=[k("span",{class:"material-symbols-outlined"},"download",-1),ut(" Export Context ",-1)])]),_:1}),j(n,{to:"/import-export",class:"w-full bg-primary/10 hover:bg-primary/20 text-primary border border-primary/30 font-bold py-3 px-4 rounded-lg flex items-center justify-center gap-2 transition-colors"},{default:et(()=>[...e[2]||(e[2]=[k("span",{class:"material-symbols-outlined"},"upload",-1),ut(" Import Memory ",-1)])]),_:1})])])]),k("div",va,[k("div",ca,[k("div",ha,[e[5]||(e[5]=k("h3",{class:"font-bold text-lg text-white"},"Recent Decisions",-1)),j(n,{to:"/decisions",class:"text-xs text-primary hover:underline font-medium"},{default:et(()=>[...e[4]||(e[4]=[ut("View all",-1)])]),_:1})]),k("div",fa,[(B(!0),X(tt,null,lt(F(a).stats.recentDecisions,r=>(B(),gt(n,{key:r.id,to:`/decisions/${r.id}`,class:"p-4 hover:bg-primary/5 transition-colors flex items-center justify-between"},{default:et(()=>[k("div",ma,[e[6]||(e[6]=k("div",{class:"p-2 rounded bg-bg-dark/60 text-primary cyber-border"},[k("span",{class:"material-symbols-outlined"},"psychology")],-1)),k("div",null,[k("h4",ga,vt(r.title),1),k("div",pa,[(B(!0),X(tt,null,lt(r.tags.slice(0,2),i=>(B(),gt(ie,{key:i,tag:i},null,8,["tag"]))),128))])])]),j(ne,{status:r.status},null,8,["status"])]),_:2},1032,["to"]))),128))])]),k("div",ya,[e[7]||(e[7]=k("h3",{class:"font-bold text-lg text-white mb-6"},"Top Context Tags",-1)),k("div",da,[(B(!0),X(tt,null,lt(F(a).stats.topTags,r=>(B(),X("div",{key:r.tag},[k("div",ba,[k("span",Sa,"#"+vt(r.tag),1),k("span",_a,vt(r.count),1)]),k("div",Da,[k("div",{class:"bg-primary h-full rounded-full shadow-[0_0_8px_rgba(13,242,242,0.6)]",style:re({width:`${r.count/(F(a).stats.topTags[0]?.count||1)*100}%`})},null,4)])]))),128))])])])],64)):F(a).loading?(B(),X("div",Ia,"Loading...")):ee("",!0)])}}});export{Ta as default};
1
+ import{d as Kt,r as Y,a as Ht,c as gt,u as F,b as Yt,o as B,e as te,f as X,g as k,F as tt,h as j,w as et,i as lt,j as ee,k as ae,l as ut,t as vt,n as re}from"./index-Bl3DbLj3.js";import{a as Dt}from"./useApi-DkK919W_.js";import{_ as at}from"./StatCard.vue_vue_type_script_setup_true_lang-HwJVk8w_.js";import{_ as ie,a as ne}from"./TagPill.vue_vue_type_script_setup_true_lang-CA2dOM-H.js";import{_ as Q,c as se,G as st,a as pt,t as Bt,S as oe,r as le,e as ue,l as ve,u as it,s as ce,i as $t,g as bt,n as he,Z as fe,b as It,d as jt,f as yt,h as rt,j as Pt,k as me,m as Ut,o as ge,p as pe,q as St,v as nt,w as Wt,x as J,P as ye,y as kt,z as Zt,A as At,B as de,C as wt,D as Lt,E as Tt,F as Et,H as ct,I as Ct,J as ht,K as be,L as Se,M as _e,N as xt,O as De,Q as Ie,R as Pe,T as ke,U as Nt,V as Ae,W as we,X as Le,Y as Te,$ as Ee,a0 as Ce,a1 as Ne,a2 as Oe,a3 as ze}from"./installCanvasRenderer-CuEbBLw0.js";const Ve=Kt("dashboard",()=>{const o=Y(null),a=Y([]),t=Y(!1),e=Y(null);async function n(){t.value=!0,e.value=null;try{const[r,i]=await Promise.all([Dt.getDashboard(),Dt.getTimeline()]);o.value=r,a.value=i}catch(r){e.value=r.message}finally{t.value=!1}}return{stats:o,timeline:a,loading:t,error:e,fetchDashboard:n}});var Ge=(function(o){Q(a,o);function a(){var t=o!==null&&o.apply(this,arguments)||this;return t.type=a.type,t.hasSymbolVisual=!0,t}return a.prototype.getInitialData=function(t){return se(null,this,{useEncodeDefaulter:!0})},a.prototype.getLegendIcon=function(t){var e=new st,n=pt("line",0,t.itemHeight/2,t.itemWidth,0,t.lineStyle.stroke,!1);e.add(n),n.setStyle(t.lineStyle);var r=this.getData().getVisual("symbol"),i=this.getData().getVisual("symbolRotate"),s=r==="none"?"circle":r,u=t.itemHeight*.8,l=pt(s,(t.itemWidth-u)/2,(t.itemHeight-u)/2,u,u,t.itemStyle.fill);e.add(l),l.setStyle(t.itemStyle);var h=t.iconRotate==="inherit"?i:t.iconRotate||0;return l.rotation=h*Math.PI/180,l.setOrigin([t.itemWidth/2,t.itemHeight/2]),s.indexOf("empty")>-1&&(l.style.stroke=l.style.fill,l.style.fill=Bt.color.neutral00,l.style.lineWidth=2),e},a.type="series.line",a.dependencies=["grid","polar"],a.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:6,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},a})(oe),_t=(function(o){Q(a,o);function a(t,e,n,r){var i=o.call(this)||this;return i.updateData(t,e,n,r),i}return a.prototype._createSymbol=function(t,e,n,r,i,s){this.removeAll();var u=pt(t,-1,-1,2,2,null,s);u.attr({z2:le(i,100),culling:!0,scaleX:r[0]/2,scaleY:r[1]/2}),u.drift=Re,this._symbolType=t,this.add(u)},a.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},a.prototype.getSymbolType=function(){return this._symbolType},a.prototype.getSymbolPath=function(){return this.childAt(0)},a.prototype.highlight=function(){ue(this.childAt(0))},a.prototype.downplay=function(){ve(this.childAt(0))},a.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},a.prototype.setDraggable=function(t,e){var n=this.childAt(0);n.draggable=t,n.cursor=!e&&t?"move":n.cursor},a.prototype.updateData=function(t,e,n,r){this.silent=!1;var i=t.getItemVisual(e,"symbol")||"circle",s=t.hostModel,u=a.getSymbolSize(t,e),l=a.getSymbolZ2(t,e),h=i!==this._symbolType,v=r&&r.disableAnimation;if(h){var f=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(i,t,e,u,l,f)}else{var c=this.childAt(0);c.silent=!1;var m={scaleX:u[0]/2,scaleY:u[1]/2};v?c.attr(m):it(c,m,s,e),ce(c)}if(this._updateCommon(t,e,u,n,r),h){var c=this.childAt(0);if(!v){var m={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:c.style.opacity}};c.scaleX=c.scaleY=0,c.style.opacity=0,$t(c,m,s,e)}}v&&this.childAt(0).stopAnimation("leave")},a.prototype._updateCommon=function(t,e,n,r,i){var s=this.childAt(0),u=t.hostModel,l,h,v,f,c,m,g,b,p;if(r&&(l=r.emphasisItemStyle,h=r.blurItemStyle,v=r.selectItemStyle,f=r.focus,c=r.blurScope,g=r.labelStatesModels,b=r.hoverScale,p=r.cursorStyle,m=r.emphasisDisabled),!r||t.hasItemOption){var y=r&&r.itemModel?r.itemModel:t.getItemModel(e),d=y.getModel("emphasis");l=d.getModel("itemStyle").getItemStyle(),v=y.getModel(["select","itemStyle"]).getItemStyle(),h=y.getModel(["blur","itemStyle"]).getItemStyle(),f=d.get("focus"),c=d.get("blurScope"),m=d.get("disabled"),g=bt(y),b=d.getShallow("scale"),p=y.getShallow("cursor")}var I=t.getItemVisual(e,"symbolRotate");s.attr("rotation",(I||0)*Math.PI/180||0);var D=he(t.getItemVisual(e,"symbolOffset"),n);D&&(s.x=D[0],s.y=D[1]),p&&s.attr("cursor",p);var _=t.getItemVisual(e,"style"),S=_.fill;if(s instanceof fe){var T=s.style;s.useStyle(It({image:T.image,x:T.x,y:T.y,width:T.width,height:T.height},_))}else s.__isEmptyBrush?s.useStyle(It({},_)):s.useStyle(_),s.style.decal=null,s.setColor(S,i&&i.symbolInnerColor),s.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),P=this._z2;w!=null?P==null&&(this._z2=s.z2,s.z2+=w):P!=null&&(s.z2=P,this._z2=null);var L=i&&i.useNameLabel;jt(s,g,{labelFetcher:u,labelDataIndex:e,defaultText:A,inheritColor:S,defaultOpacity:_.opacity});function A(O){return L?t.getName(O):Ut(t,O)}this._sizeX=n[0]/2,this._sizeY=n[1]/2;var E=s.ensureState("emphasis");E.style=l,s.ensureState("select").style=v,s.ensureState("blur").style=h;var V=b==null||b===!0?Math.max(1.1,3/this._sizeY):isFinite(b)&&b>0?+b:1;E.scaleX=this._sizeX*V,E.scaleY=this._sizeY*V,this.setSymbolScale(1),yt(this,f,c,m)},a.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},a.prototype.fadeOut=function(t,e,n){var r=this.childAt(0),i=rt(this).dataIndex,s=n&&n.animation;if(this.silent=r.silent=!0,n&&n.fadeLabel){var u=r.getTextContent();u&&Pt(u,{style:{opacity:0}},e,{dataIndex:i,removeOpt:s,cb:function(){r.removeTextContent()}})}else r.removeTextContent();Pt(r,{style:{opacity:0},scaleX:0,scaleY:0},e,{dataIndex:i,cb:t,removeOpt:s})},a.getSymbolSize=function(t,e){return me(t.getItemVisual(e,"symbolSize"))},a.getSymbolZ2=function(t,e){return t.getItemVisual(e,"z2")},a})(st);function Re(o,a){this.parent.drift(o,a)}function ft(o,a,t,e){return a&&!isNaN(a[0])&&!isNaN(a[1])&&!(e.isIgnore&&e.isIgnore(t))&&!(e.clipShape&&!e.clipShape.contain(a[0],a[1]))&&o.getItemVisual(t,"symbol")!=="none"}function Ot(o){return o!=null&&!pe(o)&&(o={isIgnore:o}),o||{}}function zt(o){var a=o.hostModel,t=a.getModel("emphasis");return{emphasisItemStyle:t.getModel("itemStyle").getItemStyle(),blurItemStyle:a.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:a.getModel(["select","itemStyle"]).getItemStyle(),focus:t.get("focus"),blurScope:t.get("blurScope"),emphasisDisabled:t.get("disabled"),hoverScale:t.get("scale"),labelStatesModels:bt(a),cursorStyle:a.get("cursor")}}var Me=(function(){function o(a){this.group=new st,this._SymbolCtor=a||_t}return o.prototype.updateData=function(a,t){this._progressiveEls=null,t=Ot(t);var e=this.group,n=a.hostModel,r=this._data,i=this._SymbolCtor,s=t.disableAnimation,u=zt(a),l={disableAnimation:s},h=t.getSymbolPoint||function(v){return a.getItemLayout(v)};r||e.removeAll(),a.diff(r).add(function(v){var f=h(v);if(ft(a,f,v,t)){var c=new i(a,v,u,l);c.setPosition(f),a.setItemGraphicEl(v,c),e.add(c)}}).update(function(v,f){var c=r.getItemGraphicEl(f),m=h(v);if(!ft(a,m,v,t)){e.remove(c);return}var g=a.getItemVisual(v,"symbol")||"circle",b=c&&c.getSymbolType&&c.getSymbolType();if(!c||b&&b!==g)e.remove(c),c=new i(a,v,u,l),c.setPosition(m);else{c.updateData(a,v,u,l);var p={x:m[0],y:m[1]};s?c.attr(p):it(c,p,n)}e.add(c),a.setItemGraphicEl(v,c)}).remove(function(v){var f=r.getItemGraphicEl(v);f&&f.fadeOut(function(){e.remove(f)},n)}).execute(),this._getSymbolPoint=h,this._data=a},o.prototype.updateLayout=function(){var a=this,t=this._data;t&&t.eachItemGraphicEl(function(e,n){var r=a._getSymbolPoint(n);e.setPosition(r),e.markRedraw()})},o.prototype.incrementalPrepareUpdate=function(a){this._seriesScope=zt(a),this._data=null,this.group.removeAll()},o.prototype.incrementalUpdate=function(a,t,e){this._progressiveEls=[],e=Ot(e);function n(u){u.isGroup||(u.incremental=!0,u.ensureState("emphasis").hoverLayer=!0)}for(var r=a.start;r<a.end;r++){var i=t.getItemLayout(r);if(ft(t,i,r,e)){var s=new this._SymbolCtor(t,r,this._seriesScope);s.traverse(n),s.setPosition(i),this.group.add(s),t.setItemGraphicEl(r,s),this._progressiveEls.push(s)}}},o.prototype.eachRendered=function(a){ge(this._progressiveEls||this.group,a)},o.prototype.remove=function(a){var t=this.group,e=this._data;e&&a?e.eachItemGraphicEl(function(n){n.fadeOut(function(){t.remove(n)},e.hostModel)}):t.removeAll()},o})();function Xt(o,a,t){var e=o.getBaseAxis(),n=o.getOtherAxis(e),r=Fe(n,t),i=e.dim,s=n.dim,u=a.mapDimension(s),l=a.mapDimension(i),h=s==="x"||s==="radius"?1:0,v=St(o.dimensions,function(m){return a.mapDimension(m)}),f=!1,c=a.getCalculationInfo("stackResultDimension");return nt(a,v[0])&&(f=!0,v[0]=c),nt(a,v[1])&&(f=!0,v[1]=c),{dataDimsForPoint:v,valueStart:r,valueAxisDim:s,baseAxisDim:i,stacked:!!f,valueDim:u,baseDim:l,baseDataOffset:h,stackedOverDimension:a.getCalculationInfo("stackedOverDimension")}}function Fe(o,a){var t=0,e=o.scale.getExtent();return a==="start"?t=e[0]:a==="end"?t=e[1]:Wt(a)&&!isNaN(a)?t=a:e[0]>0?t=e[0]:e[1]<0&&(t=e[1]),t}function qt(o,a,t,e){var n=NaN;o.stacked&&(n=t.get(t.getCalculationInfo("stackedOverDimension"),e)),isNaN(n)&&(n=o.valueStart);var r=o.baseDataOffset,i=[];return i[r]=t.get(o.baseDim,e),i[1-r]=n,a.dataToPoint(i)}function He(o,a){var t=[];return a.diff(o).add(function(e){t.push({cmd:"+",idx:e})}).update(function(e,n){t.push({cmd:"=",idx:n,idx1:e})}).remove(function(e){t.push({cmd:"-",idx:e})}).execute(),t}function Be(o,a,t,e,n,r,i,s){for(var u=He(o,a),l=[],h=[],v=[],f=[],c=[],m=[],g=[],b=Xt(n,a,i),p=o.getLayout("points")||[],y=a.getLayout("points")||[],d=0;d<u.length;d++){var I=u[d],D=!0,_=void 0,S=void 0;switch(I.cmd){case"=":_=I.idx*2,S=I.idx1*2;var T=p[_],w=p[_+1],P=y[S],L=y[S+1];(isNaN(T)||isNaN(w))&&(T=P,w=L),l.push(T,w),h.push(P,L),v.push(t[_],t[_+1]),f.push(e[S],e[S+1]),g.push(a.getRawIndex(I.idx1));break;case"+":var A=I.idx,E=b.dataDimsForPoint,V=n.dataToPoint([a.get(E[0],A),a.get(E[1],A)]);S=A*2,l.push(V[0],V[1]),h.push(y[S],y[S+1]);var O=qt(b,n,a,A);v.push(O[0],O[1]),f.push(e[S],e[S+1]),g.push(a.getRawIndex(A));break;case"-":D=!1}D&&(c.push(I),m.push(m.length))}m.sort(function(G,ot){return g[G]-g[ot]});for(var z=l.length,H=J(z),C=J(z),N=J(z),$=J(z),U=[],d=0;d<m.length;d++){var K=m[d],R=d*2,M=K*2;H[R]=l[M],H[R+1]=l[M+1],C[R]=h[M],C[R+1]=h[M+1],N[R]=v[M],N[R+1]=v[M+1],$[R]=f[M],$[R+1]=f[M+1],U[d]=c[K]}return{current:H,next:C,stackedOnCurrent:N,stackedOnNext:$,status:U}}var W=Math.min,Z=Math.max;function q(o,a){return isNaN(o)||isNaN(a)}function dt(o,a,t,e,n,r,i,s,u){for(var l,h,v,f,c,m,g=t,b=0;b<e;b++){var p=a[g*2],y=a[g*2+1];if(g>=n||g<0)break;if(q(p,y)){if(u){g+=r;continue}break}if(g===t)o[r>0?"moveTo":"lineTo"](p,y),v=p,f=y;else{var d=p-l,I=y-h;if(d*d+I*I<.5){g+=r;continue}if(i>0){for(var D=g+r,_=a[D*2],S=a[D*2+1];_===p&&S===y&&b<e;)b++,D+=r,g+=r,_=a[D*2],S=a[D*2+1],p=a[g*2],y=a[g*2+1],d=p-l,I=y-h;var T=b+1;if(u)for(;q(_,S)&&T<e;)T++,D+=r,_=a[D*2],S=a[D*2+1];var w=.5,P=0,L=0,A=void 0,E=void 0;if(T>=e||q(_,S))c=p,m=y;else{P=_-l,L=S-h;var V=p-l,O=_-p,z=y-h,H=S-y,C=void 0,N=void 0;if(s==="x"){C=Math.abs(V),N=Math.abs(O);var $=P>0?1:-1;c=p-$*C*i,m=y,A=p+$*N*i,E=y}else if(s==="y"){C=Math.abs(z),N=Math.abs(H);var U=L>0?1:-1;c=p,m=y-U*C*i,A=p,E=y+U*N*i}else C=Math.sqrt(V*V+z*z),N=Math.sqrt(O*O+H*H),w=N/(N+C),c=p-P*i*(1-w),m=y-L*i*(1-w),A=p+P*i*w,E=y+L*i*w,A=W(A,Z(_,p)),E=W(E,Z(S,y)),A=Z(A,W(_,p)),E=Z(E,W(S,y)),P=A-p,L=E-y,c=p-P*C/N,m=y-L*C/N,c=W(c,Z(l,p)),m=W(m,Z(h,y)),c=Z(c,W(l,p)),m=Z(m,W(h,y)),P=p-c,L=y-m,A=p+P*N/C,E=y+L*N/C}o.bezierCurveTo(v,f,c,m,p,y),v=A,f=E}else o.lineTo(p,y)}l=p,h=y,g+=r}return b}var Jt=(function(){function o(){this.smooth=0,this.smoothConstraint=!0}return o})(),$e=(function(o){Q(a,o);function a(t){var e=o.call(this,t)||this;return e.type="ec-polyline",e}return a.prototype.getDefaultStyle=function(){return{stroke:Bt.color.neutral99,fill:null}},a.prototype.getDefaultShape=function(){return new Jt},a.prototype.buildPath=function(t,e){var n=e.points,r=0,i=n.length/2;if(e.connectNulls){for(;i>0&&q(n[i*2-2],n[i*2-1]);i--);for(;r<i&&q(n[r*2],n[r*2+1]);r++);}for(;r<i;)r+=dt(t,n,r,i,i,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},a.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n=this.path,r=n.data,i=ye.CMD,s,u,l=e==="x",h=[],v=0;v<r.length;){var f=r[v++],c=void 0,m=void 0,g=void 0,b=void 0,p=void 0,y=void 0,d=void 0;switch(f){case i.M:s=r[v++],u=r[v++];break;case i.L:if(c=r[v++],m=r[v++],d=l?(t-s)/(c-s):(t-u)/(m-u),d<=1&&d>=0){var I=l?(m-u)*d+u:(c-s)*d+s;return l?[t,I]:[I,t]}s=c,u=m;break;case i.C:c=r[v++],m=r[v++],g=r[v++],b=r[v++],p=r[v++],y=r[v++];var D=l?kt(s,c,g,p,t,h):kt(u,m,b,y,t,h);if(D>0)for(var _=0;_<D;_++){var S=h[_];if(S<=1&&S>=0){var I=l?At(u,m,b,y,S):At(s,c,g,p,S);return l?[t,I]:[I,t]}}s=p,u=y;break}}},a})(Zt),je=(function(o){Q(a,o);function a(){return o!==null&&o.apply(this,arguments)||this}return a})(Jt),Ue=(function(o){Q(a,o);function a(t){var e=o.call(this,t)||this;return e.type="ec-polygon",e}return a.prototype.getDefaultShape=function(){return new je},a.prototype.buildPath=function(t,e){var n=e.points,r=e.stackedOnPoints,i=0,s=n.length/2,u=e.smoothMonotone;if(e.connectNulls){for(;s>0&&q(n[s*2-2],n[s*2-1]);s--);for(;i<s&&q(n[i*2],n[i*2+1]);i++);}for(;i<s;){var l=dt(t,n,i,s,s,1,e.smooth,u,e.connectNulls);dt(t,r,i+l-1,l,s,-1,e.stackedOnSmooth,u,e.connectNulls),i+=l+1,t.closePath()}},a})(Zt);function Vt(o,a){if(o.length===a.length){for(var t=0;t<o.length;t++)if(o[t]!==a[t])return;return!0}}function Gt(o){for(var a=1/0,t=1/0,e=-1/0,n=-1/0,r=0;r<o.length;){var i=o[r++],s=o[r++];isNaN(i)||(a=Math.min(i,a),e=Math.max(i,e)),isNaN(s)||(t=Math.min(s,t),n=Math.max(s,n))}return[[a,t],[e,n]]}function Rt(o,a){var t=Gt(o),e=t[0],n=t[1],r=Gt(a),i=r[0],s=r[1];return Math.max(Math.abs(e[0]-i[0]),Math.abs(e[1]-i[1]),Math.abs(n[0]-s[0]),Math.abs(n[1]-s[1]))}function Mt(o){return Wt(o)?o:o?.5:0}function We(o,a,t){if(!t.valueDim)return[];for(var e=a.count(),n=J(e*2),r=0;r<e;r++){var i=qt(t,o,a,r);n[r*2]=i[0],n[r*2+1]=i[1]}return n}function x(o,a,t,e,n){var r=t.getBaseAxis(),i=r.dim==="x"||r.dim==="radius"?0:1,s=[],u=0,l=[],h=[],v=[],f=[];if(n){for(u=0;u<o.length;u+=2){var c=a||o;!isNaN(c[u])&&!isNaN(c[u+1])&&f.push(o[u],o[u+1])}o=f}for(u=0;u<o.length-2;u+=2)switch(v[0]=o[u+2],v[1]=o[u+3],h[0]=o[u],h[1]=o[u+1],s.push(h[0],h[1]),e){case"end":l[i]=v[i],l[1-i]=h[1-i],s.push(l[0],l[1]);break;case"middle":var m=(h[i]+v[i])/2,g=[];l[i]=g[i]=m,l[1-i]=h[1-i],g[1-i]=v[1-i],s.push(l[0],l[1]),s.push(g[0],g[1]);break;default:l[i]=h[i],l[1-i]=v[1-i],s.push(l[0],l[1])}return s.push(o[u++],o[u++]),s}function Ze(o,a){var t=[],e=o.length,n,r;function i(h,v,f){var c=h.coord,m=(f-c)/(v.coord-c),g=Ae(m,[h.color,v.color]);return{coord:f,color:g}}for(var s=0;s<e;s++){var u=o[s],l=u.coord;if(l<0)n=u;else if(l>a){r?t.push(i(r,u,a)):n&&t.push(i(n,u,0),i(n,u,a));break}else n&&(t.push(i(n,u,0)),n=null),t.push(u),r=u}return t}function xe(o,a,t){var e=o.getVisual("visualMeta");if(!(!e||!e.length||!o.count())&&a.type==="cartesian2d"){for(var n,r,i=e.length-1;i>=0;i--){var s=o.getDimensionInfo(e[i].dimension);if(n=s&&s.coordDim,n==="x"||n==="y"){r=e[i];break}}if(r){var u=a.getAxis(n),l=St(r.stops,function(d){return{coord:u.toGlobalCoord(u.dataToCoord(d.value)),color:d.color}}),h=l.length,v=r.outerColors.slice();h&&l[0].coord>l[h-1].coord&&(l.reverse(),v.reverse());var f=Ze(l,n==="x"?t.getWidth():t.getHeight()),c=f.length;if(!c&&h)return l[0].coord<0?v[1]?v[1]:l[h-1].color:v[0]?v[0]:l[0].color;var m=10,g=f[0].coord-m,b=f[c-1].coord+m,p=b-g;if(p<.001)return"transparent";xt(f,function(d){d.offset=(d.coord-g)/p}),f.push({offset:c?f[c-1].offset:.5,color:v[1]||"transparent"}),f.unshift({offset:c?f[0].offset:.5,color:v[0]||"transparent"});var y=new De(0,0,0,0,f,!0);return y[n]=g,y[n+"2"]=b,y}}}function Xe(o,a,t){var e=o.get("showAllSymbol"),n=e==="auto";if(!(e&&!n)){var r=t.getAxesByScale("ordinal")[0];if(r&&!(n&&qe(r,a))){var i=a.mapDimension(r.dim),s={};return xt(r.getViewLabels(),function(u){var l=r.scale.getRawOrdinalNumber(u.tickValue);s[l]=1}),function(u){return!s.hasOwnProperty(a.get(i,u))}}}}function qe(o,a){var t=o.getExtent(),e=Math.abs(t[1]-t[0])/o.scale.count();isNaN(e)&&(e=0);for(var n=a.count(),r=Math.max(1,Math.round(n/5)),i=0;i<n;i+=r)if(_t.getSymbolSize(a,i)[o.isHorizontal()?1:0]*1.5>e)return!1;return!0}function Je(o,a){return isNaN(o)||isNaN(a)}function Qe(o){for(var a=o.length/2;a>0&&Je(o[a*2-2],o[a*2-1]);a--);return a-1}function Ft(o,a){return[o[a*2],o[a*2+1]]}function Ke(o,a,t){for(var e=o.length/2,n=t==="x"?0:1,r,i,s=0,u=-1,l=0;l<e;l++)if(i=o[l*2+n],!(isNaN(i)||isNaN(o[l*2+1-n]))){if(l===0){r=i;continue}if(r<=a&&i>=a||r>=a&&i<=a){u=l;break}s=l,r=i}return{range:[s,u],t:(a-r)/(i-r)}}function Qt(o){if(o.get(["endLabel","show"]))return!0;for(var a=0;a<Nt.length;a++)if(o.get([Nt[a],"endLabel","show"]))return!0;return!1}function mt(o,a,t,e){if(Ie(a,"cartesian2d")){var n=e.getModel("endLabel"),r=n.get("valueAnimation"),i=e.getData(),s={lastFrameIndex:0},u=Qt(e)?function(c,m){o._endLabelOnDuring(c,m,i,s,r,n,a)}:null,l=a.getBaseAxis().isHorizontal(),h=Pe(a,t,e,function(){var c=o._endLabel;c&&t&&s.originalX!=null&&c.attr({x:s.originalX,y:s.originalY})},u);if(!e.get("clip",!0)){var v=h.shape,f=Math.max(v.width,v.height);l?(v.y-=f,v.height+=f*2):(v.x-=f,v.width+=f*2)}return u&&u(1,h),h}else return ke(a,t,e)}function Ye(o,a){var t=a.getBaseAxis(),e=t.isHorizontal(),n=t.inverse,r=e?n?"right":"left":"center",i=e?"middle":n?"top":"bottom";return{normal:{align:o.get("align")||r,verticalAlign:o.get("verticalAlign")||i}}}var ta=(function(o){Q(a,o);function a(){return o!==null&&o.apply(this,arguments)||this}return a.prototype.init=function(){var t=new st,e=new Me;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t,this._changePolyState=de(this._changePolyState,this)},a.prototype.render=function(t,e,n){var r=t.coordinateSystem,i=this.group,s=t.getData(),u=t.getModel("lineStyle"),l=t.getModel("areaStyle"),h=s.getLayout("points")||[],v=r.type==="polar",f=this._coordSys,c=this._symbolDraw,m=this._polyline,g=this._polygon,b=this._lineGroup,p=!e.ssr&&t.get("animation"),y=!l.isEmpty(),d=l.get("origin"),I=Xt(r,s,d),D=y&&We(r,s,I),_=t.get("showSymbol"),S=t.get("connectNulls"),T=_&&!v&&Xe(t,s,r),w=this._data;w&&w.eachItemGraphicEl(function(G,ot){G.__temp&&(i.remove(G),w.setItemGraphicEl(ot,null))}),_||c.remove(),i.add(b);var P=v?!1:t.get("step"),L;r&&r.getArea&&t.get("clip",!0)&&(L=r.getArea(),L.width!=null?(L.x-=.1,L.y-=.1,L.width+=.2,L.height+=.2):L.r0&&(L.r0-=.5,L.r+=.5)),this._clipShapeForSymbol=L;var A=xe(s,r,n)||s.getVisual("style")[s.getVisual("drawType")];if(!(m&&f.type===r.type&&P===this._step))_&&c.updateData(s,{isIgnore:T,clipShape:L,disableAnimation:!0,getSymbolPoint:function(G){return[h[G*2],h[G*2+1]]}}),p&&this._initSymbolLabelAnimation(s,r,L),P&&(D&&(D=x(D,h,r,P,S)),h=x(h,null,r,P,S)),m=this._newPolyline(h),y?g=this._newPolygon(h,D):g&&(b.remove(g),g=this._polygon=null),v||this._initOrUpdateEndLabel(t,r,wt(A)),b.setClipPath(mt(this,r,!0,t));else{y&&!g?g=this._newPolygon(h,D):g&&!y&&(b.remove(g),g=this._polygon=null),v||this._initOrUpdateEndLabel(t,r,wt(A));var E=b.getClipPath();if(E){var V=mt(this,r,!1,t);$t(E,{shape:V.shape},t)}else b.setClipPath(mt(this,r,!0,t));_&&c.updateData(s,{isIgnore:T,clipShape:L,disableAnimation:!0,getSymbolPoint:function(G){return[h[G*2],h[G*2+1]]}}),(!Vt(this._stackedOnPoints,D)||!Vt(this._points,h))&&(p?this._doUpdateAnimation(s,D,r,n,P,d,S):(P&&(D&&(D=x(D,h,r,P,S)),h=x(h,null,r,P,S)),m.setShape({points:h}),g&&g.setShape({points:h,stackedOnPoints:D})))}var O=t.getModel("emphasis"),z=O.get("focus"),H=O.get("blurScope"),C=O.get("disabled");if(m.useStyle(Lt(u.getLineStyle(),{fill:"none",stroke:A,lineJoin:"bevel"})),Tt(m,t,"lineStyle"),m.style.lineWidth>0&&t.get(["emphasis","lineStyle","width"])==="bolder"){var N=m.getState("emphasis").style;N.lineWidth=+m.style.lineWidth+1}rt(m).seriesIndex=t.seriesIndex,yt(m,z,H,C);var $=Mt(t.get("smooth")),U=t.get("smoothMonotone");if(m.setShape({smooth:$,smoothMonotone:U,connectNulls:S}),g){var K=s.getCalculationInfo("stackedOnSeries"),R=0;g.useStyle(Lt(l.getAreaStyle(),{fill:A,opacity:.7,lineJoin:"bevel",decal:s.getVisual("style").decal})),K&&(R=Mt(K.get("smooth"))),g.setShape({smooth:$,stackedOnSmooth:R,smoothMonotone:U,connectNulls:S}),Tt(g,t,"areaStyle"),rt(g).seriesIndex=t.seriesIndex,yt(g,z,H,C)}var M=this._changePolyState;s.eachItemGraphicEl(function(G){G&&(G.onHoverStateChange=M)}),this._polyline.onHoverStateChange=M,this._data=s,this._coordSys=r,this._stackedOnPoints=D,this._points=h,this._step=P,this._valueOrigin=d,t.get("triggerLineEvent")&&(this.packEventData(t,m),g&&this.packEventData(t,g))},a.prototype.packEventData=function(t,e){rt(e).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},a.prototype.highlight=function(t,e,n,r){var i=t.getData(),s=Et(i,r);if(this._changePolyState("emphasis"),!(s instanceof Array)&&s!=null&&s>=0){var u=i.getLayout("points"),l=i.getItemGraphicEl(s);if(!l){var h=u[s*2],v=u[s*2+1];if(isNaN(h)||isNaN(v)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(h,v))return;var f=t.get("zlevel")||0,c=t.get("z")||0;l=new _t(i,s),l.x=h,l.y=v,l.setZ(f,c);var m=l.getSymbolPath().getTextContent();m&&(m.zlevel=f,m.z=c,m.z2=this._polyline.z2+1),l.__temp=!0,i.setItemGraphicEl(s,l),l.stopSymbolAnimation(!0),this.group.add(l)}l.highlight()}else ct.prototype.highlight.call(this,t,e,n,r)},a.prototype.downplay=function(t,e,n,r){var i=t.getData(),s=Et(i,r);if(this._changePolyState("normal"),s!=null&&s>=0){var u=i.getItemGraphicEl(s);u&&(u.__temp?(i.setItemGraphicEl(s,null),this.group.remove(u)):u.downplay())}else ct.prototype.downplay.call(this,t,e,n,r)},a.prototype._changePolyState=function(t){var e=this._polygon;Ct(this._polyline,t),e&&Ct(e,t)},a.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new $e({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},a.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new Ue({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},a.prototype._initSymbolLabelAnimation=function(t,e,n){var r,i,s=e.getBaseAxis(),u=s.inverse;e.type==="cartesian2d"?(r=s.isHorizontal(),i=!1):e.type==="polar"&&(r=s.dim==="angle",i=!0);var l=t.hostModel,h=l.get("animationDuration");ht(h)&&(h=h(null));var v=l.get("animationDelay")||0,f=ht(v)?v(null):v;t.eachItemGraphicEl(function(c,m){var g=c;if(g){var b=[c.x,c.y],p=void 0,y=void 0,d=void 0;if(n)if(i){var I=n,D=e.pointToCoord(b);r?(p=I.startAngle,y=I.endAngle,d=-D[1]/180*Math.PI):(p=I.r0,y=I.r,d=D[0])}else{var _=n;r?(p=_.x,y=_.x+_.width,d=c.x):(p=_.y+_.height,y=_.y,d=c.y)}var S=y===p?0:(d-p)/(y-p);u&&(S=1-S);var T=ht(v)?v(m):h*S+f,w=g.getSymbolPath(),P=w.getTextContent();g.attr({scaleX:0,scaleY:0}),g.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:T}),P&&P.animateFrom({style:{opacity:0}},{duration:300,delay:T}),w.disableLabelAnimation=!0}})},a.prototype._initOrUpdateEndLabel=function(t,e,n){var r=t.getModel("endLabel");if(Qt(t)){var i=t.getData(),s=this._polyline,u=i.getLayout("points");if(!u){s.removeTextContent(),this._endLabel=null;return}var l=this._endLabel;l||(l=this._endLabel=new be({z2:200}),l.ignoreClip=!0,s.setTextContent(this._endLabel),s.disableLabelAnimation=!0);var h=Qe(u);h>=0&&(jt(s,bt(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:h,defaultText:function(v,f,c){return c!=null?we(i,c):Ut(i,v)},enableTextSetter:!0},Ye(r,e)),s.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},a.prototype._endLabelOnDuring=function(t,e,n,r,i,s,u){var l=this._endLabel,h=this._polyline;if(l){t<1&&r.originalX==null&&(r.originalX=l.x,r.originalY=l.y);var v=n.getLayout("points"),f=n.hostModel,c=f.get("connectNulls"),m=s.get("precision"),g=s.get("distance")||0,b=u.getBaseAxis(),p=b.isHorizontal(),y=b.inverse,d=e.shape,I=y?p?d.x:d.y+d.height:p?d.x+d.width:d.y,D=(p?g:0)*(y?-1:1),_=(p?0:-g)*(y?-1:1),S=p?"x":"y",T=Ke(v,I,S),w=T.range,P=w[1]-w[0],L=void 0;if(P>=1){if(P>1&&!c){var A=Ft(v,w[0]);l.attr({x:A[0]+D,y:A[1]+_}),i&&(L=f.getRawValue(w[0]))}else{var A=h.getPointOn(I,S);A&&l.attr({x:A[0]+D,y:A[1]+_});var E=f.getRawValue(w[0]),V=f.getRawValue(w[1]);i&&(L=Se(n,m,E,V,T.t))}r.lastFrameIndex=w[0]}else{var O=t===1||r.lastFrameIndex>0?w[0]:0,A=Ft(v,O);i&&(L=f.getRawValue(O)),l.attr({x:A[0]+D,y:A[1]+_})}if(i){var z=_e(l);typeof z.setLabelText=="function"&&z.setLabelText(L)}}},a.prototype._doUpdateAnimation=function(t,e,n,r,i,s,u){var l=this._polyline,h=this._polygon,v=t.hostModel,f=Be(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin),c=f.current,m=f.stackedOnCurrent,g=f.next,b=f.stackedOnNext;if(i&&(m=x(f.stackedOnCurrent,f.current,n,i,u),c=x(f.current,null,n,i,u),b=x(f.stackedOnNext,f.next,n,i,u),g=x(f.next,null,n,i,u)),Rt(c,g)>3e3||h&&Rt(m,b)>3e3){l.stopAnimation(),l.setShape({points:g}),h&&(h.stopAnimation(),h.setShape({points:g,stackedOnPoints:b}));return}l.shape.__points=f.current,l.shape.points=c;var p={shape:{points:g}};f.current!==c&&(p.shape.__points=f.next),l.stopAnimation(),it(l,p,v),h&&(h.setShape({points:c,stackedOnPoints:m}),h.stopAnimation(),it(h,{shape:{stackedOnPoints:b}},v),l.shape.points!==h.shape.points&&(h.shape.points=l.shape.points));for(var y=[],d=f.status,I=0;I<d.length;I++){var D=d[I].cmd;if(D==="="){var _=t.getItemGraphicEl(d[I].idx1);_&&y.push({el:_,ptIdx:I})}}l.animators&&l.animators.length&&l.animators[0].during(function(){h&&h.dirtyShape();for(var S=l.shape.__points,T=0;T<y.length;T++){var w=y[T].el,P=y[T].ptIdx*2;w.x=S[P],w.y=S[P+1],w.markRedraw()}})},a.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl(function(r,i){r.__temp&&(e.remove(r),n.setItemGraphicEl(i,null))}),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},a.type="line",a})(ct);function ea(o,a){return{seriesType:o,plan:Le(),reset:function(t){var e=t.getData(),n=t.coordinateSystem;if(t.pipelineContext,!!n){var r=St(n.dimensions,function(v){return e.mapDimension(v)}).slice(0,2),i=r.length,s=e.getCalculationInfo("stackResultDimension");nt(e,r[0])&&(r[0]=s),nt(e,r[1])&&(r[1]=s);var u=e.getStore(),l=e.getDimensionIndex(r[0]),h=e.getDimensionIndex(r[1]);return i&&{progress:function(v,f){for(var c=v.end-v.start,m=J(c*i),g=[],b=[],p=v.start,y=0;p<v.end;p++){var d=void 0;if(i===1){var I=u.get(l,p);d=n.dataToPoint(I,null,b)}else g[0]=u.get(l,p),g[1]=u.get(h,p),d=n.dataToPoint(g,null,b);m[y++]=d[0],m[y++]=d[1]}f.setLayout("points",m)}}}}}}function aa(o){o.registerChartView(ta),o.registerSeriesModel(Ge),o.registerLayout(ea("line")),o.registerVisual({seriesType:"line",reset:function(a){var t=a.getData(),e=a.getModel("lineStyle").getLineStyle();e&&!e.stroke&&(e.stroke=t.getVisual("style").fill),t.setVisual("legendLineStyle",e)}}),o.registerProcessor(o.PRIORITY.PROCESSOR.STATISTIC,Te("line"))}const ra=Ht({__name:"ActivityChart",props:{data:{}},setup(o){Ee([aa,Ne,Oe,ze]);const a=o,t=Yt(()=>({tooltip:{trigger:"axis"},grid:{left:40,right:20,top:10,bottom:30},xAxis:{type:"category",data:a.data.map(e=>e.date),axisLine:{lineStyle:{color:"#334"}},axisLabel:{color:"#888",fontSize:10}},yAxis:{type:"value",axisLine:{show:!1},splitLine:{lineStyle:{color:"rgba(13,242,242,0.05)"}},axisLabel:{color:"#888"}},series:[{type:"line",data:a.data.map(e=>e.count),smooth:!0,lineStyle:{color:"#0df2f2",width:3},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(13,242,242,0.3)"},{offset:1,color:"rgba(13,242,242,0)"}]}},itemStyle:{color:"#0df2f2"}}]}));return(e,n)=>(B(),gt(F(Ce),{option:t.value,autoresize:"",style:{height:"220px"}},null,8,["option"]))}}),ia={class:"p-8"},na={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"},sa={class:"grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8"},oa={class:"lg:col-span-2 bg-bg-dark/40 rounded-xl cyber-border p-6"},la={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},ua={class:"space-y-4"},va={class:"grid grid-cols-1 lg:grid-cols-3 gap-6"},ca={class:"lg:col-span-2 bg-bg-dark/40 rounded-xl cyber-border overflow-hidden"},ha={class:"p-6 border-b border-primary/10 flex justify-between items-center"},fa={class:"divide-y divide-primary/10"},ma={class:"flex items-center gap-4"},ga={class:"text-sm font-semibold text-white"},pa={class:"flex gap-2 mt-1"},ya={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},da={class:"space-y-6"},ba={class:"flex justify-between items-center mb-2"},Sa={class:"text-sm font-medium text-slate-300"},_a={class:"text-sm text-primary font-bold"},Da={class:"w-full bg-slate-800 h-2 rounded-full overflow-hidden"},Ia={key:1,class:"text-center py-20 text-slate-400"},Ta=Ht({__name:"DashboardPage",setup(o){const a=Ve();return te(()=>a.fetchDashboard()),(t,e)=>{const n=ae("router-link");return B(),X("div",ia,[e[8]||(e[8]=k("header",{class:"flex justify-between items-center mb-8"},[k("div",null,[k("h2",{class:"text-2xl font-bold text-white tracking-tight"},"System Overview"),k("p",{class:"text-slate-400 text-sm"},"Your context memory is synchronized.")])],-1)),F(a).stats?(B(),X(tt,{key:0},[k("div",na,[j(at,{label:"Total Decisions",value:F(a).stats.totalDecisions,icon:"analytics"},null,8,["value"]),j(at,{label:"Active",value:F(a).stats.activeDecisions,icon:"check_circle"},null,8,["value"]),j(at,{label:"Sessions",value:F(a).stats.totalSessions,icon:"terminal"},null,8,["value"]),j(at,{label:"Last Activity",value:F(a).stats.lastActivity?"Recent":"Never",icon:"schedule"},null,8,["value"])]),k("div",sa,[k("div",oa,[e[0]||(e[0]=k("div",{class:"flex justify-between items-center mb-4"},[k("h3",{class:"font-bold text-lg text-white"},"Activity Timeline"),k("span",{class:"text-xs text-slate-500"},"Last 7 Days")],-1)),j(ra,{data:F(a).timeline},null,8,["data"])]),k("div",la,[e[3]||(e[3]=k("h3",{class:"font-bold text-lg text-white mb-6"},"Quick Actions",-1)),k("div",ua,[j(n,{to:"/import-export",class:"w-full bg-primary hover:bg-primary/90 text-bg-dark font-bold py-3 px-4 rounded-lg flex items-center justify-center gap-2 transition-colors"},{default:et(()=>[...e[1]||(e[1]=[k("span",{class:"material-symbols-outlined"},"download",-1),ut(" Export Context ",-1)])]),_:1}),j(n,{to:"/import-export",class:"w-full bg-primary/10 hover:bg-primary/20 text-primary border border-primary/30 font-bold py-3 px-4 rounded-lg flex items-center justify-center gap-2 transition-colors"},{default:et(()=>[...e[2]||(e[2]=[k("span",{class:"material-symbols-outlined"},"upload",-1),ut(" Import Memory ",-1)])]),_:1})])])]),k("div",va,[k("div",ca,[k("div",ha,[e[5]||(e[5]=k("h3",{class:"font-bold text-lg text-white"},"Recent Decisions",-1)),j(n,{to:"/decisions",class:"text-xs text-primary hover:underline font-medium"},{default:et(()=>[...e[4]||(e[4]=[ut("View all",-1)])]),_:1})]),k("div",fa,[(B(!0),X(tt,null,lt(F(a).stats.recentDecisions,r=>(B(),gt(n,{key:r.id,to:`/decisions/${r.id}`,class:"p-4 hover:bg-primary/5 transition-colors flex items-center justify-between"},{default:et(()=>[k("div",ma,[e[6]||(e[6]=k("div",{class:"p-2 rounded bg-bg-dark/60 text-primary cyber-border"},[k("span",{class:"material-symbols-outlined"},"psychology")],-1)),k("div",null,[k("h4",ga,vt(r.title),1),k("div",pa,[(B(!0),X(tt,null,lt(r.tags.slice(0,2),i=>(B(),gt(ie,{key:i,tag:i},null,8,["tag"]))),128))])])]),j(ne,{status:r.status},null,8,["status"])]),_:2},1032,["to"]))),128))])]),k("div",ya,[e[7]||(e[7]=k("h3",{class:"font-bold text-lg text-white mb-6"},"Top Context Tags",-1)),k("div",da,[(B(!0),X(tt,null,lt(F(a).stats.topTags,r=>(B(),X("div",{key:r.tag},[k("div",ba,[k("span",Sa,"#"+vt(r.tag),1),k("span",_a,vt(r.count),1)]),k("div",Da,[k("div",{class:"bg-primary h-full rounded-full shadow-[0_0_8px_rgba(13,242,242,0.6)]",style:re({width:`${r.count/(F(a).stats.topTags[0]?.count||1)*100}%`})},null,4)])]))),128))])])])],64)):F(a).loading?(B(),X("div",Ia,"Loading...")):ee("",!0)])}}});export{Ta as default};
@@ -1 +1 @@
1
- import{a as f,e as k,f as o,g as e,h as c,w as u,t as l,c as _,j as d,F as x,i as p,u as h,b,k as w,x as D,o as a,l as m}from"./index-CB5v6K3L.js";import{u as S}from"./decisions-D4RIsPGu.js";import{a as C,_ as j}from"./TagPill.vue_vue_type_script_setup_true_lang-D3QpKM6-.js";import"./useApi-goimj9yG.js";const A={key:0,class:"p-8"},N={class:"flex items-center gap-2 text-sm mb-6"},B={class:"text-primary font-medium"},R={class:"mb-8"},V={class:"flex items-center gap-4 mb-4"},$={class:"text-xs text-slate-500"},q={class:"text-3xl font-extrabold text-white uppercase tracking-tight mb-3"},F={class:"text-slate-400"},L={class:"flex gap-2 mt-4"},M={class:"grid grid-cols-1 lg:grid-cols-3 gap-8"},E={class:"lg:col-span-2 space-y-8"},I={key:0,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},P={class:"text-slate-300 text-sm leading-relaxed"},T={class:"bg-bg-dark/40 rounded-xl neon-border p-6"},z={class:"text-white text-base font-medium leading-relaxed"},G={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},H={class:"text-slate-300 text-sm leading-relaxed"},J={key:1,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},K={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},O={class:"text-slate-300 text-sm"},Q={class:"space-y-6"},U={key:0,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},W={class:"text-slate-300 text-sm leading-relaxed"},X={key:1,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},Y={class:"space-y-2"},Z={class:"font-mono text-xs truncate"},ee={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},te={class:"space-y-3 text-sm"},se={class:"flex justify-between"},ae={class:"text-slate-300 font-mono"},oe={class:"flex justify-between"},le={class:"text-slate-300"},de={key:0,class:"flex justify-between"},ie={class:"text-slate-300"},re={key:1,class:"flex justify-between"},ne={class:"text-primary font-mono text-xs"},ce={key:2,class:"flex justify-between"},ue={key:1,class:"p-8 text-center py-20 text-slate-400"},xe={key:2,class:"p-8 text-center py-20"},ye=f({__name:"DecisionDetailPage",setup(pe){const v=D(),r=S(),g=b(()=>Number(v.params.id));k(()=>r.fetchDecisionDetail(g.value));const s=b(()=>r.detail);return(me,t)=>{const n=w("router-link");return s.value?(a(),o("div",A,[e("nav",N,[c(n,{to:"/decisions",class:"text-slate-400 hover:text-primary transition-colors"},{default:u(()=>[...t[0]||(t[0]=[m("Decisions",-1)])]),_:1}),t[1]||(t[1]=e("span",{class:"text-slate-600"},">",-1)),e("span",B,"ADR-"+l(String(s.value.id).padStart(4,"0")),1)]),e("div",R,[e("div",V,[c(C,{status:s.value.status},null,8,["status"]),e("span",$,l(s.value.created_at),1),s.value.session_id?(a(),_(n,{key:0,to:`/sessions/${s.value.session_id}`,class:"text-xs text-primary hover:underline"},{default:u(()=>[...t[2]||(t[2]=[m(" Session Link ",-1)])]),_:1},8,["to"])):d("",!0)]),e("h1",q,l(s.value.title),1),e("p",F,l(s.value.decision),1),e("div",L,[(a(!0),o(x,null,p(s.value.tags,i=>(a(),_(j,{key:i,tag:i},null,8,["tag"]))),128))])]),e("div",M,[e("div",E,[s.value.context?(a(),o("div",I,[t[3]||(t[3]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Context",-1)),e("p",P,l(s.value.context),1)])):d("",!0),e("div",T,[t[4]||(t[4]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Decision",-1)),e("p",z,l(s.value.decision),1)]),e("div",G,[t[5]||(t[5]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Rationale",-1)),e("p",H,l(s.value.rationale),1)]),s.value.alternatives&&s.value.alternatives.length>0?(a(),o("div",J,[t[6]||(t[6]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Alternatives Considered",-1)),e("div",K,[(a(!0),o(x,null,p(s.value.alternatives,(i,y)=>(a(),o("div",{key:y,class:"bg-bg-dark/60 rounded-lg p-4 cyber-border"},[e("p",O,l(i),1)]))),128))])])):d("",!0)]),e("div",Q,[s.value.consequences?(a(),o("div",U,[t[7]||(t[7]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Consequences",-1)),e("p",W,l(s.value.consequences),1)])):d("",!0),s.value.files&&s.value.files.length>0?(a(),o("div",X,[t[9]||(t[9]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Affected Files",-1)),e("div",Y,[(a(!0),o(x,null,p(s.value.files,i=>(a(),o("div",{key:i,class:"flex items-center gap-2 text-sm text-slate-300 bg-bg-dark/60 rounded-lg px-3 py-2 cyber-border"},[t[8]||(t[8]=e("span",{class:"material-symbols-outlined text-primary text-base"},"description",-1)),e("span",Z,l(i),1)]))),128))])])):d("",!0),e("div",ee,[t[15]||(t[15]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Metadata",-1)),e("dl",te,[e("div",se,[t[10]||(t[10]=e("dt",{class:"text-slate-500"},"ID",-1)),e("dd",ae,l(s.value.id),1)]),e("div",oe,[t[11]||(t[11]=e("dt",{class:"text-slate-500"},"Created",-1)),e("dd",le,l(s.value.created_at),1)]),s.value.created_by?(a(),o("div",de,[t[12]||(t[12]=e("dt",{class:"text-slate-500"},"Author",-1)),e("dd",ie,l(s.value.created_by),1)])):d("",!0),s.value.session_id?(a(),o("div",re,[t[13]||(t[13]=e("dt",{class:"text-slate-500"},"Session",-1)),e("dd",ne,l(s.value.session_id.slice(0,12)),1)])):d("",!0),s.value.superseded_by?(a(),o("div",ce,[t[14]||(t[14]=e("dt",{class:"text-slate-500"},"Superseded by",-1)),e("dd",null,[c(n,{to:`/decisions/${s.value.superseded_by}`,class:"text-primary hover:underline"},{default:u(()=>[m("ADR-"+l(String(s.value.superseded_by).padStart(4,"0")),1)]),_:1},8,["to"])])])):d("",!0)])])])])])):h(r).loading?(a(),o("div",ue,"Loading...")):(a(),o("div",xe,[...t[16]||(t[16]=[e("span",{class:"material-symbols-outlined text-5xl text-primary/30 mb-4"},"error",-1),e("h3",{class:"text-lg text-slate-300"},"Decision not found",-1)])]))}}});export{ye as default};
1
+ import{a as f,e as k,f as o,g as e,h as c,w as u,t as l,c as _,j as d,F as x,i as p,u as h,b,k as w,x as D,o as a,l as m}from"./index-Bl3DbLj3.js";import{u as S}from"./decisions-zp0xvZqp.js";import{a as C,_ as j}from"./TagPill.vue_vue_type_script_setup_true_lang-CA2dOM-H.js";import"./useApi-DkK919W_.js";const A={key:0,class:"p-8"},N={class:"flex items-center gap-2 text-sm mb-6"},B={class:"text-primary font-medium"},R={class:"mb-8"},V={class:"flex items-center gap-4 mb-4"},$={class:"text-xs text-slate-500"},q={class:"text-3xl font-extrabold text-white uppercase tracking-tight mb-3"},F={class:"text-slate-400"},L={class:"flex gap-2 mt-4"},M={class:"grid grid-cols-1 lg:grid-cols-3 gap-8"},E={class:"lg:col-span-2 space-y-8"},I={key:0,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},P={class:"text-slate-300 text-sm leading-relaxed"},T={class:"bg-bg-dark/40 rounded-xl neon-border p-6"},z={class:"text-white text-base font-medium leading-relaxed"},G={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},H={class:"text-slate-300 text-sm leading-relaxed"},J={key:1,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},K={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},O={class:"text-slate-300 text-sm"},Q={class:"space-y-6"},U={key:0,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},W={class:"text-slate-300 text-sm leading-relaxed"},X={key:1,class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},Y={class:"space-y-2"},Z={class:"font-mono text-xs truncate"},ee={class:"bg-bg-dark/40 rounded-xl cyber-border p-6"},te={class:"space-y-3 text-sm"},se={class:"flex justify-between"},ae={class:"text-slate-300 font-mono"},oe={class:"flex justify-between"},le={class:"text-slate-300"},de={key:0,class:"flex justify-between"},ie={class:"text-slate-300"},re={key:1,class:"flex justify-between"},ne={class:"text-primary font-mono text-xs"},ce={key:2,class:"flex justify-between"},ue={key:1,class:"p-8 text-center py-20 text-slate-400"},xe={key:2,class:"p-8 text-center py-20"},ye=f({__name:"DecisionDetailPage",setup(pe){const v=D(),r=S(),g=b(()=>Number(v.params.id));k(()=>r.fetchDecisionDetail(g.value));const s=b(()=>r.detail);return(me,t)=>{const n=w("router-link");return s.value?(a(),o("div",A,[e("nav",N,[c(n,{to:"/decisions",class:"text-slate-400 hover:text-primary transition-colors"},{default:u(()=>[...t[0]||(t[0]=[m("Decisions",-1)])]),_:1}),t[1]||(t[1]=e("span",{class:"text-slate-600"},">",-1)),e("span",B,"ADR-"+l(String(s.value.id).padStart(4,"0")),1)]),e("div",R,[e("div",V,[c(C,{status:s.value.status},null,8,["status"]),e("span",$,l(s.value.created_at),1),s.value.session_id?(a(),_(n,{key:0,to:`/sessions/${s.value.session_id}`,class:"text-xs text-primary hover:underline"},{default:u(()=>[...t[2]||(t[2]=[m(" Session Link ",-1)])]),_:1},8,["to"])):d("",!0)]),e("h1",q,l(s.value.title),1),e("p",F,l(s.value.decision),1),e("div",L,[(a(!0),o(x,null,p(s.value.tags,i=>(a(),_(j,{key:i,tag:i},null,8,["tag"]))),128))])]),e("div",M,[e("div",E,[s.value.context?(a(),o("div",I,[t[3]||(t[3]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Context",-1)),e("p",P,l(s.value.context),1)])):d("",!0),e("div",T,[t[4]||(t[4]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Decision",-1)),e("p",z,l(s.value.decision),1)]),e("div",G,[t[5]||(t[5]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Rationale",-1)),e("p",H,l(s.value.rationale),1)]),s.value.alternatives&&s.value.alternatives.length>0?(a(),o("div",J,[t[6]||(t[6]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Alternatives Considered",-1)),e("div",K,[(a(!0),o(x,null,p(s.value.alternatives,(i,y)=>(a(),o("div",{key:y,class:"bg-bg-dark/60 rounded-lg p-4 cyber-border"},[e("p",O,l(i),1)]))),128))])])):d("",!0)]),e("div",Q,[s.value.consequences?(a(),o("div",U,[t[7]||(t[7]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Consequences",-1)),e("p",W,l(s.value.consequences),1)])):d("",!0),s.value.files&&s.value.files.length>0?(a(),o("div",X,[t[9]||(t[9]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Affected Files",-1)),e("div",Y,[(a(!0),o(x,null,p(s.value.files,i=>(a(),o("div",{key:i,class:"flex items-center gap-2 text-sm text-slate-300 bg-bg-dark/60 rounded-lg px-3 py-2 cyber-border"},[t[8]||(t[8]=e("span",{class:"material-symbols-outlined text-primary text-base"},"description",-1)),e("span",Z,l(i),1)]))),128))])])):d("",!0),e("div",ee,[t[15]||(t[15]=e("h3",{class:"text-primary font-bold text-sm uppercase tracking-wider mb-4"},"Metadata",-1)),e("dl",te,[e("div",se,[t[10]||(t[10]=e("dt",{class:"text-slate-500"},"ID",-1)),e("dd",ae,l(s.value.id),1)]),e("div",oe,[t[11]||(t[11]=e("dt",{class:"text-slate-500"},"Created",-1)),e("dd",le,l(s.value.created_at),1)]),s.value.created_by?(a(),o("div",de,[t[12]||(t[12]=e("dt",{class:"text-slate-500"},"Author",-1)),e("dd",ie,l(s.value.created_by),1)])):d("",!0),s.value.session_id?(a(),o("div",re,[t[13]||(t[13]=e("dt",{class:"text-slate-500"},"Session",-1)),e("dd",ne,l(s.value.session_id.slice(0,12)),1)])):d("",!0),s.value.superseded_by?(a(),o("div",ce,[t[14]||(t[14]=e("dt",{class:"text-slate-500"},"Superseded by",-1)),e("dd",null,[c(n,{to:`/decisions/${s.value.superseded_by}`,class:"text-primary hover:underline"},{default:u(()=>[m("ADR-"+l(String(s.value.superseded_by).padStart(4,"0")),1)]),_:1},8,["to"])])])):d("",!0)])])])])])):h(r).loading?(a(),o("div",ue,"Loading...")):(a(),o("div",xe,[...t[16]||(t[16]=[e("span",{class:"material-symbols-outlined text-5xl text-primary/30 mb-4"},"error",-1),e("h3",{class:"text-lg text-slate-300"},"Decision not found",-1)])]))}}});export{ye as default};