dspot-trello-gantt 0.3.13 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env.example CHANGED
@@ -7,6 +7,7 @@ GANTT_TIMESTAMP_OUTPUT=true
7
7
  GANTT_TITLE=Project Gantt Chart
8
8
  GANTT_MILESTONE_LISTS=
9
9
  GANTT_MIN_TIMELINE_DAYS=14
10
+ GANTT_RENDERER=mermaid
10
11
 
11
12
  # Google Apps Script (only needed for the publish command)
12
13
  GAPPS_SCRIPT_ID=
package/README.md CHANGED
@@ -64,6 +64,7 @@ GANTT_LISTS=Backlog,To Do,Doing,Done
64
64
  GANTT_MILESTONE_LISTS=Milestone 1,Milestone 2
65
65
  GANTT_TITLE=Project Gantt Chart
66
66
  GANTT_MIN_TIMELINE_DAYS=14
67
+ GANTT_RENDERER=mermaid
67
68
  GANTT_OUTPUT=output/gantt.html
68
69
  GANTT_TIMESTAMP_OUTPUT=false
69
70
  ```
@@ -124,6 +125,13 @@ What `GANTT_OUTPUT` is for:
124
125
  - Use it when you want the report in a specific folder or filename (for example `output/gantt.html`).
125
126
  - If not set, the tool uses its default output path.
126
127
 
128
+ What `GANTT_RENDERER` is for:
129
+
130
+ - Selects which timeline renderer is used in the generated HTML.
131
+ - `mermaid` (default): keeps the current Mermaid-based Gantt behavior.
132
+ - `html`: uses a native HTML timeline renderer designed for custom UI evolution.
133
+ - You can override this value from CLI with `--renderer mermaid` or `--renderer html`.
134
+
127
135
  ## 4) Generate a local report
128
136
 
129
137
  ```bash
@@ -136,6 +144,12 @@ Optional with timestamp:
136
144
  trello-gantt-js generate --timestamp-output
137
145
  ```
138
146
 
147
+ Optional with HTML renderer:
148
+
149
+ ```bash
150
+ trello-gantt-js generate --renderer html
151
+ ```
152
+
139
153
  ## 5) Google Cloud
140
154
 
141
155
  Also (Google Cloud OAuth setup for `publish`):
@@ -201,6 +215,7 @@ On the first run, Google OAuth opens and `credentials/token.json` is saved.
201
215
 
202
216
  - `trello-gantt-js init`: creates a base `.env` template in the current folder.
203
217
  - `trello-gantt-js generate`: generates a local HTML Gantt report.
218
+ - `trello-gantt-js generate --renderer html`: generates the report with native HTML timeline renderer.
204
219
  - `trello-gantt-js generate --timestamp-output`: generates a versioned output filename with UTC timestamp.
205
220
  - `trello-gantt-js publish`: generates and uploads the report to Google Apps Script.
206
221
  - `trello-gantt-js --help`: shows CLI help and available options.
package/dist/main.js CHANGED
@@ -41,10 +41,19 @@ function resolveMinTimelineDaysFromEnv() {
41
41
  }
42
42
  return parsed;
43
43
  }
44
+ function resolveRenderer(raw) {
45
+ const fallback = 'mermaid';
46
+ const value = (raw ?? process.env.GANTT_RENDERER ?? fallback).trim().toLowerCase();
47
+ if (value === 'mermaid' || value === 'html')
48
+ return value;
49
+ console.warn(`Warning: renderer "${raw}" is invalid. Using "${fallback}".`);
50
+ return fallback;
51
+ }
44
52
  async function buildHtml(opts) {
45
53
  const listNames = parseListsArg(opts.lists);
46
54
  const milestoneLists = parseListsArg(opts.milestoneLists);
47
55
  const minTimelineDays = resolveMinTimelineDaysFromEnv();
56
+ const renderer = resolveRenderer(opts.renderer);
48
57
  const fetchResult = await (0, trello_js_1.getCardsForLists)(opts.boardId, listNames);
49
58
  const { tasks, warnings, stats, assigneeLegend } = (0, mapper_js_1.mapCardsToGanttTasks)(fetchResult.cardsByList, { milestoneLists });
50
59
  const allWarnings = [...fetchResult.warnings, ...warnings];
@@ -58,7 +67,9 @@ async function buildHtml(opts) {
58
67
  boardName = await (0, trello_js_1.getBoardName)(opts.boardId);
59
68
  }
60
69
  catch { /* fallback */ }
61
- const mermaidSyntax = (0, mermaid_js_1.generateMermaidGantt)(tasks, opts.title, minTimelineDays);
70
+ const mermaidSyntax = renderer === 'mermaid'
71
+ ? (0, mermaid_js_1.generateMermaidGantt)(tasks, opts.title, minTimelineDays)
72
+ : '';
62
73
  const ganttTotalDays = Math.max((0, mermaid_js_1.ganttDateSpanDays)(tasks), minTimelineDays);
63
74
  const metadata = {
64
75
  title: opts.title,
@@ -70,7 +81,7 @@ async function buildHtml(opts) {
70
81
  ganttTotalDays,
71
82
  minTimelineDays,
72
83
  };
73
- const html = (0, renderer_js_1.renderHtml)(mermaidSyntax, report, metadata, tasks);
84
+ const html = (0, renderer_js_1.renderHtml)(mermaidSyntax, report, metadata, tasks, { renderer });
74
85
  return { html, stats, warnings: allWarnings };
75
86
  }
76
87
  async function runPipeline(opts) {
@@ -135,7 +146,8 @@ function commonOptions(cmd) {
135
146
  .option('--board-id <id>', 'Trello board ID or URL. Env: GANTT_BOARD_ID', process.env.GANTT_BOARD_ID)
136
147
  .option('--lists <names>', 'Comma-separated list names. Env: GANTT_LISTS', process.env.GANTT_LISTS)
137
148
  .option('--title <title>', 'Gantt chart title. Env: GANTT_TITLE', process.env.GANTT_TITLE ?? 'Project Gantt Chart')
138
- .option('--milestone-list <names>', 'Milestone list names. Env: GANTT_MILESTONE_LISTS', process.env.GANTT_MILESTONE_LISTS);
149
+ .option('--milestone-list <names>', 'Milestone list names. Env: GANTT_MILESTONE_LISTS', process.env.GANTT_MILESTONE_LISTS)
150
+ .option('--renderer <type>', 'Timeline renderer: mermaid|html. Env: GANTT_RENDERER', process.env.GANTT_RENDERER ?? 'mermaid');
139
151
  }
140
152
  async function main() {
141
153
  if (process.argv[2] === 'init')
@@ -163,6 +175,7 @@ async function main() {
163
175
  title: opts.title,
164
176
  milestoneLists: opts.milestoneList,
165
177
  timestampOutput: opts.timestampOutput,
178
+ renderer: opts.renderer,
166
179
  })
167
180
  .then((code) => process.exit(code));
168
181
  });
@@ -176,7 +189,13 @@ async function main() {
176
189
  }
177
190
  const boardId = (0, trello_js_1.parseBoardId)(opts.boardId);
178
191
  try {
179
- const code = await runPublish({ boardId, lists: opts.lists, title: opts.title, milestoneLists: opts.milestoneList });
192
+ const code = await runPublish({
193
+ boardId,
194
+ lists: opts.lists,
195
+ title: opts.title,
196
+ milestoneLists: opts.milestoneList,
197
+ renderer: opts.renderer,
198
+ });
180
199
  process.exit(code);
181
200
  }
182
201
  catch (err) {
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAiMjE,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAwMjE,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD"}
package/dist/mcp.js CHANGED
@@ -39,6 +39,11 @@ const BOARD_PARAMS = {
39
39
  .string()
40
40
  .optional()
41
41
  .describe('Comma-separated list names to render as milestones.'),
42
+ renderer: zod_1.z
43
+ .enum(['mermaid', 'html'])
44
+ .optional()
45
+ .default('mermaid')
46
+ .describe('Timeline renderer: "mermaid" (default) or "html".'),
42
47
  };
43
48
  async function buildHtml(params) {
44
49
  const rawBoardId = params.board_id ?? process.env.GANTT_BOARD_ID;
@@ -66,6 +71,7 @@ async function buildHtml(params) {
66
71
  return { ok: false, error: `Unexpected error: ${String(err)}` };
67
72
  }
68
73
  const title = params.title ?? 'Project Gantt Chart';
74
+ const renderer = params.renderer ?? 'mermaid';
69
75
  const { tasks, warnings, stats, assigneeLegend } = (0, mapper_js_1.mapCardsToGanttTasks)(fetchResult.cardsByList, { milestoneLists: parseCsv(params.milestone_list) });
70
76
  const allWarnings = [...fetchResult.warnings, ...warnings];
71
77
  const report = (0, validator_js_1.validateTasks)(tasks, allWarnings, stats);
@@ -77,7 +83,7 @@ async function buildHtml(params) {
77
83
  boardName = await (0, trello_js_1.getBoardName)(boardId);
78
84
  }
79
85
  catch { /* fallback */ }
80
- const mermaidSyntax = (0, mermaid_js_1.generateMermaidGantt)(tasks, title);
86
+ const mermaidSyntax = renderer === 'mermaid' ? (0, mermaid_js_1.generateMermaidGantt)(tasks, title) : '';
81
87
  const html = (0, renderer_js_1.renderHtml)(mermaidSyntax, report, {
82
88
  title,
83
89
  boardId,
@@ -86,7 +92,7 @@ async function buildHtml(params) {
86
92
  generatedAt: new Date().toISOString().replace(/\.\d{3}Z$/, ''),
87
93
  assigneeLegend,
88
94
  ganttTotalDays: (0, mermaid_js_1.ganttDateSpanDays)(tasks),
89
- }, tasks);
95
+ }, tasks, { renderer });
90
96
  return { ok: true, html, boardName, stats, warningCount: report.warnings.length, errorCount: report.errors.length };
91
97
  }
92
98
  // --- Server ---
@@ -102,8 +108,8 @@ server.tool('generate_gantt', 'Generate a Mermaid Gantt chart HTML file from a T
102
108
  .optional()
103
109
  .default('gantt.html')
104
110
  .describe('Output HTML file path.'),
105
- }, async ({ board_id, lists, title, milestone_list, output }) => {
106
- const result = await buildHtml({ board_id, lists, title, milestone_list });
111
+ }, async ({ board_id, lists, title, milestone_list, renderer, output }) => {
112
+ const result = await buildHtml({ board_id, lists, title, milestone_list, renderer });
107
113
  if (!result.ok)
108
114
  return { content: [{ type: 'text', text: `Error: ${result.error}` }] };
109
115
  const outputPath = (0, renderer_js_1.saveHtml)(result.html, output ?? 'gantt.html');
@@ -122,7 +128,7 @@ server.tool('generate_gantt', 'Generate a Mermaid Gantt chart HTML file from a T
122
128
  };
123
129
  });
124
130
  // Tool: publish_gantt
125
- server.tool('publish_gantt', 'Generate a Gantt chart and publish it to Google Apps Script. Credentials are read from environment variables.', BOARD_PARAMS, async ({ board_id, lists, title, milestone_list }) => {
131
+ server.tool('publish_gantt', 'Generate a Gantt chart and publish it to Google Apps Script. Credentials are read from environment variables.', BOARD_PARAMS, async ({ board_id, lists, title, milestone_list, renderer }) => {
126
132
  const scriptId = process.env.GAPPS_SCRIPT_ID ?? '';
127
133
  const deploymentId = process.env.GAPPS_DEPLOYMENT_ID ?? '';
128
134
  const allowedEmails = parseCsv(process.env.GAPPS_ALLOWED_EMAILS);
@@ -130,7 +136,7 @@ server.tool('publish_gantt', 'Generate a Gantt chart and publish it to Google Ap
130
136
  return { content: [{ type: 'text', text: 'Error: GAPPS_SCRIPT_ID is not set in the environment.' }] };
131
137
  if (!deploymentId)
132
138
  return { content: [{ type: 'text', text: 'Error: GAPPS_DEPLOYMENT_ID is not set in the environment.' }] };
133
- const result = await buildHtml({ board_id, lists, title, milestone_list });
139
+ const result = await buildHtml({ board_id, lists, title, milestone_list, renderer });
134
140
  if (!result.ok)
135
141
  return { content: [{ type: 'text', text: `Error: ${result.error}` }] };
136
142
  try {
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ export interface RenderMetadata {
10
10
  ganttTotalDays?: number;
11
11
  minTimelineDays?: number;
12
12
  }
13
- export declare function renderHtml(mermaidSyntax: string, report: ValidationReport, metadata: RenderMetadata, tasks?: GanttTask[]): string;
13
+ export type TimelineRenderer = 'mermaid' | 'html';
14
+ export interface RenderHtmlOptions {
15
+ renderer?: TimelineRenderer;
16
+ }
17
+ export declare function renderHtml(mermaidSyntax: string, report: ValidationReport, metadata: RenderMetadata, tasks?: GanttTask[], options?: RenderHtmlOptions): string;
14
18
  export declare function saveHtml(html: string, outputPath: string): string;
15
19
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAIxE,OAAO,EAAE,SAAS,EAAkB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwLD,wBAAgB,UAAU,CACxB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,cAAc,EACxB,KAAK,GAAE,SAAS,EAAO,GACtB,MAAM,CA0tBR;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKjE"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAIxE,OAAO,EAAE,SAAS,EAAkB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAykBD,wBAAgB,UAAU,CACxB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,cAAc,EACxB,KAAK,GAAE,SAAS,EAAO,EACvB,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAi8BR;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAKjE"}
package/dist/renderer.js CHANGED
@@ -194,11 +194,408 @@ function serializeTasksForJs(tasks) {
194
194
  progress: t.progress,
195
195
  })));
196
196
  }
197
- function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
197
+ function renderSharedControlsBlock(tasks, metadata) {
198
+ const assigneeLegend = metadata.assigneeLegend ?? [];
199
+ const assigneeLegendHtml = renderAssigneeLegend(assigneeLegend);
200
+ return ('<div class="controls-grid">' +
201
+ '<div class="legend-group">' +
202
+ `${renderLegend(tasks, metadata.listsUsed ?? [])}` +
203
+ `${assigneeLegendHtml}` +
204
+ '</div>' +
205
+ '<div class="filter-wrapper">' +
206
+ '<label for="status-filter">Filter by Status (List)</label>' +
207
+ '<select id="status-filter">' +
208
+ '<option value="">Show All</option>' +
209
+ '</select>' +
210
+ '<label for="assignee-filter">Filter by Assignee</label>' +
211
+ '<select id="assignee-filter">' +
212
+ '<option value="">Show All</option>' +
213
+ '</select>' +
214
+ '</div>' +
215
+ '</div>');
216
+ }
217
+ function renderHtmlTimeline(report, metadata, tasks) {
218
+ const pageTitle = escapeHtml(metadata.title ?? 'Gantt Chart');
219
+ const metadataHtml = renderMetadata(metadata);
220
+ const errorsHtml = renderItems(report.errors, 'error');
221
+ const warningsHtml = renderItems(report.warnings, 'warning');
222
+ const sharedControlsHtml = renderSharedControlsBlock(tasks, metadata);
223
+ const tasksJson = serializeTasksForJs(tasks);
224
+ const minTimelineDays = Math.max(1, Math.floor(metadata.minTimelineDays ?? 14));
225
+ const ganttTitleJson = JSON.stringify(metadata.title ?? 'Project Gantt Chart');
226
+ return `<!DOCTYPE html>
227
+ <html lang="en">
228
+ <head>
229
+ <meta charset="UTF-8" />
230
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
231
+ <title>${pageTitle}</title>
232
+ <style>
233
+ :root {
234
+ --bg-body: #f8fafc;
235
+ --bg-card: #ffffff;
236
+ --bg-alt: #f1f5f9;
237
+ --text-main: #0f172a;
238
+ --text-muted: #64748b;
239
+ --border-color: #e2e8f0;
240
+ --primary: #3b82f6;
241
+ --err-bg: #fef2f2; --err-text: #991b1b; --err-border: #f87171;
242
+ --warn-bg: #fff7ed; --warn-text: #9a3412; --warn-border: #fdba74;
243
+ --ok-bg: #f0fdf4; --ok-text: #166534; --ok-border: #86efac;
244
+ }
245
+ body {
246
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
247
+ background: var(--bg-body);
248
+ margin: 0;
249
+ color: var(--text-main);
250
+ }
251
+ .container { max-width: 1600px; margin: 0 auto; padding: 24px; display: flex; flex-direction: column; gap: 20px; }
252
+ .card {
253
+ background: var(--bg-card);
254
+ border: 1px solid var(--border-color);
255
+ border-radius: 12px;
256
+ padding: 20px;
257
+ }
258
+ h1, h2, h3 { margin: 0 0 12px 0; }
259
+ h1 { font-size: 1.5rem; }
260
+ h2 { font-size: 1.2rem; }
261
+ .header-info {
262
+ display: flex; flex-wrap: wrap; gap: 12px;
263
+ color: var(--text-muted); font-size: 0.9rem;
264
+ }
265
+ .header-info p {
266
+ margin: 0; background: var(--bg-alt); padding: 6px 12px; border-radius: 8px; border: 1px solid var(--border-color);
267
+ }
268
+ .controls-grid {
269
+ display: grid; grid-template-columns: 1fr; gap: 20px; margin-bottom: 16px;
270
+ background: var(--bg-alt); padding: 16px; border-radius: 8px;
271
+ border: 1px solid var(--border-color);
272
+ }
273
+ @media (min-width: 768px) { .controls-grid { grid-template-columns: 2fr 1fr; align-items: end; } }
274
+ .legend-group { display: flex; flex-direction: column; gap: 12px; }
275
+ .legend-heading {
276
+ margin: 0; font-size: 0.85rem; text-transform: uppercase;
277
+ letter-spacing: 0.05em; color: var(--text-muted); font-weight: 700;
278
+ }
279
+ .legend-row, .assignee-legend {
280
+ display: flex; flex-wrap: wrap; gap: 12px;
281
+ list-style: none; padding: 0; margin: 0;
282
+ }
283
+ .legend-item {
284
+ display: inline-flex; align-items: center; gap: 8px; font-size: 0.85rem;
285
+ background: var(--bg-card); padding: 4px 10px; border-radius: 20px;
286
+ border: 1px solid var(--border-color); box-shadow: 0 1px 2px rgba(0,0,0,0.02);
287
+ font-weight: 500;
288
+ }
289
+ .legend-swatch { width: 14px; height: 14px; border-radius: 50%; flex-shrink: 0; }
290
+ .assignee-legend li {
291
+ display: inline-flex; align-items: center;
292
+ background: #e0f2fe; color: #0369a1;
293
+ padding: 4px 10px; border-radius: 6px; font-size: 0.85rem; font-weight: 500;
294
+ }
295
+ .filter-wrapper { display: flex; flex-direction: column; gap: 8px; }
296
+ .filter-wrapper label {
297
+ font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em;
298
+ color: var(--text-muted); font-weight: 700;
299
+ }
300
+ .filter-wrapper select {
301
+ width: 100%; padding: 10px 12px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--bg-card); color: var(--text-main);
302
+ }
303
+ .timeline-shell {
304
+ border: 1px solid var(--border-color);
305
+ border-radius: 10px;
306
+ overflow: auto;
307
+ max-width: 100%;
308
+ background: var(--bg-card);
309
+ }
310
+ .timeline-grid {
311
+ display: grid;
312
+ grid-template-columns: 320px 1fr;
313
+ min-width: 1100px;
314
+ }
315
+ .left-col {
316
+ position: sticky;
317
+ left: 0;
318
+ z-index: 5;
319
+ background: var(--bg-card);
320
+ border-right: 1px solid var(--border-color);
321
+ }
322
+ .right-col {
323
+ position: relative;
324
+ background: var(--bg-card);
325
+ }
326
+ .header-cell {
327
+ position: sticky;
328
+ top: 0;
329
+ z-index: 7;
330
+ height: 44px;
331
+ display: flex;
332
+ align-items: center;
333
+ padding: 0 12px;
334
+ border-bottom: 1px solid var(--border-color);
335
+ background: var(--bg-alt);
336
+ font-size: 0.8rem;
337
+ font-weight: 700;
338
+ text-transform: uppercase;
339
+ letter-spacing: .04em;
340
+ color: var(--text-muted);
341
+ }
342
+ .task-row-label {
343
+ height: 42px;
344
+ display: flex;
345
+ align-items: center;
346
+ padding: 0 12px;
347
+ border-bottom: 1px solid var(--border-color);
348
+ font-size: 0.9rem;
349
+ white-space: nowrap;
350
+ overflow: hidden;
351
+ text-overflow: ellipsis;
352
+ }
353
+ .timeline-canvas {
354
+ position: relative;
355
+ border-bottom: 1px solid var(--border-color);
356
+ height: 42px;
357
+ background-image: linear-gradient(to right, rgba(148,163,184,.18) 1px, transparent 1px);
358
+ background-repeat: repeat-x;
359
+ background-size: var(--day-width) 100%;
360
+ }
361
+ .timeline-header-axis {
362
+ position: sticky;
363
+ top: 0;
364
+ z-index: 6;
365
+ height: 44px;
366
+ border-bottom: 1px solid var(--border-color);
367
+ background: var(--bg-alt);
368
+ }
369
+ .axis-label {
370
+ position: absolute;
371
+ top: 12px;
372
+ transform: translateX(-50%);
373
+ font-size: 0.75rem;
374
+ color: var(--text-muted);
375
+ white-space: nowrap;
376
+ }
377
+ .task-bar {
378
+ position: absolute;
379
+ top: 8px;
380
+ height: 26px;
381
+ border-radius: 6px;
382
+ border: 1px solid transparent;
383
+ display: flex;
384
+ align-items: center;
385
+ justify-content: center;
386
+ font-size: 0.75rem;
387
+ font-weight: 700;
388
+ color: #0f172a;
389
+ overflow: hidden;
390
+ white-space: nowrap;
391
+ text-overflow: ellipsis;
392
+ padding: 0 8px;
393
+ box-sizing: border-box;
394
+ }
395
+ .task-bar.done { background: #bbf7d0; border-color: #4ade80; color: #14532d; }
396
+ .task-bar.active { background: #bae6fd; border-color: #7dd3fc; color: #0c4a6e; }
397
+ .task-bar.crit { background: #fef3c7; border-color: #fde047; color: #713f12; }
398
+ .task-bar.active-crit { background: #fecaca; border-color: #fca5a5; color: #7f1d1d; }
399
+ .task-bar.default { background: #e2e8f0; border-color: #94a3b8; color: #1e293b; }
400
+ .validation-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
401
+ .alert { padding: 12px 16px; border-radius: 8px; font-size: 0.9rem; border: 1px solid transparent; }
402
+ .error { color: var(--err-text); background: var(--err-bg); border-color: var(--err-border); }
403
+ .warning { color: var(--warn-text); background: var(--warn-bg); border-color: var(--warn-border); }
404
+ .ok { color: var(--ok-text); background: var(--ok-bg); border-color: var(--ok-border); }
405
+ @media (max-width: 900px) {
406
+ .controls { grid-template-columns: 1fr; }
407
+ .container { padding: 12px; }
408
+ .timeline-grid { grid-template-columns: 250px 1fr; min-width: 850px; }
409
+ }
410
+ </style>
411
+ </head>
412
+ <body>
413
+ <div class="container">
414
+ <div class="card">
415
+ <h1>${pageTitle}</h1>
416
+ ${metadataHtml}
417
+ </div>
418
+ <div class="card">
419
+ <h2>Timeline (HTML renderer)</h2>
420
+ ${sharedControlsHtml}
421
+ <div class="timeline-shell" id="timeline-shell"></div>
422
+ </div>
423
+ <div class="card">
424
+ <h2>Validation Report</h2>
425
+ <h3>Errors (${report.errors.length})</h3>
426
+ <ul class="validation-list">${errorsHtml}</ul>
427
+ <h3 style="margin-top:16px">Warnings (${report.warnings.length})</h3>
428
+ <ul class="validation-list">${warningsHtml}</ul>
429
+ </div>
430
+ </div>
431
+ <script id="gantt-tasks-data" type="application/json">${tasksJson}</script>
432
+ <script>
433
+ const DAY_WIDTH = 34;
434
+ const MIN_TIMELINE_DAYS = ${minTimelineDays};
435
+ const GANTT_TITLE = ${ganttTitleJson};
436
+ const tasks = JSON.parse(document.getElementById('gantt-tasks-data').textContent);
437
+ const shell = document.getElementById('timeline-shell');
438
+ const statusSelect = document.getElementById('status-filter');
439
+ const assigneeSelect = document.getElementById('assignee-filter');
440
+
441
+ function parseIsoDate(value) {
442
+ return new Date(value + 'T00:00:00Z');
443
+ }
444
+
445
+ function toIsoDate(date) {
446
+ return new Date(date).toISOString().slice(0, 10);
447
+ }
448
+
449
+ function addDays(date, count) {
450
+ const d = new Date(date);
451
+ d.setUTCDate(d.getUTCDate() + count);
452
+ return d;
453
+ }
454
+
455
+ function diffDays(a, b) {
456
+ return Math.round((parseIsoDate(b).getTime() - parseIsoDate(a).getTime()) / 86400000);
457
+ }
458
+
459
+ function normalizeStatus(task) {
460
+ const raw = String(task.status || '').toLowerCase();
461
+ if (raw.includes('active') && raw.includes('crit')) return 'active-crit';
462
+ if (raw.includes('done')) return 'done';
463
+ if (raw.includes('active')) return 'active';
464
+ if (raw.includes('crit')) return 'crit';
465
+ return 'default';
466
+ }
467
+
468
+ function formatAxisLabel(iso) {
469
+ const d = parseIsoDate(iso);
470
+ const months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
471
+ return String(d.getUTCDate()).padStart(2, '0') + ' ' + months[d.getUTCMonth()];
472
+ }
473
+
474
+ function buildTimelineBounds(activeTasks) {
475
+ if (!activeTasks.length) {
476
+ const today = toIsoDate(new Date());
477
+ const end = toIsoDate(addDays(parseIsoDate(today), MIN_TIMELINE_DAYS - 1));
478
+ return { start: today, end, totalDays: MIN_TIMELINE_DAYS };
479
+ }
480
+ const start = activeTasks.map((t) => t.start_date).sort()[0];
481
+ const maxEnd = activeTasks.map((t) => t.end_date).sort().slice(-1)[0];
482
+ const span = diffDays(start, maxEnd) + 1;
483
+ if (span >= MIN_TIMELINE_DAYS) {
484
+ return { start, end: maxEnd, totalDays: span };
485
+ }
486
+ const paddedEnd = toIsoDate(addDays(parseIsoDate(start), MIN_TIMELINE_DAYS - 1));
487
+ return { start, end: paddedEnd, totalDays: MIN_TIMELINE_DAYS };
488
+ }
489
+
490
+ function fillSelect(select, values) {
491
+ [...new Set(values.filter(Boolean))].sort().forEach((value) => {
492
+ const opt = document.createElement('option');
493
+ opt.value = value;
494
+ opt.textContent = value;
495
+ select.appendChild(opt);
496
+ });
497
+ }
498
+
499
+ function taskLabel(task) {
500
+ let label = task.display_name || task.name;
501
+ if (task.assignee) label += ' [' + task.assignee + ']';
502
+ return label;
503
+ }
504
+
505
+ function render(activeTasks) {
506
+ const { start, totalDays } = buildTimelineBounds(activeTasks);
507
+ const timelineWidth = totalDays * DAY_WIDTH;
508
+ const grid = document.createElement('div');
509
+ grid.className = 'timeline-grid';
510
+ grid.style.setProperty('--day-width', DAY_WIDTH + 'px');
511
+
512
+ const left = document.createElement('div');
513
+ left.className = 'left-col';
514
+ const leftHeader = document.createElement('div');
515
+ leftHeader.className = 'header-cell';
516
+ leftHeader.textContent = GANTT_TITLE;
517
+ left.appendChild(leftHeader);
518
+
519
+ const right = document.createElement('div');
520
+ right.className = 'right-col';
521
+ right.style.minWidth = timelineWidth + 'px';
522
+ const axis = document.createElement('div');
523
+ axis.className = 'timeline-header-axis';
524
+ axis.style.width = timelineWidth + 'px';
525
+
526
+ for (let i = 0; i < totalDays; i++) {
527
+ const iso = toIsoDate(addDays(parseIsoDate(start), i));
528
+ if (i === 0 || i === totalDays - 1 || (i % 7 === 0)) {
529
+ const label = document.createElement('div');
530
+ label.className = 'axis-label';
531
+ label.style.left = (i * DAY_WIDTH) + 'px';
532
+ label.textContent = formatAxisLabel(iso);
533
+ axis.appendChild(label);
534
+ }
535
+ }
536
+ right.appendChild(axis);
537
+
538
+ activeTasks.forEach((task) => {
539
+ const labelRow = document.createElement('div');
540
+ labelRow.className = 'task-row-label';
541
+ labelRow.title = taskLabel(task);
542
+ labelRow.textContent = taskLabel(task);
543
+ left.appendChild(labelRow);
544
+
545
+ const row = document.createElement('div');
546
+ row.className = 'timeline-canvas';
547
+ row.style.width = timelineWidth + 'px';
548
+
549
+ const bar = document.createElement('div');
550
+ bar.className = 'task-bar ' + normalizeStatus(task);
551
+ const x = diffDays(start, task.start_date) * DAY_WIDTH;
552
+ const w = (diffDays(task.start_date, task.end_date) + 1) * DAY_WIDTH;
553
+ bar.style.left = x + 'px';
554
+ bar.style.width = Math.max(w, 36) + 'px';
555
+ bar.title = task.name;
556
+ bar.textContent = task.progress + '%';
557
+
558
+ row.appendChild(bar);
559
+ right.appendChild(row);
560
+ });
561
+
562
+ grid.appendChild(left);
563
+ grid.appendChild(right);
564
+ shell.innerHTML = '';
565
+ shell.appendChild(grid);
566
+ }
567
+
568
+ function filteredTasks() {
569
+ const status = statusSelect.value;
570
+ const assignee = assigneeSelect.value;
571
+ return tasks.filter((t) => {
572
+ const okStatus = !status || t.source_list_name === status;
573
+ const okAssignee = !assignee || String(t.assignee || '').split('/').includes(assignee);
574
+ return okStatus && okAssignee;
575
+ });
576
+ }
577
+
578
+ fillSelect(statusSelect, tasks.map((t) => t.source_list_name));
579
+ fillSelect(assigneeSelect, tasks.map((t) => t.assignee));
580
+
581
+ function rerender() {
582
+ const list = filteredTasks();
583
+ render(list);
584
+ }
585
+
586
+ statusSelect.addEventListener('change', rerender);
587
+ assigneeSelect.addEventListener('change', rerender);
588
+ rerender();
589
+ </script>
590
+ </body>
591
+ </html>`;
592
+ }
593
+ function renderHtml(mermaidSyntax, report, metadata, tasks = [], options = {}) {
594
+ const renderer = options.renderer ?? 'mermaid';
198
595
  const pageTitle = escapeHtml(metadata.title ?? 'Gantt Chart');
199
596
  const metadataHtml = renderMetadata(metadata);
597
+ const sharedControlsHtml = renderSharedControlsBlock(tasks, metadata);
200
598
  const assigneeLegend = metadata.assigneeLegend ?? [];
201
- const assigneeLegendHtml = renderAssigneeLegend(assigneeLegend);
202
599
  const tasksJson = serializeTasksForJs(tasks);
203
600
  const listsUsedJson = JSON.stringify(metadata.listsUsed ?? []);
204
601
  const unknownTaskColorMapJson = serializeUnknownTaskColorMap(tasks);
@@ -210,6 +607,10 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
210
607
  const ganttUseWidth = (0, mermaid_js_1.computeGanttUseWidth)(totalDays);
211
608
  const escapedMermaidSyntax = escapeHtml(mermaidSyntax);
212
609
  const ganttTitleJson = JSON.stringify(metadata.title ?? 'Project Gantt Chart');
610
+ const rendererJson = JSON.stringify(renderer);
611
+ const timelineMarkup = renderer === 'html'
612
+ ? `<div class="gantt-inner html-timeline-inner"><div id="html-timeline" class="html-timeline"></div></div>`
613
+ : `<div class="gantt-inner" style="min-width: ${ganttUseWidth}px;"><pre class="mermaid">${escapedMermaidSyntax}</pre></div>`;
213
614
  return `<!DOCTYPE html>
214
615
  <html lang="en">
215
616
  <head>
@@ -370,6 +771,73 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
370
771
  .gantt-scroll-container::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
371
772
  .gantt-inner { display: inline-block; vertical-align: top; box-sizing: border-box; padding: 16px; }
372
773
  .gantt-scroll-container .gantt-inner svg { max-width: none !important; }
774
+ .html-timeline-inner { width: 100%; }
775
+ .html-timeline-grid { display: grid; grid-template-columns: max-content 1fr; min-width: max-content; }
776
+ .html-timeline-left {
777
+ position: sticky; left: 0; z-index: 3; background: var(--bg-card); border-right: 1px solid var(--border-color);
778
+ min-width: 300px;
779
+ width: max-content;
780
+ }
781
+ .html-timeline-header {
782
+ position: sticky; top: 0; z-index: 4; height: 48px; display: flex; align-items: center; padding: 0 10px;
783
+ border-bottom: 1px solid var(--border-color); background: var(--bg-alt); font-size: 0.8rem; font-weight: 700; color: var(--text-muted);
784
+ text-transform: uppercase; letter-spacing: .04em;
785
+ }
786
+ .html-timeline-row-label {
787
+ height: 38px; display: flex; align-items: center; padding: 0 14px 0 10px; border-bottom: 1px solid var(--border-color);
788
+ font-size: 0.85rem; white-space: nowrap; overflow: visible; text-overflow: clip;
789
+ }
790
+ .html-timeline-right { position: relative; }
791
+ .html-axis {
792
+ position: sticky; top: 0; z-index: 2; height: 48px; border-bottom: 1px solid var(--border-color); background: var(--bg-alt);
793
+ }
794
+ .html-axis-month-row, .html-axis-day-row {
795
+ position: relative;
796
+ height: 24px;
797
+ }
798
+ .html-axis-month-row { border-bottom: 1px solid var(--border-color); }
799
+ .html-axis-month-label {
800
+ position: absolute; top: 4px; transform: translateX(-50%);
801
+ font-size: 0.68rem; color: var(--text-muted); white-space: nowrap; font-weight: 600;
802
+ text-transform: uppercase; letter-spacing: .04em;
803
+ }
804
+ .html-axis-day-label {
805
+ position: absolute; top: 4px; transform: translateX(-50%);
806
+ font-size: 0.66rem; color: var(--text-muted); white-space: nowrap;
807
+ }
808
+ .html-row {
809
+ position: relative; height: 38px; border-bottom: 1px solid var(--border-color);
810
+ background-image: linear-gradient(to right, rgba(148,163,184,.18) 1px, transparent 1px);
811
+ background-repeat: repeat-x;
812
+ }
813
+ .html-bar {
814
+ position: absolute; top: 7px; height: 24px; border-radius: 6px; border: 1px solid transparent;
815
+ display: inline-flex; align-items: center; justify-content: center; padding: 0 8px;
816
+ font-size: 0.72rem; font-weight: 700; box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
817
+ --bar-base: #e2e8f0;
818
+ --bar-progress: #94a3b8;
819
+ --bar-text: #1e293b;
820
+ background: var(--bar-base);
821
+ color: var(--bar-text);
822
+ }
823
+ .html-bar.done { --bar-base: #bbf7d0; --bar-progress: #4ade80; --bar-text: #14532d; border-color: #4ade80; }
824
+ .html-bar.active { --bar-base: #bae6fd; --bar-progress: #38bdf8; --bar-text: #0c4a6e; border-color: #7dd3fc; }
825
+ .html-bar.crit { --bar-base: #fef3c7; --bar-progress: #fde047; --bar-text: #713f12; border-color: #fde047; }
826
+ .html-bar.active-crit { --bar-base: #fecaca; --bar-progress: #f87171; --bar-text: #7f1d1d; border-color: #fca5a5; }
827
+ .html-bar.default { --bar-base: #e2e8f0; --bar-progress: #94a3b8; --bar-text: #1e293b; border-color: #94a3b8; }
828
+ .html-bar-progress {
829
+ position: absolute;
830
+ left: 0;
831
+ top: 0;
832
+ bottom: 0;
833
+ border-radius: 5px;
834
+ background: var(--bar-progress);
835
+ pointer-events: none;
836
+ }
837
+ .html-bar-text {
838
+ position: relative;
839
+ z-index: 1;
840
+ }
373
841
  .validation-section h3 { font-size: 1rem; margin-top: 24px; margin-bottom: 12px; color: var(--text-main); }
374
842
  .validation-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
375
843
  .alert {
@@ -429,26 +897,9 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
429
897
  </div>
430
898
  <div id="section-gantt" class="section active card">
431
899
  <h2>Gantt Chart</h2>
432
- <div class="controls-grid">
433
- <div class="legend-group">
434
- ${renderLegend(tasks, metadata.listsUsed ?? [])}
435
- ${assigneeLegendHtml}
436
- </div>
437
- <div class="filter-wrapper">
438
- <label for="status-filter">Filter by Status (List)</label>
439
- <select id="status-filter">
440
- <option value="">Show All</option>
441
- </select>
442
- <label for="assignee-filter">Filter by Assignee</label>
443
- <select id="assignee-filter">
444
- <option value="">Show All</option>
445
- </select>
446
- </div>
447
- </div>
900
+ ${sharedControlsHtml}
448
901
  <div class="gantt-scroll-container">
449
- <div class="gantt-inner" style="min-width: ${ganttUseWidth}px;">
450
- <pre class="mermaid">${escapedMermaidSyntax}</pre>
451
- </div>
902
+ ${timelineMarkup}
452
903
  </div>
453
904
  </div>
454
905
  <div id="section-validation" class="section card validation-section">
@@ -494,22 +945,16 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
494
945
  <script type="module">
495
946
  import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
496
947
 
948
+ const RENDERER = ${rendererJson};
497
949
  const GANTT_USE_WIDTH = ${ganttUseWidth};
498
950
  const GANTT_TITLE = ${ganttTitleJson};
499
951
 
500
- mermaid.initialize({
501
- startOnLoad: false,
502
- theme: 'default',
503
- securityLevel: 'loose',
504
- useMaxWidth: false,
505
- gantt: { useWidth: GANTT_USE_WIDTH }
506
- });
507
-
508
952
  const allTasks = JSON.parse(document.getElementById('gantt-tasks-data').textContent);
509
953
  const listsUsed = JSON.parse(document.getElementById('lists-used-data').textContent);
510
954
  const unknownTaskColorMap = JSON.parse(document.getElementById('unknown-task-color-map-data').textContent);
511
955
  const mermaidEl = document.querySelector('.mermaid');
512
- const originalSyntax = mermaidEl.textContent;
956
+ const htmlTimelineEl = document.getElementById('html-timeline');
957
+ const originalSyntax = mermaidEl ? mermaidEl.textContent : '';
513
958
 
514
959
  const assigneeSelect = document.getElementById('assignee-filter');
515
960
  const statusSelect = document.getElementById('status-filter');
@@ -547,6 +992,54 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
547
992
  return text.replace(/ {2,}/g, (spaces) => ' ' + '\u00A0'.repeat(spaces.length - 1));
548
993
  }
549
994
 
995
+ function ensureCustomTooltip() {
996
+ let overlay = document.getElementById('dspot-task-tooltip');
997
+ if (overlay) return overlay;
998
+ overlay = document.createElement('div');
999
+ overlay.id = 'dspot-task-tooltip';
1000
+ overlay.style.position = 'fixed';
1001
+ overlay.style.zIndex = '99999';
1002
+ overlay.style.pointerEvents = 'none';
1003
+ overlay.style.padding = '8px 10px';
1004
+ overlay.style.borderRadius = '8px';
1005
+ overlay.style.border = '1px solid var(--border-color)';
1006
+ overlay.style.background = 'var(--bg-card)';
1007
+ overlay.style.color = 'var(--text-main)';
1008
+ overlay.style.boxShadow = 'var(--shadow-md)';
1009
+ overlay.style.fontSize = '0.9rem';
1010
+ overlay.style.lineHeight = '1.2';
1011
+ overlay.style.maxWidth = '520px';
1012
+ overlay.style.whiteSpace = 'pre-wrap';
1013
+ overlay.style.wordBreak = 'break-word';
1014
+ overlay.style.opacity = '0';
1015
+ overlay.style.transform = 'translate(0px, 8px)';
1016
+ document.body.appendChild(overlay);
1017
+ return overlay;
1018
+ }
1019
+
1020
+ function bindCustomTooltip(target, fullTitle) {
1021
+ const overlay = ensureCustomTooltip();
1022
+ function setPos(clientX, clientY) {
1023
+ const offset = 14;
1024
+ overlay.style.left = (clientX + offset) + 'px';
1025
+ overlay.style.top = (clientY + offset) + 'px';
1026
+ }
1027
+ function show(e) {
1028
+ overlay.textContent = fullTitle;
1029
+ overlay.style.opacity = '1';
1030
+ setPos(e.clientX, e.clientY);
1031
+ }
1032
+ function hide() {
1033
+ overlay.style.opacity = '0';
1034
+ }
1035
+ target.addEventListener('pointerenter', show);
1036
+ target.addEventListener('pointermove', (e) => setPos(e.clientX, e.clientY));
1037
+ target.addEventListener('pointerleave', hide);
1038
+ target.addEventListener('mouseenter', show);
1039
+ target.addEventListener('mousemove', (e) => setPos(e.clientX, e.clientY));
1040
+ target.addEventListener('mouseleave', hide);
1041
+ }
1042
+
550
1043
  const MIN_TIMELINE_DAYS = ${minTimelineDays};
551
1044
 
552
1045
  function minDate(values) {
@@ -563,6 +1056,116 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
563
1056
  return base.toISOString().slice(0, 10);
564
1057
  }
565
1058
 
1059
+ function normalizeHtmlStatus(statusRaw) {
1060
+ const raw = String(statusRaw || '').toLowerCase();
1061
+ if (raw.includes('active') && raw.includes('crit')) return 'active-crit';
1062
+ if (raw.includes('done')) return 'done';
1063
+ if (raw.includes('active')) return 'active';
1064
+ if (raw.includes('crit')) return 'crit';
1065
+ return 'default';
1066
+ }
1067
+
1068
+ function renderHtmlTimeline(tasks) {
1069
+ if (!htmlTimelineEl) return;
1070
+ const DAY_WIDTH = 34;
1071
+ const months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
1072
+ const source = tasks.length ? tasks : allTasks;
1073
+ const start = source.length ? minDate(source.map((t) => t.start_date)) : addDays(new Date().toISOString().slice(0,10), 0);
1074
+ const end = source.length ? maxDate(source.map((t) => t.end_date)) : start;
1075
+ const spanDays = Math.round(
1076
+ (new Date(end + 'T00:00:00Z').getTime() - new Date(start + 'T00:00:00Z').getTime()) / 86400000,
1077
+ ) + 1;
1078
+ const totalDays = Math.max(MIN_TIMELINE_DAYS, spanDays);
1079
+ const width = totalDays * DAY_WIDTH;
1080
+
1081
+ const grid = document.createElement('div');
1082
+ grid.className = 'html-timeline-grid';
1083
+ const left = document.createElement('div');
1084
+ left.className = 'html-timeline-left';
1085
+ const leftHeader = document.createElement('div');
1086
+ leftHeader.className = 'html-timeline-header';
1087
+ leftHeader.textContent = 'Tasks';
1088
+ left.appendChild(leftHeader);
1089
+
1090
+ const right = document.createElement('div');
1091
+ right.className = 'html-timeline-right';
1092
+ right.style.width = width + 'px';
1093
+ const axis = document.createElement('div');
1094
+ axis.className = 'html-axis';
1095
+ const monthRow = document.createElement('div');
1096
+ monthRow.className = 'html-axis-month-row';
1097
+ const dayRow = document.createElement('div');
1098
+ dayRow.className = 'html-axis-day-row';
1099
+
1100
+ const monthRanges = [];
1101
+ for (let i = 0; i < totalDays; i++) {
1102
+ const d = new Date(start + 'T00:00:00Z');
1103
+ d.setUTCDate(d.getUTCDate() + i);
1104
+ const monthKey = d.getUTCFullYear() + '-' + String(d.getUTCMonth() + 1).padStart(2, '0');
1105
+ const lastRange = monthRanges[monthRanges.length - 1];
1106
+ if (!lastRange || lastRange.key !== monthKey) {
1107
+ monthRanges.push({ key: monthKey, monthIndex: d.getUTCMonth(), year: d.getUTCFullYear(), start: i, end: i });
1108
+ } else {
1109
+ lastRange.end = i;
1110
+ }
1111
+
1112
+ const dayLabel = document.createElement('div');
1113
+ dayLabel.className = 'html-axis-day-label';
1114
+ dayLabel.style.left = (i * DAY_WIDTH + DAY_WIDTH / 2) + 'px';
1115
+ dayLabel.textContent = String(d.getUTCDate()).padStart(2, '0');
1116
+ dayRow.appendChild(dayLabel);
1117
+ }
1118
+ monthRanges.forEach((range) => {
1119
+ const monthLabel = document.createElement('div');
1120
+ monthLabel.className = 'html-axis-month-label';
1121
+ const centerX = ((range.start + range.end + 1) * DAY_WIDTH) / 2;
1122
+ monthLabel.style.left = centerX + 'px';
1123
+ monthLabel.textContent = months[range.monthIndex] + ' ' + String(range.year);
1124
+ monthRow.appendChild(monthLabel);
1125
+ });
1126
+ axis.appendChild(monthRow);
1127
+ axis.appendChild(dayRow);
1128
+ right.appendChild(axis);
1129
+
1130
+ source.forEach((task) => {
1131
+ const taskName = preserveVisibleSpaces(String(task.display_name || task.name || '').trim());
1132
+ const fullTitle = preserveVisibleSpaces(String(task.name || task.display_name || '').trim());
1133
+ const rowLabel = document.createElement('div');
1134
+ rowLabel.className = 'html-timeline-row-label';
1135
+ rowLabel.textContent = taskName;
1136
+ bindCustomTooltip(rowLabel, fullTitle || taskName);
1137
+ left.appendChild(rowLabel);
1138
+
1139
+ const row = document.createElement('div');
1140
+ row.className = 'html-row';
1141
+ row.style.width = width + 'px';
1142
+ row.style.backgroundSize = DAY_WIDTH + 'px 100%';
1143
+ const bar = document.createElement('div');
1144
+ bar.className = 'html-bar ' + normalizeHtmlStatus(task.status);
1145
+ const x = Math.round((new Date(task.start_date + 'T00:00:00Z').getTime() - new Date(start + 'T00:00:00Z').getTime()) / 86400000) * DAY_WIDTH;
1146
+ const w = (Math.round((new Date(task.end_date + 'T00:00:00Z').getTime() - new Date(task.start_date + 'T00:00:00Z').getTime()) / 86400000) + 1) * DAY_WIDTH;
1147
+ const progress = Math.max(0, Math.min(100, Number(task.progress ?? 0)));
1148
+ bar.style.left = x + 'px';
1149
+ bar.style.width = Math.max(36, w) + 'px';
1150
+ const progressFill = document.createElement('div');
1151
+ progressFill.className = 'html-bar-progress';
1152
+ progressFill.style.width = progress + '%';
1153
+ const progressText = document.createElement('span');
1154
+ progressText.className = 'html-bar-text';
1155
+ progressText.textContent = String(progress) + '%';
1156
+ bar.appendChild(progressFill);
1157
+ bar.appendChild(progressText);
1158
+ bindCustomTooltip(bar, fullTitle || taskName);
1159
+ row.appendChild(bar);
1160
+ right.appendChild(row);
1161
+ });
1162
+
1163
+ grid.appendChild(left);
1164
+ grid.appendChild(right);
1165
+ htmlTimelineEl.innerHTML = '';
1166
+ htmlTimelineEl.appendChild(grid);
1167
+ }
1168
+
566
1169
  function buildMermaid(tasks) {
567
1170
  const lines = [
568
1171
  'gantt',
@@ -894,13 +1497,28 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
894
1497
  }
895
1498
  }
896
1499
 
897
- await renderGantt(originalSyntax, orderedTasksServer(allTasks));
1500
+ if (RENDERER === 'mermaid') {
1501
+ mermaid.initialize({
1502
+ startOnLoad: false,
1503
+ theme: 'default',
1504
+ securityLevel: 'loose',
1505
+ useMaxWidth: false,
1506
+ gantt: { useWidth: GANTT_USE_WIDTH }
1507
+ });
1508
+ await renderGantt(originalSyntax, orderedTasksServer(allTasks));
1509
+ } else {
1510
+ renderHtmlTimeline(orderedTasksServer(allTasks));
1511
+ }
898
1512
 
899
1513
  async function applyFilters() {
900
1514
  const assigneeValue = assigneeSelect.value;
901
1515
  const statusValue = statusSelect.value;
902
1516
  if (!assigneeValue && !statusValue) {
903
- await renderGantt(originalSyntax, orderedTasksServer(allTasks));
1517
+ if (RENDERER === 'mermaid') {
1518
+ await renderGantt(originalSyntax, orderedTasksServer(allTasks));
1519
+ } else {
1520
+ renderHtmlTimeline(orderedTasksServer(allTasks));
1521
+ }
904
1522
  return;
905
1523
  }
906
1524
  const filtered = allTasks.filter(t => {
@@ -909,11 +1527,20 @@ function renderHtml(mermaidSyntax, report, metadata, tasks = []) {
909
1527
  return matchesAssignee && matchesStatus;
910
1528
  });
911
1529
  if (!filtered.length) {
912
- mermaidEl.innerHTML = '<p style="padding:16px;color:var(--text-main);">No tasks for this filter combination.</p>';
1530
+ const message = '<p style="padding:16px;color:var(--text-main);">No tasks for this filter combination.</p>';
1531
+ if (RENDERER === 'mermaid' && mermaidEl) {
1532
+ mermaidEl.innerHTML = message;
1533
+ } else if (htmlTimelineEl) {
1534
+ htmlTimelineEl.innerHTML = message;
1535
+ }
913
1536
  return;
914
1537
  }
915
- const syntax = buildMermaid(filtered);
916
- await renderGantt(syntax, orderedTasksClient(filtered));
1538
+ if (RENDERER === 'mermaid') {
1539
+ const syntax = buildMermaid(filtered);
1540
+ await renderGantt(syntax, orderedTasksClient(filtered));
1541
+ } else {
1542
+ renderHtmlTimeline(orderedTasksClient(filtered));
1543
+ }
917
1544
  }
918
1545
 
919
1546
  assigneeSelect.addEventListener('change', applyFilters);
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dspot-trello-gantt",
3
- "version": "0.3.13",
3
+ "version": "0.4.1",
4
4
  "description": "Generate Gantt chart HTML from Trello board data",
5
5
  "keywords": [
6
6
  "trello",