photon-grid-core 0.0.3 → 1.0.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.
Files changed (68) hide show
  1. package/README.md +304 -304
  2. package/chart/chart-config/chart-controls.d.ts +49 -0
  3. package/chart/chart-config/chart-controls.d.ts.map +1 -0
  4. package/chart/chart-config/chart-controls.js +229 -0
  5. package/chart/chart-config/chart-controls.js.map +1 -0
  6. package/chart/chart-config/chart-tool-panel.d.ts +86 -0
  7. package/chart/chart-config/chart-tool-panel.d.ts.map +1 -0
  8. package/chart/chart-config/chart-tool-panel.js +402 -0
  9. package/chart/chart-config/chart-tool-panel.js.map +1 -0
  10. package/chart/chart-panel.d.ts +97 -0
  11. package/chart/chart-panel.d.ts.map +1 -1
  12. package/chart/chart-panel.js +211 -58
  13. package/chart/chart-panel.js.map +1 -1
  14. package/chart/chart-renderer.d.ts +97 -0
  15. package/chart/chart-renderer.d.ts.map +1 -1
  16. package/chart/chart-renderer.js +335 -72
  17. package/chart/chart-renderer.js.map +1 -1
  18. package/chart/chart-theme.d.ts +38 -0
  19. package/chart/chart-theme.d.ts.map +1 -0
  20. package/chart/chart-theme.js +47 -0
  21. package/chart/chart-theme.js.map +1 -0
  22. package/chart/model/chart-model-mapper.d.ts +38 -0
  23. package/chart/model/chart-model-mapper.d.ts.map +1 -0
  24. package/chart/model/chart-model-mapper.js +128 -0
  25. package/chart/model/chart-model-mapper.js.map +1 -0
  26. package/chart/model/chart-model.d.ts +153 -0
  27. package/chart/model/chart-model.d.ts.map +1 -0
  28. package/chart/model/chart-model.js +79 -0
  29. package/chart/model/chart-model.js.map +1 -0
  30. package/chart/range-chart-controller.d.ts +68 -0
  31. package/chart/range-chart-controller.d.ts.map +1 -0
  32. package/chart/range-chart-controller.js +209 -0
  33. package/chart/range-chart-controller.js.map +1 -0
  34. package/chart/range-chart-service.d.ts +78 -0
  35. package/chart/range-chart-service.d.ts.map +1 -0
  36. package/chart/range-chart-service.js +162 -0
  37. package/chart/range-chart-service.js.map +1 -0
  38. package/core/grid-api.d.ts +20 -0
  39. package/core/grid-api.d.ts.map +1 -1
  40. package/core/grid-api.js +41 -0
  41. package/core/grid-api.js.map +1 -1
  42. package/core/grid-context.d.ts +7 -0
  43. package/core/grid-context.d.ts.map +1 -1
  44. package/core/grid-core.d.ts.map +1 -1
  45. package/core/grid-core.js +21 -9
  46. package/core/grid-core.js.map +1 -1
  47. package/package.json +57 -70
  48. package/styles/base/chart-config.css.d.ts +10 -0
  49. package/styles/base/chart-config.css.d.ts.map +1 -0
  50. package/styles/base/chart-config.css.js +126 -0
  51. package/styles/base/chart-config.css.js.map +1 -0
  52. package/styles/base/chart-controls.css.d.ts +7 -0
  53. package/styles/base/chart-controls.css.d.ts.map +1 -0
  54. package/styles/base/chart-controls.css.js +165 -0
  55. package/styles/base/chart-controls.css.js.map +1 -0
  56. package/styles/base/chart-panel.css.d.ts +1 -1
  57. package/styles/base/chart-panel.css.d.ts.map +1 -1
  58. package/styles/base/chart-panel.css.js +12 -4
  59. package/styles/base/chart-panel.css.js.map +1 -1
  60. package/styles/base-styles.d.ts.map +1 -1
  61. package/styles/base-styles.js +4 -0
  62. package/styles/base-styles.js.map +1 -1
  63. package/types/event.types.d.ts +29 -0
  64. package/types/event.types.d.ts.map +1 -1
  65. package/types/event.types.js +1 -0
  66. package/types/event.types.js.map +1 -1
  67. package/types/grid.types.d.ts +51 -0
  68. package/types/grid.types.d.ts.map +1 -1
@@ -5,14 +5,25 @@ const ICON_FULLSCREEN = `<svg width="14" height="14" viewBox="0 0 24 24" fill="n
5
5
  const ICON_FULLSCREEN_EXIT = `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3"/></svg>`;
6
6
  const ICON_DOTS = `<svg width="4" height="16" viewBox="0 0 4 16" fill="currentColor"><circle cx="2" cy="2" r="1.5"/><circle cx="2" cy="8" r="1.5"/><circle cx="2" cy="14" r="1.5"/></svg>`;
7
7
  const ICON_DOWNLOAD = `<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>`;
8
+ const ICON_EDIT = `<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>`;
9
+ const ICON_SETTINGS = `<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/><line x1="1" y1="14" x2="7" y2="14"/><line x1="9" y1="8" x2="15" y2="8"/><line x1="17" y1="16" x2="23" y2="16"/></svg>`;
10
+ const ICON_UNLINK = `<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18.36 5.64a5 5 0 0 1 0 7.07l-1.5 1.5"/><path d="M7.14 18.36a5 5 0 0 1 0-7.07l1.5-1.5"/><line x1="2" y1="2" x2="22" y2="22"/></svg>`;
8
11
  export class ChartPanel {
9
12
  constructor(containerEl) {
10
13
  this.containerEl = containerEl;
11
14
  this.backdropEl = null;
12
15
  this.cardEl = null;
16
+ this.bodyEl = null;
17
+ this.chartAreaEl = null;
13
18
  this.canvasEl = null;
14
19
  this.dotsMenuEl = null;
15
20
  this.dotsBtnEl = null;
21
+ /**
22
+ * Document-level `mousedown` listener that dismisses the download menu when
23
+ * the user clicks outside it. Held so it can be detached on close, avoiding a
24
+ * leaked listener across panel lifecycles.
25
+ */
26
+ this.outsideMousedownHandler = null;
16
27
  this.fullscreenBtnEl = null;
17
28
  this.legendEl = null;
18
29
  this.renderer = null;
@@ -26,6 +37,64 @@ export class ChartPanel {
26
37
  /** Current top-left position of the card within the backdrop. */
27
38
  this.panelX = 0;
28
39
  this.panelY = 0;
40
+ /** Controller that supplies render options and handles menu/drag events. */
41
+ this.host = null;
42
+ /** Guards {@link close} against re-entrancy when the host disposes us. */
43
+ this.closing = false;
44
+ }
45
+ /** Attaches the controlling host. Must be set before {@link open}. */
46
+ setHost(host) {
47
+ this.host = host;
48
+ }
49
+ /**
50
+ * Replaces the chart data and re-renders. Called by the host when the model
51
+ * changes or the linked grid data refreshes. Rebuilds the interactive legend.
52
+ */
53
+ update(data) {
54
+ this.currentData = data;
55
+ if (data && data.datasets.length > 1)
56
+ this.buildLegend(data);
57
+ else if (this.legendEl)
58
+ this.legendEl.innerHTML = '';
59
+ this.renderChart();
60
+ }
61
+ /** The chart card element, for external docking (e.g. the config tool panel). */
62
+ getCardElement() {
63
+ return this.cardEl;
64
+ }
65
+ /**
66
+ * The scrollable body element that hosts the canvas. The configuration drawer
67
+ * mounts here so it slides in over the plot area while the header (close /
68
+ * fullscreen) and legend stay accessible.
69
+ */
70
+ getBodyElement() {
71
+ return this.bodyEl;
72
+ }
73
+ /**
74
+ * Reserves `px` of space on the right of the plot for the configuration drawer,
75
+ * so the chart reflows beside it instead of being hidden underneath. Passing 0
76
+ * releases the reservation. The chart re-renders to fill the new area (the
77
+ * chart-area ResizeObserver also fires as the reflow transition runs).
78
+ */
79
+ setConfigReserve(px) {
80
+ if (!this.chartAreaEl)
81
+ return;
82
+ this.chartAreaEl.style.right = `${Math.max(0, px)}px`;
83
+ this.renderChart();
84
+ }
85
+ /** Updates the chart type used for subsequent renders. */
86
+ setChartType(type) {
87
+ this.currentType = type;
88
+ }
89
+ /** Returns a data-URL snapshot of the current chart, or null if not rendered. */
90
+ getImageDataURL(format = 'png') {
91
+ if (!this.canvasEl)
92
+ return null;
93
+ return this.canvasEl.toDataURL(`image/${format}`, 0.95);
94
+ }
95
+ /** Triggers a browser download of the chart. */
96
+ download(format = 'png') {
97
+ this.downloadChart(format);
29
98
  }
30
99
  open(type, title, data) {
31
100
  this.close();
@@ -42,6 +111,16 @@ export class ChartPanel {
42
111
  }
43
112
  }
44
113
  close() {
114
+ if (this.closing)
115
+ return;
116
+ this.closing = true;
117
+ // Whether an actual panel was mounted. `open()` calls `close()` first to
118
+ // reset state; on a fresh panel nothing is mounted, and in that case we must
119
+ // NOT fire `onClose` — doing so would dispose the just-created controller
120
+ // before it ever renders. Only a real close (× button, backdrop click,
121
+ // dispose) should notify the host.
122
+ const wasMounted = this.backdropEl !== null;
123
+ this.detachOutsideMousedown();
45
124
  this.resizeObserver?.disconnect();
46
125
  this.resizeObserver = null;
47
126
  this.renderer?.destroy();
@@ -49,20 +128,24 @@ export class ChartPanel {
49
128
  this.backdropEl?.remove();
50
129
  this.backdropEl = null;
51
130
  this.cardEl = null;
131
+ this.bodyEl = null;
132
+ this.chartAreaEl = null;
52
133
  this.canvasEl = null;
53
134
  this.dotsMenuEl = null;
54
135
  this.dotsBtnEl = null;
55
136
  this.fullscreenBtnEl = null;
56
137
  this.legendEl = null;
57
138
  this.currentData = null;
139
+ const host = this.host;
140
+ this.closing = false;
141
+ if (wasMounted)
142
+ host?.onClose();
58
143
  }
59
144
  buildDom(title, isEmpty) {
60
145
  const backdrop = document.createElement('div');
61
146
  backdrop.className = 'pg-chart-panel-backdrop pg-chart-panel-backdrop--open';
62
- backdrop.addEventListener('mousedown', (e) => {
63
- if (e.target === backdrop)
64
- this.close();
65
- });
147
+ // Intentionally no outside-click-to-close: the panel is dismissed only via
148
+ // its own close (×) button, so a stray click on the grid never loses it.
66
149
  const card = document.createElement('div');
67
150
  card.className = 'pg-chart-panel';
68
151
  backdrop.appendChild(card);
@@ -89,9 +172,15 @@ export class ChartPanel {
89
172
  header.appendChild(titleEl);
90
173
  header.appendChild(actions);
91
174
  card.appendChild(header);
92
- // Body
175
+ // Body: a positioning context that holds the chart area and, when open, the
176
+ // sliding configuration drawer. The chart area reflows (shrinks) to sit
177
+ // beside the drawer rather than being hidden beneath it.
93
178
  const body = document.createElement('div');
94
179
  body.className = 'pg-chart-panel__body';
180
+ const chartArea = document.createElement('div');
181
+ chartArea.className = 'pg-chart-panel__chart-area';
182
+ body.appendChild(chartArea);
183
+ this.chartAreaEl = chartArea;
95
184
  if (isEmpty) {
96
185
  const emptyEl = document.createElement('div');
97
186
  emptyEl.className = 'pg-chart-panel__empty';
@@ -100,49 +189,18 @@ export class ChartPanel {
100
189
  <span class="pg-chart-panel__empty-text">No chart data available</span>
101
190
  <span class="pg-chart-panel__empty-sub">Select cells that include Number, Currency, or Percentage columns</span>
102
191
  `;
103
- body.appendChild(emptyEl);
192
+ chartArea.appendChild(emptyEl);
104
193
  }
105
194
  else {
106
195
  const canvas = document.createElement('canvas');
107
196
  canvas.className = 'pg-chart-panel__canvas';
108
- body.appendChild(canvas);
109
- const dotsBtn = document.createElement('button');
110
- dotsBtn.className = 'pg-chart-panel__dots-btn';
111
- dotsBtn.title = 'Download';
112
- dotsBtn.innerHTML = ICON_DOTS;
113
- const dotsMenu = document.createElement('div');
114
- dotsMenu.className = 'pg-chart-panel__dots-menu';
115
- const pngItem = document.createElement('button');
116
- pngItem.className = 'pg-chart-panel__dots-item';
117
- pngItem.innerHTML = `${ICON_DOWNLOAD} Download PNG`;
118
- pngItem.addEventListener('click', () => { this.downloadChart('png'); this.closeDotsMenu(); });
119
- const jpegItem = document.createElement('button');
120
- jpegItem.className = 'pg-chart-panel__dots-item';
121
- jpegItem.innerHTML = `${ICON_DOWNLOAD} Download JPEG`;
122
- jpegItem.addEventListener('click', () => { this.downloadChart('jpeg'); this.closeDotsMenu(); });
123
- dotsMenu.appendChild(pngItem);
124
- dotsMenu.appendChild(jpegItem);
125
- dotsBtn.addEventListener('click', (e) => {
126
- e.stopPropagation();
127
- const isOpen = dotsMenu.classList.contains('pg-chart-panel__dots-menu--open');
128
- if (isOpen) {
129
- this.closeDotsMenu();
130
- }
131
- else {
132
- dotsMenu.classList.add('pg-chart-panel__dots-menu--open');
133
- dotsBtn.classList.add('pg-chart-panel__dots-btn--active');
134
- setTimeout(() => {
135
- document.addEventListener('mousedown', () => this.closeDotsMenu(), { once: true });
136
- });
137
- }
138
- });
139
- body.appendChild(dotsBtn);
140
- body.appendChild(dotsMenu);
197
+ chartArea.appendChild(canvas);
141
198
  this.canvasEl = canvas;
142
- this.dotsMenuEl = dotsMenu;
143
- this.dotsBtnEl = dotsBtn;
199
+ this.buildDotsMenu(chartArea);
200
+ // Observe the chart area (not the whole body) so the chart re-renders as it
201
+ // reflows when the configuration drawer opens and closes.
144
202
  this.resizeObserver = new ResizeObserver(() => { this.renderChart(); });
145
- this.resizeObserver.observe(body);
203
+ this.resizeObserver.observe(chartArea);
146
204
  }
147
205
  card.appendChild(body);
148
206
  // Legend sits below the body in the card's flex column; height is 0 when
@@ -154,10 +212,76 @@ export class ChartPanel {
154
212
  this.containerEl.appendChild(backdrop);
155
213
  this.backdropEl = backdrop;
156
214
  this.cardEl = card;
215
+ this.bodyEl = body;
157
216
  this.fullscreenBtnEl = fullscreenBtn;
158
217
  this.centerPanel();
159
218
  this.attachDrag(header);
160
219
  }
220
+ /**
221
+ * Builds the `⋮` toolbar button and its dropdown menu. Items come from the
222
+ * host (Edit Chart / Advanced Settings / Unlink / Download); Download is always
223
+ * handled internally. Skipped entirely when the host returns no items.
224
+ */
225
+ buildDotsMenu(body) {
226
+ const items = this.host ? this.host.getToolbarItems() : ['download'];
227
+ if (items.length === 0)
228
+ return;
229
+ const dotsBtn = document.createElement('button');
230
+ dotsBtn.className = 'pg-chart-panel__dots-btn';
231
+ dotsBtn.title = 'Chart menu';
232
+ dotsBtn.innerHTML = ICON_DOTS;
233
+ const dotsMenu = document.createElement('div');
234
+ dotsMenu.className = 'pg-chart-panel__dots-menu';
235
+ for (const entry of this.resolveMenuEntries(items)) {
236
+ const btn = document.createElement('button');
237
+ btn.className = 'pg-chart-panel__dots-item';
238
+ if (entry.item === 'unlink' && this.host?.isUnlinked()) {
239
+ btn.classList.add('pg-chart-panel__dots-item--disabled');
240
+ btn.disabled = true;
241
+ }
242
+ btn.innerHTML = `${entry.icon} ${entry.label}`;
243
+ btn.addEventListener('click', () => { entry.action(); this.closeDotsMenu(); });
244
+ dotsMenu.appendChild(btn);
245
+ }
246
+ dotsBtn.addEventListener('click', (e) => {
247
+ e.stopPropagation();
248
+ const isOpen = dotsMenu.classList.contains('pg-chart-panel__dots-menu--open');
249
+ if (isOpen) {
250
+ this.closeDotsMenu();
251
+ }
252
+ else {
253
+ dotsMenu.classList.add('pg-chart-panel__dots-menu--open');
254
+ dotsBtn.classList.add('pg-chart-panel__dots-btn--active');
255
+ this.attachOutsideMousedown();
256
+ }
257
+ });
258
+ body.appendChild(dotsBtn);
259
+ body.appendChild(dotsMenu);
260
+ this.dotsMenuEl = dotsMenu;
261
+ this.dotsBtnEl = dotsBtn;
262
+ }
263
+ /** Expands the requested toolbar items into concrete menu entries (labels + actions). */
264
+ resolveMenuEntries(items) {
265
+ const entries = [];
266
+ for (const item of items) {
267
+ switch (item) {
268
+ case 'edit':
269
+ entries.push({ item, label: 'Edit Chart', icon: ICON_EDIT, action: () => this.host?.onEditChart() });
270
+ break;
271
+ case 'advancedSettings':
272
+ entries.push({ item, label: 'Advanced Settings', icon: ICON_SETTINGS, action: () => this.host?.onAdvancedSettings() });
273
+ break;
274
+ case 'unlink':
275
+ entries.push({ item, label: 'Unlink from Grid', icon: ICON_UNLINK, action: () => this.host?.onUnlink() });
276
+ break;
277
+ case 'download':
278
+ entries.push({ item, label: 'Download PNG', icon: ICON_DOWNLOAD, action: () => this.downloadChart('png') });
279
+ entries.push({ item, label: 'Download JPEG', icon: ICON_DOWNLOAD, action: () => this.downloadChart('jpeg') });
280
+ break;
281
+ }
282
+ }
283
+ return entries;
284
+ }
161
285
  /**
162
286
  * Position the card at the center of the backdrop.
163
287
  * Called once after building the DOM and on fullscreen exit.
@@ -178,6 +302,7 @@ export class ChartPanel {
178
302
  return;
179
303
  this.cardEl.style.left = `${this.panelX}px`;
180
304
  this.cardEl.style.top = `${this.panelY}px`;
305
+ this.host?.onMove(this.cardEl.getBoundingClientRect());
181
306
  }
182
307
  /**
183
308
  * Wire drag-to-move onto the header bar.
@@ -218,6 +343,36 @@ export class ChartPanel {
218
343
  closeDotsMenu() {
219
344
  this.dotsMenuEl?.classList.remove('pg-chart-panel__dots-menu--open');
220
345
  this.dotsBtnEl?.classList.remove('pg-chart-panel__dots-btn--active');
346
+ this.detachOutsideMousedown();
347
+ }
348
+ /**
349
+ * Registers a document-level `mousedown` listener that dismisses the download
350
+ * menu on an outside click.
351
+ *
352
+ * Clicks that land on the menu or its trigger button are deliberately ignored:
353
+ * `mousedown` fires before `click`, so closing the menu here (which sets it to
354
+ * `display: none`) would remove the menu item from the layout before its own
355
+ * `click` handler could run — silently swallowing the download. Guarding on the
356
+ * target keeps the menu alive long enough for the item's `click` to fire, then
357
+ * that handler closes the menu itself.
358
+ */
359
+ attachOutsideMousedown() {
360
+ this.detachOutsideMousedown();
361
+ const handler = (e) => {
362
+ const target = e.target;
363
+ if (this.dotsMenuEl?.contains(target) || this.dotsBtnEl?.contains(target))
364
+ return;
365
+ this.closeDotsMenu();
366
+ };
367
+ this.outsideMousedownHandler = handler;
368
+ document.addEventListener('mousedown', handler);
369
+ }
370
+ /** Removes the outside-click listener registered by {@link attachOutsideMousedown}. */
371
+ detachOutsideMousedown() {
372
+ if (this.outsideMousedownHandler) {
373
+ document.removeEventListener('mousedown', this.outsideMousedownHandler);
374
+ this.outsideMousedownHandler = null;
375
+ }
221
376
  }
222
377
  toggleFullscreen() {
223
378
  if (!this.cardEl || !this.fullscreenBtnEl)
@@ -252,14 +407,19 @@ export class ChartPanel {
252
407
  if (!this.renderer) {
253
408
  this.renderer = new ChartRenderer(this.canvasEl);
254
409
  }
255
- this.renderer.render(this.currentData, {
256
- type: this.currentType,
257
- width: w,
258
- height: h,
259
- showLegend: false,
260
- showGrid: true,
261
- animationDuration: 400,
262
- });
410
+ this.renderer.render(this.currentData, this.resolveRenderOptions(w, h));
411
+ }
412
+ /**
413
+ * Builds the render options for the current size. Prefers the host's model-derived
414
+ * options, then forces `showLegend: false` because the panel draws its own
415
+ * interactive HTML legend below the canvas. Falls back to a minimal default when
416
+ * no host is attached.
417
+ */
418
+ resolveRenderOptions(width, height) {
419
+ const base = this.host
420
+ ? this.host.getRenderOptions({ width, height })
421
+ : { type: this.currentType, width, height, showGrid: true, animationDuration: 400 };
422
+ return { ...base, type: this.currentType, width, height, showLegend: false };
263
423
  }
264
424
  /**
265
425
  * Populates the HTML legend bar with one clickable button per dataset.
@@ -309,14 +469,7 @@ export class ChartPanel {
309
469
  }
310
470
  const item = this.legendEl?.children[index];
311
471
  item?.classList.toggle('pg-chart-panel__legend-item--hidden', !nowVisible);
312
- this.renderer.toggleSeries(index, nowVisible, this.currentData, {
313
- type: this.currentType,
314
- width: w,
315
- height: h,
316
- showLegend: false,
317
- showGrid: true,
318
- animationDuration: 400,
319
- });
472
+ this.renderer.toggleSeries(index, nowVisible, this.currentData, this.resolveRenderOptions(w, h));
320
473
  }
321
474
  downloadChart(format) {
322
475
  if (!this.canvasEl)
@@ -1 +1 @@
1
- {"version":3,"file":"chart-panel.js","sourceRoot":"","sources":["../../src/chart/chart-panel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chart-panel.js","sourceRoot":"","sources":["../../src/chart/chart-panel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ChartData } from './chart-data-transformer';
2
2
  import type { ChartPanelType } from './chart-panel';
3
+ import type { LegendPosition, TextAlign } from './model/chart-model';
3
4
  export interface ChartRenderOptions {
4
5
  type: ChartPanelType | 'bar' | 'line' | 'pie' | 'doughnut';
5
6
  width?: number;
@@ -13,10 +14,51 @@ export interface ChartRenderOptions {
13
14
  smooth?: boolean;
14
15
  fontFamily?: string;
15
16
  fontSize?: number;
17
+ /**
18
+ * Axis-label / body text color. Empty string means "resolve from the active
19
+ * theme token" — the renderer fills it in per render.
20
+ */
16
21
  textColor?: string;
22
+ /** Grid-line / axis-line color. Empty string means "resolve from theme". */
17
23
  gridColor?: string;
18
24
  backgroundColor?: string;
19
25
  animationDuration?: number;
26
+ /** Main chart title drawn above the plot. Empty string hides the band. */
27
+ title?: string;
28
+ titleColor?: string;
29
+ titleFontSize?: number;
30
+ titleAlign?: TextAlign;
31
+ /** Subtitle drawn beneath the title. Empty string hides it. */
32
+ subtitle?: string;
33
+ subtitleColor?: string;
34
+ subtitleFontSize?: number;
35
+ subtitleAlign?: TextAlign;
36
+ /** Placement of the legend relative to the plot. */
37
+ legendPosition?: LegendPosition;
38
+ /** Horizontal (category) axis title. Empty string hides it. */
39
+ xAxisTitle?: string;
40
+ /** Vertical (value) axis title. Empty string hides it. */
41
+ yAxisTitle?: string;
42
+ axisTitleColor?: string;
43
+ /** Overrides {@link textColor} for axis tick labels when non-empty. */
44
+ axisLabelColor?: string;
45
+ /** Overrides {@link gridColor} for axis lines when non-empty. */
46
+ axisLineColor?: string;
47
+ showXTicks?: boolean;
48
+ showYTicks?: boolean;
49
+ showXLabels?: boolean;
50
+ showYLabels?: boolean;
51
+ /** Explicit color per series label; unmapped series use the theme palette. */
52
+ seriesColors?: Readonly<Record<string, string>>;
53
+ strokeWidth?: number;
54
+ /** 0–1 fill opacity for area / polar fills. */
55
+ fillOpacity?: number;
56
+ /**
57
+ * Compact preview mode: collapses every axis / label gutter to a uniform
58
+ * {@link ChartRenderOptions.padding} so the plot fills the canvas edge-to-edge.
59
+ * Used for the chart-type gallery thumbnails; has no effect on normal charts.
60
+ */
61
+ compact?: boolean;
20
62
  }
21
63
  export declare class ChartRenderer {
22
64
  private canvas;
@@ -34,7 +76,21 @@ export declare class ChartRenderer {
34
76
  private seriesScales;
35
77
  /** Active RAF IDs for per-series toggle animations, keyed by dataset index. */
36
78
  private seriesToggleRafs;
79
+ /**
80
+ * Theme colors/palette resolved once per {@link render} / {@link toggleSeries}
81
+ * call and reused across every animation and hover frame — never re-resolved
82
+ * per frame (that would force layout via `getComputedStyle`).
83
+ */
84
+ private theme;
37
85
  constructor(canvas: HTMLCanvasElement);
86
+ /**
87
+ * Resolves theme tokens once and back-fills any color/font option the caller
88
+ * left blank (empty string) with the theme value. Explicit overrides win over
89
+ * theme defaults. Mutates `options` in place and caches the resolved theme.
90
+ */
91
+ private prepareOptions;
92
+ /** Theme palette color for a given series/slice index, cycling as needed. */
93
+ private paletteColor;
38
94
  render(data: ChartData, opts?: ChartRenderOptions): void;
39
95
  destroy(): void;
40
96
  /**
@@ -62,8 +118,39 @@ export declare class ChartRenderer {
62
118
  private drawBarHover;
63
119
  private drawTooltip;
64
120
  private animate;
121
+ /**
122
+ * Vertical space (px) reserved at the top of the canvas for the title and
123
+ * subtitle bands. Returns 0 when neither is set so no space is wasted.
124
+ */
125
+ private titleBandHeight;
126
+ /** Whether a shared series legend should be drawn. */
127
+ private legendActive;
128
+ /**
129
+ * Whether the legend may be placed on a side (left/right). Only cartesian
130
+ * charts (which route layout through {@link getPlotArea}) reserve side space;
131
+ * pie/polar/funnel/bar keep the legend on the bottom to avoid overlap.
132
+ */
133
+ private supportsSideLegend;
134
+ /** Effective legend position, clamped to bottom for non-cartesian charts. */
135
+ private effectiveLegendPosition;
136
+ private static readonly LEGEND_BAND;
137
+ private static readonly LEGEND_SIDE;
65
138
  private getPlotArea;
66
139
  private draw;
140
+ /**
141
+ * Draws the chart title and subtitle in the reserved top band, honoring the
142
+ * configured color (falling back to theme) and alignment. No-op when both are
143
+ * empty.
144
+ */
145
+ private drawTitleBlock;
146
+ /** X coordinate for a given horizontal alignment across the canvas width. */
147
+ private alignedX;
148
+ /**
149
+ * Draws the x- and y-axis titles (cartesian charts only). The y-axis title is
150
+ * rotated −90° and centered along the left margin; the x-axis title sits below
151
+ * the category labels.
152
+ */
153
+ private drawAxisTitles;
67
154
  private drawColumnGrouped;
68
155
  private drawColumnStacked;
69
156
  private drawColumn100Stacked;
@@ -83,11 +170,21 @@ export declare class ChartRenderer {
83
170
  */
84
171
  private drawGridLinesRelative;
85
172
  private drawLegend;
173
+ /** Horizontal legend row along the top or bottom edge. */
174
+ private drawLegendHorizontal;
175
+ /** Vertical legend stack along the left or right edge (cartesian charts only). */
176
+ private drawLegendVertical;
86
177
  private drawAxes;
87
178
  private niceMax;
88
179
  private getLabelStep;
89
180
  private easeOutQuart;
90
181
  private truncate;
182
+ /**
183
+ * Converts a 0–1 opacity into a two-digit hex alpha suffix for `#rrggbb` +
184
+ * `aa` color strings. Clamped to the valid range so out-of-bounds model values
185
+ * never produce a malformed color.
186
+ */
187
+ private alphaHex;
91
188
  private formatNum;
92
189
  }
93
190
  //# sourceMappingURL=chart-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart-renderer.d.ts","sourceRoot":"","sources":["../../src/chart/chart-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAoCD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,KAAK,CAAuB;IAGpC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,UAAU,CAAuB;IACzC,4EAA4E;IAC5E,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,WAAW,CAA6C;IAEhE,qFAAqF;IACrF,OAAO,CAAC,YAAY,CAAgB;IACpC,+EAA+E;IAC/E,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,MAAM,EAAE,iBAAiB;IAQrC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,kBAA+C,GAAG,IAAI;IAwBpF,OAAO,IAAI,IAAI;IAaf;;;;;;;;;OASG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAE,kBAA+C,GAAG,IAAI;IAkC7H,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,mBAAmB;IAkB3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,kBAAkB;IA6E1B,OAAO,CAAC,YAAY;IA2CpB,OAAO,CAAC,WAAW;IAuHnB,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,IAAI;IAmCZ,OAAO,CAAC,iBAAiB;IAoEzB,OAAO,CAAC,iBAAiB;IAoDzB,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,cAAc;IAyEtB,OAAO,CAAC,cAAc;IAwEtB,OAAO,CAAC,iBAAiB;IAmEzB,OAAO,CAAC,QAAQ;IAmDhB,OAAO,CAAC,QAAQ;IAqDhB,OAAO,CAAC,OAAO;IAwDf,OAAO,CAAC,WAAW;IAwCnB,OAAO,CAAC,SAAS;IA0DjB,OAAO,CAAC,UAAU;IAyClB,OAAO,CAAC,aAAa;IAmBrB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,UAAU;IAoBlB,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"chart-renderer.d.ts","sourceRoot":"","sources":["../../src/chart/chart-renderer.ts"],"names":[],"mappings":"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"}