[READ-ONLY] Mirror of https://github.com/graphieros/vue-data-ui. An open source user-empowering data visualization Vue 3 components library for eloquent data storytelling vue-data-ui.graphieros.com/
charts components-library dashboard data-storytelling data-visualization donut gauge heatmap quadrant radar rating-stars scatter screenshot skeleton-loader sparkline table vue-data-ui vue3 vuejs vuejs3
3

Configure Feed

Select the types of activity you want to include in your feed.

chore(VueUiXy): add type defs for emits

graphieros (May 19, 2026, 7:49 AM +0200) 889f3735 85f09874

+1641 -1430
+1508 -1427
manual-testing/backend/database.json
··· 1 1 { 2 - "items": [ 3 - { 4 - "title": "Add scoped slots", 5 - "component": "vue-ui-horizontal-bar.vue", 6 - "description": "Find a way to add foreignObjects in scoped slots for nameLabels and parentLabels, allowing the display of richer content. Problem is using foreignObjects fails the auto size feature related to the parent g element width.", 7 - "priority": 0, 8 - "author": "graphieros", 9 - "done": false, 10 - "exchanges": [ 11 - { 12 - "author": "graphieros", 13 - "comment": "Try out an #image slot in parentLabels & nameLabels using an image tag in the svg. It's very specific, but would make sense for some use cases.", 14 - "id": "4300e984-1cc9-4e42-8b97-c90739dd1b80", 15 - "createdAt": 1767077128316 16 - } 17 - ], 18 - "id": "2b103ff3-de84-4843-9ccd-29b88daf9393", 19 - "createdAt": 1767035715509, 20 - "type": "feature", 21 - "updatedAt": 1767541341951, 22 - "withComponentCheckList": false, 23 - "withCustomCheckList": false, 24 - "checkList": {}, 25 - "customCheckList": {} 26 - }, 27 - { 28 - "title": "Add stats tab in todo app", 29 - "component": "TodoList.vue", 30 - "description": "Add some stats in a tab of the todo app. A donut with breakdown per open/closed, another per priority", 31 - "priority": 0, 32 - "author": "graphieros", 33 - "done": true, 34 - "exchanges": [], 35 - "id": "36d9df24-93cd-4da9-a652-1bdf8efc7ed1", 36 - "createdAt": 1767036688923, 37 - "type": "dev", 38 - "updatedAt": 1767076725682, 39 - "withComponentCheckList": false, 40 - "withCustomCheckList": false, 41 - "checkList": {}, 42 - "customCheckList": {} 43 - }, 44 - { 45 - "title": "Add filter by priority", 46 - "component": "TodoList.vue", 47 - "description": "Add a filter feature by priority and filter by component, description, in the Open tab of the todo list.", 48 - "priority": 1, 49 - "author": "graphieros", 50 - "done": true, 51 - "exchanges": [], 52 - "id": "43545a6f-c728-4d17-b5c0-a6ad3d539853", 53 - "createdAt": 1767037191862, 54 - "type": "dev", 55 - "updatedAt": 1767098908436, 56 - "withComponentCheckList": false, 57 - "withCustomCheckList": false, 58 - "checkList": {}, 59 - "customCheckList": {} 60 - }, 61 - { 62 - "title": "Tooltips in dialogs", 63 - "component": "Tooltip.vue", 64 - "description": "Since tooltips are teleported to the body, they appear behind a dialog if the chart is placed inside. Add a tooltip.teleportTo config property, defaulting to 'body'. It should work with an id selector.", 65 - "priority": 2, 66 - "author": "graphieros", 67 - "done": true, 68 - "exchanges": [ 69 - { 70 - "author": "graphieros", 71 - "comment": "Fixed in 3.9.21", 72 - "id": "a2cb81b3-1525-4f58-ac4d-c2d0a9b7061a", 73 - "createdAt": 1767172521830 74 - } 75 - ], 76 - "id": "817f52c7-0ab8-4068-aeb0-49e10cbb27ac", 77 - "createdAt": 1767078433963, 78 - "type": "bug", 79 - "updatedAt": 1767172522614, 80 - "withComponentCheckList": false, 81 - "withCustomCheckList": false, 82 - "checkList": {}, 83 - "customCheckList": {} 84 - }, 85 - { 86 - "title": "User options cropped", 87 - "component": "UserOptions.vue", 88 - "description": "When placed inside a parent with hidden overflow, UserOptions gets cropped, making it impossible to select actions. Solution: use the popover api, and default to current behavior if not supported.", 89 - "priority": 2, 90 - "author": "graphieros", 91 - "done": true, 92 - "exchanges": [ 93 - { 94 - "author": "graphieros", 95 - "comment": "Fixed in 3.9.22", 96 - "id": "386f7927-5e9c-464e-a4e1-1ab5119d5627", 97 - "createdAt": 1767172494542 98 - } 99 - ], 100 - "id": "9b075f5f-4791-4349-9a90-6ec936240ab7", 101 - "createdAt": 1767117444470, 102 - "type": "bug", 103 - "updatedAt": 1767177706324, 104 - "withComponentCheckList": false, 105 - "withCustomCheckList": false, 106 - "checkList": {}, 107 - "customCheckList": {} 108 - }, 109 - { 110 - "title": "Bump chart", 111 - "component": "vue-ui-bump.vue", 112 - "description": "Create a bump chart", 113 - "priority": 0, 114 - "author": "graphieros", 115 - "done": true, 116 - "exchanges": [ 117 - { 118 - "author": "graphieros", 119 - "comment": "Features: start & end labels; display rank in markers; highlight series on hover; no tooltip;", 120 - "id": "a19948c7-df64-40c9-98f3-525b5c9cf14e", 121 - "createdAt": 1767263333551 122 - } 123 - ], 124 - "type": "feature", 125 - "id": "36df6443-e204-495c-8d74-a70e147397cd", 126 - "createdAt": 1767245054032, 127 - "updatedAt": 1767377554990, 128 - "withComponentCheckList": false, 129 - "withCustomCheckList": false, 130 - "checkList": {}, 131 - "customCheckList": {} 132 - }, 133 - { 134 - "title": "Add scoped slots for data tables", 135 - "component": "All components with built-in tables", 136 - "description": "Add #data-table-th and #data-table-td scoped slots where DataTable.vue is used", 137 - "priority": 0, 138 - "author": "graphieros", 139 - "done": true, 140 - "exchanges": [ 141 - { 142 - "author": "graphieros", 143 - "comment": "Will not be worked on for now.\nSome <th> els just expose html content.", 144 - "id": "9fa4060b-7c5c-470e-a3df-6ab915fc9d39", 145 - "createdAt": 1767464750951 146 - } 147 - ], 148 - "type": "feature", 149 - "id": "4592ae44-f2ad-4ee4-8604-fe40c6369f25", 150 - "createdAt": 1767291561889, 151 - "updatedAt": 1767464755760, 152 - "withComponentCheckList": false, 153 - "withCustomCheckList": false, 154 - "checkList": {}, 155 - "customCheckList": {} 156 - }, 157 - { 158 - "title": "Minimal themes", 159 - "component": "All", 160 - "description": "Minimal theme with: greyscales, no legend, no user options menu. 2 variants: \"minimal\" & \"minimalDark\"", 161 - "priority": 1, 162 - "author": "graphieros", 163 - "done": true, 164 - "exchanges": [], 165 - "type": "feature", 166 - "id": "eef5958d-4e2e-40e9-af8b-31cc52b48b49", 167 - "createdAt": 1767474015565, 168 - "updatedAt": 1767551300061, 169 - "withComponentCheckList": true, 170 - "withCustomCheckList": false, 171 - "checkList": { 172 - "VueUi3dBar": true, 173 - "VueUiAgePyramid": true, 174 - "VueUiAnnotator": true, 175 - "VueUiBullet": true, 176 - "VueUiBump": true, 177 - "VueUiCandlestick": true, 178 - "VueUiCarouselTable": true, 179 - "VueUiChestnut": true, 180 - "VueUiChord": true, 181 - "VueUiCirclePack": true, 182 - "VueUiDag": true, 183 - "VueUiDashboard": true, 184 - "VueUiDigits": true, 185 - "VueUiDonut": true, 186 - "VueUiDonutEvolution": true, 187 - "VueUiDumbbell": true, 188 - "VueUiFlow": true, 189 - "VueUiFunnel": true, 190 - "VueUiGalaxy": true, 191 - "VueUiGauge": true, 192 - "VueUiGeo": true, 193 - "VueUiGizmo": true, 194 - "VueUiHeatmap": true, 195 - "VueUiHistoryPlot": true, 196 - "VueUiHorizontalBar": true, 197 - "VueUiKpi": true, 198 - "VueUiMiniLoader": true, 199 - "VueUiMolecule": true, 200 - "VueUiMoodRadar": true, 201 - "VueUiNestedDonuts": true, 202 - "VueUiOnion": true, 203 - "VueUiParallelCoordinatePlot": true, 204 - "VueUiQuadrant": true, 205 - "VueUiQuickChart": true, 206 - "VueUiRadar": true, 207 - "VueUiRating": true, 208 - "VueUiRelationCircle": true, 209 - "VueUiRidgeline": true, 210 - "VueUiRings": true, 211 - "VueUiScatter": true, 212 - "VueUiSkeleton": true, 213 - "VueUiSmiley": true, 214 - "VueUiSparkbar": true, 215 - "VueUiSparkgauge": true, 216 - "VueUiSparkHistogram": true, 217 - "VueUiSparkline": true, 218 - "VueUiSparkStackbar": true, 219 - "VueUiSparkTrend": true, 220 - "VueUiStackbar": true, 221 - "VueUiStackline": true, 222 - "VueUiStripPlot": true, 223 - "VueUiTable": true, 224 - "VueUiTableSparkline": true, 225 - "VueUiThermometer": true, 226 - "VueUiTimer": true, 227 - "VueUiTiremarks": true, 228 - "VueUiTreemap": true, 229 - "VueUiWaffle": true, 230 - "VueUiWheel": true, 231 - "VueUiWordCloud": true, 232 - "VueUiWorld": true, 233 - "VueUiXy": true, 234 - "VueUiXyCanvas": true 235 - } 236 - }, 237 - { 238 - "title": "Themes page", 239 - "component": "Docs website", 240 - "description": "Add a page dedicated to themes. Set up a dashboard with major chart types, with a theme toggle", 241 - "priority": 1, 242 - "author": "graphieros", 243 - "done": true, 244 - "exchanges": [], 245 - "type": "docs", 246 - "id": "61122b28-40a8-4a3e-89f6-6ea778c7c7d1", 247 - "createdAt": 1767508921021, 248 - "updatedAt": 1767596514628, 249 - "withComponentCheckList": false, 250 - "withCustomCheckList": true, 251 - "checkList": {}, 252 - "customCheckList": { 253 - "Dashboard component": true, 254 - "Themes toggle": true 255 - } 256 - }, 257 - { 258 - "title": "Remove installation.md", 259 - "component": "Build", 260 - "description": "Remove the documentation directory from the build, because the main README has all the info already.", 261 - "priority": 0, 262 - "author": "graphieros", 263 - "done": true, 264 - "exchanges": [], 265 - "type": "docs", 266 - "id": "7b8fc776-4651-4e0e-bc1a-008549eb8b50", 267 - "createdAt": 1767509634289, 268 - "updatedAt": 1771676170822, 269 - "withComponentCheckList": false, 270 - "withCustomCheckList": false, 271 - "checkList": {}, 272 - "customCheckList": {} 273 - }, 274 - { 275 - "title": "Custom checklist", 276 - "component": "PendingTodoList.vue", 277 - "description": "Enable custom checklist, with any number of items, and show progression gauge", 278 - "priority": 0, 279 - "author": "graphieros", 280 - "done": true, 281 - "exchanges": [], 282 - "type": "dev", 283 - "withComponentCheckList": false, 284 - "withCustomCheckList": false, 285 - "checkList": {}, 286 - "id": "94bc6796-7221-4c42-86a4-ba3f9b95af95", 287 - "createdAt": 1767519203208, 288 - "updatedAt": 1767540246275, 289 - "customCheckList": {} 290 - }, 291 - { 292 - "title": "Bad legend placement", 293 - "component": "vue-ui-stackline.vue", 294 - "description": "Position the legend below the zoom component.", 295 - "priority": 2, 296 - "author": "graphieros", 297 - "done": true, 298 - "exchanges": [], 299 - "type": "bug", 300 - "withComponentCheckList": false, 301 - "checkList": {}, 302 - "withCustomCheckList": false, 303 - "customCheckList": {}, 304 - "id": "f63e1a9e-2433-4ca3-917b-6514d7a00f47", 305 - "createdAt": 1767596506923, 306 - "updatedAt": 1767597515448 307 - }, 308 - { 309 - "title": "Serie segregation bars in minimap", 310 - "component": "vue-ui-xy.vue", 311 - "description": "When bars are segregated, barWidth is not recalculated in zoom minimap", 312 - "priority": 1, 313 - "author": "graphieros", 314 - "done": true, 315 - "exchanges": [], 316 - "type": "bug", 317 - "withComponentCheckList": false, 318 - "checkList": {}, 319 - "withCustomCheckList": false, 320 - "customCheckList": {}, 321 - "id": "5d75ccd1-30ff-41ae-98c1-d1009227f338", 322 - "createdAt": 1767683890024, 323 - "updatedAt": 1767694625666 324 - }, 325 - { 326 - "title": "Improve VueUiDag config for selected nodes", 327 - "component": "vue-ui-dag.vue", 328 - "description": "Add config attributes for selected nodes to set stroke, strokeWidth, fill, and related edges stroke and animated states, with distinction for upstream & downstream edges.", 329 - "priority": 0, 330 - "author": "graphieros", 331 - "done": true, 332 - "exchanges": [], 333 - "type": "feature", 334 - "withComponentCheckList": false, 335 - "checkList": {}, 336 - "withCustomCheckList": false, 337 - "customCheckList": {}, 338 - "id": "33b4453a-6c9b-4997-9e65-33f2739f9b70", 339 - "createdAt": 1767782417794, 340 - "updatedAt": 1767801222353 341 - }, 342 - { 343 - "title": "scaleMin & scaleMax not reflected in minimap", 344 - "component": "vue-ui-xy.vue", 345 - "description": "When scaleMin and / or scaleMax are set in config, the minimap remains with default min & max settings. ", 346 - "priority": 1, 347 - "author": "graphieros", 348 - "done": true, 349 - "exchanges": [], 350 - "type": "bug", 351 - "withComponentCheckList": false, 352 - "checkList": {}, 353 - "withCustomCheckList": false, 354 - "customCheckList": {}, 355 - "id": "529c7783-2a45-4a08-b26b-0ef8b2d8d0e1", 356 - "createdAt": 1768065094039, 357 - "updatedAt": 1768116054495 358 - }, 359 - { 360 - "title": "foreignObject datapoint slot", 361 - "component": "vue-ui-quadrant.vue", 362 - "description": "Add a #datapoint scoped slot exposing the datapoint data inside a foreignObject. This would allow to display rich content (icons, images) instead of default shapes. Beware of browser compatibility, as Safari sucks with foreignObjects.", 363 - "priority": 0, 364 - "author": "graphieros", 365 - "done": true, 366 - "exchanges": [], 367 - "type": "feature", 368 - "withComponentCheckList": false, 369 - "checkList": {}, 370 - "withCustomCheckList": false, 371 - "customCheckList": {}, 372 - "id": "206a2a09-b9df-4666-be92-1dd8e81b38bd", 373 - "createdAt": 1768128369314, 374 - "updatedAt": 1768149949476 375 - }, 376 - { 377 - "title": "Icon maker", 378 - "component": "ArenaVueUiIcon.vue", 379 - "description": "Add an icon maker, with preview. Also add a feature to offset a path by x and or y.", 380 - "priority": 0, 381 - "author": "graphieros", 382 - "done": true, 383 - "exchanges": [], 384 - "type": "dev", 385 - "withComponentCheckList": false, 386 - "checkList": {}, 387 - "withCustomCheckList": false, 388 - "customCheckList": {}, 389 - "id": "1d61a77b-5ded-449c-b109-9b75f73a696d", 390 - "createdAt": 1768322796718, 391 - "updatedAt": 1768324501221 392 - }, 393 - { 394 - "title": "Annotator straight lines", 395 - "component": "PenAndPaper.vue", 396 - "description": "Add a 'straight line' mode, click drag and release to set 2 coordinates for a line. An option to use an arrow at the release point could be nice. Either a new button, or the existing text/freehand is used to toggle between the 3 states.", 397 - "priority": 0, 398 - "author": "graphieros", 399 - "done": true, 400 - "exchanges": [], 401 - "type": "feature", 402 - "withComponentCheckList": false, 403 - "checkList": {}, 404 - "withCustomCheckList": false, 405 - "customCheckList": {}, 406 - "id": "ccc95bca-2f75-4051-b996-433cbc3bc8f1", 407 - "createdAt": 1768934624356, 408 - "updatedAt": 1768977507024 409 - }, 410 - { 411 - "title": "Remove overrides", 412 - "component": "Any", 413 - "description": "Remove useless overrides in prepareConfig functions for config attributes with null defaults", 414 - "priority": 0, 415 - "author": "graphieros", 416 - "done": true, 417 - "exchanges": [], 418 - "type": "feature", 419 - "withComponentCheckList": false, 420 - "checkList": {}, 421 - "withCustomCheckList": true, 422 - "customCheckList": { 423 - "vue-ui-donut": true, 424 - "vue-ui-candlestick": true, 425 - "vue-ui-donut-evolution": true, 426 - "vue-ui-heatmap": true, 427 - "vue-ui-history-plot": true, 428 - "vue-ui-nested-donuts": true, 429 - "vue-ui-quick-chart": true, 430 - "vue-ui-sparkline": true, 431 - "vue-ui-stackbar": true, 432 - "vue-ui-world": true, 433 - "vue-ui-xy-canvas": true, 434 - "vue-ui-xy": true 435 - }, 436 - "id": "78527b31-adba-4bfc-9d90-5d685d98e260", 437 - "createdAt": 1769019497584, 438 - "updatedAt": 1769065184645 439 - }, 440 - { 441 - "title": "Legend toggle", 442 - "component": "", 443 - "description": "Add an optional toggle in the legend to un|select series.", 444 - "priority": 0, 445 - "author": "graphieros", 446 - "done": true, 447 - "exchanges": [], 448 - "type": "feature", 449 - "withComponentCheckList": false, 450 - "checkList": {}, 451 - "withCustomCheckList": true, 452 - "customCheckList": { 453 - "vue-ui-xy": true, 454 - "vue-ui-donut-evolution": true, 455 - "vue-ui-donut": true, 456 - "vue-ui-nested-donuts": true, 457 - "vue-ui-horizontal-bar": true, 458 - "vue-ui-galaxy": true, 459 - "vue-ui-history-plot": true, 460 - "vue-ui-onion": true, 461 - "vue-ui-parallel-coordinate-plot": true, 462 - "vue-ui-quadrant": true, 463 - "vue-ui-quick-chart": true, 464 - "vue-ui-radar": true, 465 - "vue-ui-ridgeline": true, 466 - "vue-ui-rings": true, 467 - "vue-ui-scatter": true, 468 - "vue-ui-stackbar": true, 469 - "vue-ui-stackline": true, 470 - "vue-ui-treemap": true, 471 - "vue-ui-waffle": true, 472 - "vue-ui-world": true, 473 - "vue-ui-xy-canvas": true, 474 - "vue-ui-sparkstackbar": true 475 - }, 476 - "id": "b6517f42-f509-4753-a733-75da4efe30d8", 477 - "createdAt": 1769100362708, 478 - "updatedAt": 1769235461769 479 - }, 480 - { 481 - "title": "VueUiRings examples", 482 - "component": "", 483 - "description": "Add examples for VueUiRings (basic layout, layout with data labels)", 484 - "priority": 0, 485 - "author": "graphieros", 486 - "done": true, 487 - "exchanges": [], 488 - "type": "docs", 489 - "withComponentCheckList": false, 490 - "checkList": {}, 491 - "withCustomCheckList": false, 492 - "customCheckList": {}, 493 - "id": "19aaae9b-d741-4d08-af19-150451f3a00e", 494 - "createdAt": 1769158957994, 495 - "updatedAt": 1769247029944 496 - }, 497 - { 498 - "title": "Sparkline pulse", 499 - "component": "vue-ui-sparkline", 500 - "description": "Optional pulse config, along the path. Configurable (color, duration, size)", 501 - "priority": 2, 502 - "author": "graphieros", 503 - "done": true, 504 - "exchanges": [], 505 - "type": "feature", 506 - "withComponentCheckList": false, 507 - "checkList": {}, 508 - "withCustomCheckList": false, 509 - "customCheckList": {}, 510 - "id": "73cfb4ef-cdc9-4f12-b513-68d61ab9b51f", 511 - "createdAt": 1769258902001, 512 - "updatedAt": 1769271441343 513 - }, 514 - { 515 - "title": "zoom max width", 516 - "component": "Slicer.vue, SlicerPreview.vue", 517 - "description": "Add prop (controlled by parent config under zoom.maxWidth) and set margin: 0 auto on zoom container. Should be null by default to keep current behavior intact.", 518 - "priority": 0, 519 - "author": "graphieros", 520 - "done": true, 521 - "exchanges": [], 522 - "type": "feature", 523 - "withComponentCheckList": false, 524 - "checkList": {}, 525 - "withCustomCheckList": true, 526 - "customCheckList": { 527 - "vue-ui-xy.vue": true, 528 - "vue-ui-xy-canvas.vue": true, 529 - "vue-ui-donut-evolution.vue": true, 530 - "vue-ui-quick-chart.vue": true, 531 - "vue-ui-candlestick.vue": true, 532 - "vue-ui-stackline.vue": true, 533 - "vue-ui-stackbar.vue": true 534 - }, 535 - "id": "77718438-e0c6-40c9-af91-6ac3a470e7b4", 536 - "createdAt": 1769515698809, 537 - "updatedAt": 1769546402958 538 - }, 539 - { 540 - "title": "custom config & dataset for built-in loaders", 541 - "component": "", 542 - "description": "_", 543 - "priority": 2, 544 - "author": "graphieros", 545 - "done": true, 546 - "exchanges": [], 547 - "type": "feature", 548 - "withComponentCheckList": true, 549 - "checkList": { 550 - "VueUi3dBar": true, 551 - "VueUiAgePyramid": true, 552 - "VueUiAnnotator": true, 553 - "VueUiBullet": true, 554 - "VueUiBump": true, 555 - "VueUiCandlestick": true, 556 - "VueUiCarouselTable": true, 557 - "VueUiChestnut": true, 558 - "VueUiChord": true, 559 - "VueUiCirclePack": true, 560 - "VueUiDag": true, 561 - "VueUiDashboard": true, 562 - "VueUiDigits": true, 563 - "VueUiDonut": true, 564 - "VueUiDonutEvolution": true, 565 - "VueUiDumbbell": true, 566 - "VueUiFlow": true, 567 - "VueUiFunnel": true, 568 - "VueUiGalaxy": true, 569 - "VueUiGauge": true, 570 - "VueUiGeo": true, 571 - "VueUiGizmo": true, 572 - "VueUiHeatmap": true, 573 - "VueUiHistoryPlot": true, 574 - "VueUiHorizontalBar": true, 575 - "VueUiKpi": true, 576 - "VueUiMiniLoader": true, 577 - "VueUiMolecule": true, 578 - "VueUiMoodRadar": true, 579 - "VueUiNestedDonuts": true, 580 - "VueUiOnion": true, 581 - "VueUiParallelCoordinatePlot": true, 582 - "VueUiQuadrant": true, 583 - "VueUiQuickChart": true, 584 - "VueUiRadar": true, 585 - "VueUiRating": true, 586 - "VueUiRelationCircle": true, 587 - "VueUiRidgeline": true, 588 - "VueUiRings": true, 589 - "VueUiScatter": true, 590 - "VueUiSkeleton": true, 591 - "VueUiSmiley": true, 592 - "VueUiSparkbar": true, 593 - "VueUiSparkgauge": true, 594 - "VueUiSparkHistogram": true, 595 - "VueUiSparkline": true, 596 - "VueUiSparkStackbar": true, 597 - "VueUiSparkTrend": true, 598 - "VueUiStackbar": true, 599 - "VueUiStackline": true, 600 - "VueUiStripPlot": true, 601 - "VueUiTable": true, 602 - "VueUiTableSparkline": true, 603 - "VueUiThermometer": true, 604 - "VueUiTimer": true, 605 - "VueUiTiremarks": true, 606 - "VueUiTreemap": true, 607 - "VueUiWaffle": true, 608 - "VueUiWheel": true, 609 - "VueUiWordCloud": true, 610 - "VueUiWorld": true, 611 - "VueUiXy": true, 612 - "VueUiXyCanvas": true 613 - }, 614 - "withCustomCheckList": false, 615 - "customCheckList": {}, 616 - "id": "da529811-502a-4547-ad00-bfa3d8567adb", 617 - "createdAt": 1769881575780, 618 - "updatedAt": 1769960789717 619 - }, 620 - { 621 - "title": "better og", 622 - "component": "", 623 - "description": "current og is ugly ", 624 - "priority": 0, 625 - "author": "graphieros", 626 - "done": true, 627 - "exchanges": [], 628 - "type": "docs", 629 - "withComponentCheckList": false, 630 - "checkList": {}, 631 - "withCustomCheckList": false, 632 - "customCheckList": {}, 633 - "id": "4c9a57ab-d46c-4d7f-906b-b4823dd5fa2c", 634 - "createdAt": 1769881867515, 635 - "updatedAt": 1769890734130 636 - }, 637 - { 638 - "title": "expose isPrintingImg & isPrintingSvg in #svg slot", 639 - "component": "", 640 - "description": "_", 641 - "priority": 0, 642 - "author": "graphieros", 643 - "done": true, 644 - "exchanges": [], 645 - "type": "feature", 646 - "withComponentCheckList": true, 647 - "checkList": { 648 - "VueUi3dBar": true, 649 - "VueUiAgePyramid": true, 650 - "VueUiAnnotator": true, 651 - "VueUiBullet": true, 652 - "VueUiBump": true, 653 - "VueUiCandlestick": true, 654 - "VueUiCarouselTable": true, 655 - "VueUiChestnut": true, 656 - "VueUiChord": true, 657 - "VueUiCirclePack": true, 658 - "VueUiDag": true, 659 - "VueUiDashboard": true, 660 - "VueUiDigits": true, 661 - "VueUiDonut": true, 662 - "VueUiDonutEvolution": true, 663 - "VueUiDumbbell": true, 664 - "VueUiFlow": true, 665 - "VueUiFunnel": true, 666 - "VueUiGalaxy": true, 667 - "VueUiGauge": true, 668 - "VueUiGeo": true, 669 - "VueUiGizmo": true, 670 - "VueUiHeatmap": true, 671 - "VueUiHistoryPlot": true, 672 - "VueUiHorizontalBar": true, 673 - "VueUiKpi": true, 674 - "VueUiMiniLoader": true, 675 - "VueUiMolecule": true, 676 - "VueUiMoodRadar": true, 677 - "VueUiNestedDonuts": true, 678 - "VueUiOnion": true, 679 - "VueUiParallelCoordinatePlot": true, 680 - "VueUiQuadrant": true, 681 - "VueUiQuickChart": true, 682 - "VueUiRadar": true, 683 - "VueUiRating": true, 684 - "VueUiRelationCircle": true, 685 - "VueUiRidgeline": true, 686 - "VueUiRings": true, 687 - "VueUiScatter": true, 688 - "VueUiSkeleton": true, 689 - "VueUiSmiley": true, 690 - "VueUiSparkbar": true, 691 - "VueUiSparkgauge": true, 692 - "VueUiSparkHistogram": true, 693 - "VueUiSparkline": true, 694 - "VueUiSparkStackbar": true, 695 - "VueUiSparkTrend": true, 696 - "VueUiStackbar": true, 697 - "VueUiStackline": true, 698 - "VueUiStripPlot": true, 699 - "VueUiTable": true, 700 - "VueUiTableSparkline": true, 701 - "VueUiThermometer": true, 702 - "VueUiTimer": true, 703 - "VueUiTiremarks": true, 704 - "VueUiTreemap": true, 705 - "VueUiWaffle": true, 706 - "VueUiWheel": true, 707 - "VueUiWordCloud": true, 708 - "VueUiWorld": true, 709 - "VueUiXy": true, 710 - "VueUiXyCanvas": true 711 - }, 712 - "withCustomCheckList": false, 713 - "customCheckList": {}, 714 - "id": "3290cf0e-0703-4939-8eca-fa89c0117971", 715 - "createdAt": 1770612602181, 716 - "updatedAt": 1770620246727 717 - }, 718 - { 719 - "title": "alt user option button", 720 - "component": "", 721 - "description": "Add icon, callback exposing formatted dataset, and config", 722 - "priority": 1, 723 - "author": "graphieros", 724 - "done": true, 725 - "exchanges": [], 726 - "type": "feature", 727 - "withComponentCheckList": true, 728 - "checkList": { 729 - "VueUi3dBar": true, 730 - "VueUiAgePyramid": true, 731 - "VueUiAnnotator": true, 732 - "VueUiBullet": true, 733 - "VueUiBump": true, 734 - "VueUiCandlestick": true, 735 - "VueUiCarouselTable": true, 736 - "VueUiChestnut": true, 737 - "VueUiChord": true, 738 - "VueUiCirclePack": true, 739 - "VueUiDag": true, 740 - "VueUiDashboard": true, 741 - "VueUiDigits": true, 742 - "VueUiDonut": true, 743 - "VueUiDonutEvolution": true, 744 - "VueUiDumbbell": true, 745 - "VueUiFlow": true, 746 - "VueUiFunnel": true, 747 - "VueUiGalaxy": true, 748 - "VueUiGauge": true, 749 - "VueUiGeo": true, 750 - "VueUiGizmo": true, 751 - "VueUiHeatmap": true, 752 - "VueUiHistoryPlot": true, 753 - "VueUiHorizontalBar": true, 754 - "VueUiKpi": true, 755 - "VueUiMiniLoader": true, 756 - "VueUiMolecule": true, 757 - "VueUiMoodRadar": true, 758 - "VueUiNestedDonuts": true, 759 - "VueUiOnion": true, 760 - "VueUiParallelCoordinatePlot": true, 761 - "VueUiQuadrant": true, 762 - "VueUiQuickChart": true, 763 - "VueUiRadar": true, 764 - "VueUiRating": true, 765 - "VueUiRelationCircle": true, 766 - "VueUiRidgeline": true, 767 - "VueUiRings": true, 768 - "VueUiScatter": true, 769 - "VueUiSkeleton": true, 770 - "VueUiSmiley": true, 771 - "VueUiSparkbar": true, 772 - "VueUiSparkgauge": true, 773 - "VueUiSparkHistogram": true, 774 - "VueUiSparkline": true, 775 - "VueUiSparkStackbar": true, 776 - "VueUiSparkTrend": true, 777 - "VueUiStackbar": true, 778 - "VueUiStackline": true, 779 - "VueUiStripPlot": true, 780 - "VueUiTable": true, 781 - "VueUiTableSparkline": true, 782 - "VueUiThermometer": true, 783 - "VueUiTimer": true, 784 - "VueUiTiremarks": true, 785 - "VueUiTreemap": true, 786 - "VueUiWaffle": true, 787 - "VueUiWheel": true, 788 - "VueUiWordCloud": true, 789 - "VueUiWorld": true, 790 - "VueUiXy": true, 791 - "VueUiXyCanvas": true 792 - }, 793 - "withCustomCheckList": false, 794 - "customCheckList": {}, 795 - "id": "8dac1881-6e6d-485b-9311-0a5548bb2c67", 796 - "createdAt": 1770647295555, 797 - "updatedAt": 1770898486988 798 - }, 799 - { 800 - "title": "set cursor pointer as opt in", 801 - "component": "All", 802 - "description": "Cursor default, and opt-in through config.", 803 - "priority": 2, 804 - "author": "graphieros", 805 - "done": true, 806 - "exchanges": [], 807 - "type": "feature", 808 - "withComponentCheckList": true, 809 - "checkList": { 810 - "VueUi3dBar": true, 811 - "VueUiAgePyramid": true, 812 - "VueUiAnnotator": true, 813 - "VueUiBullet": true, 814 - "VueUiBump": true, 815 - "VueUiCandlestick": true, 816 - "VueUiCarouselTable": true, 817 - "VueUiChestnut": true, 818 - "VueUiChord": true, 819 - "VueUiCirclePack": true, 820 - "VueUiDag": true, 821 - "VueUiDashboard": true, 822 - "VueUiDigits": true, 823 - "VueUiDonut": true, 824 - "VueUiDonutEvolution": true, 825 - "VueUiDumbbell": true, 826 - "VueUiFlow": true, 827 - "VueUiFunnel": true, 828 - "VueUiGalaxy": true, 829 - "VueUiGauge": true, 830 - "VueUiGeo": true, 831 - "VueUiGizmo": true, 832 - "VueUiHeatmap": true, 833 - "VueUiHistoryPlot": true, 834 - "VueUiHorizontalBar": true, 835 - "VueUiKpi": true, 836 - "VueUiMiniLoader": true, 837 - "VueUiMolecule": true, 838 - "VueUiMoodRadar": true, 839 - "VueUiNestedDonuts": true, 840 - "VueUiOnion": true, 841 - "VueUiParallelCoordinatePlot": true, 842 - "VueUiQuadrant": true, 843 - "VueUiQuickChart": true, 844 - "VueUiRadar": true, 845 - "VueUiRating": true, 846 - "VueUiRelationCircle": true, 847 - "VueUiRidgeline": true, 848 - "VueUiRings": true, 849 - "VueUiScatter": true, 850 - "VueUiSkeleton": true, 851 - "VueUiSmiley": true, 852 - "VueUiSparkbar": true, 853 - "VueUiSparkgauge": true, 854 - "VueUiSparkHistogram": true, 855 - "VueUiSparkline": true, 856 - "VueUiSparkStackbar": true, 857 - "VueUiSparkTrend": true, 858 - "VueUiStackbar": true, 859 - "VueUiStackline": true, 860 - "VueUiStripPlot": true, 861 - "VueUiTable": true, 862 - "VueUiTableSparkline": true, 863 - "VueUiThermometer": true, 864 - "VueUiTimer": true, 865 - "VueUiTiremarks": true, 866 - "VueUiTreemap": true, 867 - "VueUiWaffle": true, 868 - "VueUiWheel": true, 869 - "VueUiWordCloud": true, 870 - "VueUiWorld": true, 871 - "VueUiXy": true, 872 - "VueUiXyCanvas": true 873 - }, 874 - "withCustomCheckList": false, 875 - "customCheckList": {}, 876 - "id": "8b428e5f-1a7c-4128-8783-5de820a4c905", 877 - "createdAt": 1770647363014, 878 - "updatedAt": 1770741668889 879 - }, 880 - { 881 - "title": "dashed segments", 882 - "component": "VueUiXy", 883 - "description": "In dataset items, add a dashedIndices attr that makes connections to this datapoint overlayed with a dashed line.\nHas to work seamlessly with curved lines.", 884 - "priority": 2, 885 - "author": "graphieros", 886 - "done": true, 887 - "exchanges": [], 888 - "type": "feature", 889 - "withComponentCheckList": false, 890 - "checkList": {}, 891 - "withCustomCheckList": false, 892 - "customCheckList": {}, 893 - "id": "e1ddf2d2-fbaf-4f01-b02f-ada800296f36", 894 - "createdAt": 1770708474325, 895 - "updatedAt": 1770791800023 896 - }, 897 - { 898 - "title": "add optionAltCopy slots", 899 - "component": "", 900 - "description": "Add missing optionAltCopy slot in all components", 901 - "priority": 2, 902 - "author": "graphieros", 903 - "done": true, 904 - "exchanges": [], 905 - "type": "feature", 906 - "withComponentCheckList": true, 907 - "checkList": { 908 - "VueUi3dBar": true, 909 - "VueUiAgePyramid": true, 910 - "VueUiAnnotator": true, 911 - "VueUiBullet": true, 912 - "VueUiBump": true, 913 - "VueUiCandlestick": true, 914 - "VueUiCarouselTable": true, 915 - "VueUiChestnut": true, 916 - "VueUiChord": true, 917 - "VueUiCirclePack": true, 918 - "VueUiDag": true, 919 - "VueUiDashboard": true, 920 - "VueUiDigits": true, 921 - "VueUiDonut": true, 922 - "VueUiDonutEvolution": true, 923 - "VueUiDumbbell": true, 924 - "VueUiFlow": true, 925 - "VueUiFunnel": true, 926 - "VueUiGalaxy": true, 927 - "VueUiGauge": true, 928 - "VueUiGeo": true, 929 - "VueUiGizmo": true, 930 - "VueUiHeatmap": true, 931 - "VueUiHistoryPlot": true, 932 - "VueUiHorizontalBar": true, 933 - "VueUiKpi": true, 934 - "VueUiMiniLoader": true, 935 - "VueUiMolecule": true, 936 - "VueUiMoodRadar": true, 937 - "VueUiNestedDonuts": true, 938 - "VueUiOnion": true, 939 - "VueUiParallelCoordinatePlot": true, 940 - "VueUiQuadrant": true, 941 - "VueUiQuickChart": true, 942 - "VueUiRadar": true, 943 - "VueUiRating": true, 944 - "VueUiRelationCircle": true, 945 - "VueUiRidgeline": true, 946 - "VueUiRings": true, 947 - "VueUiScatter": true, 948 - "VueUiSkeleton": true, 949 - "VueUiSmiley": true, 950 - "VueUiSparkbar": true, 951 - "VueUiSparkgauge": true, 952 - "VueUiSparkHistogram": true, 953 - "VueUiSparkline": true, 954 - "VueUiSparkStackbar": true, 955 - "VueUiSparkTrend": true, 956 - "VueUiStackbar": true, 957 - "VueUiStackline": true, 958 - "VueUiStripPlot": true, 959 - "VueUiTable": true, 960 - "VueUiTableSparkline": true, 961 - "VueUiThermometer": true, 962 - "VueUiTimer": true, 963 - "VueUiTiremarks": true, 964 - "VueUiTreemap": true, 965 - "VueUiWaffle": true, 966 - "VueUiWheel": true, 967 - "VueUiWordCloud": true, 968 - "VueUiWorld": true, 969 - "VueUiXy": true, 970 - "VueUiXyCanvas": true 971 - }, 972 - "withCustomCheckList": false, 973 - "customCheckList": {}, 974 - "id": "741ecd80-fe86-4532-9361-a22d2969121e", 975 - "createdAt": 1770904531442, 976 - "updatedAt": 1770910157841 977 - }, 978 - { 979 - "title": "Add path gradient option", 980 - "component": "VueUiXy", 981 - "description": "Add temperature options (at datapoint level, useTemperature with color array to enable). Creates a linear gradient (vertical) which defines color stops to use on the path stroke.", 982 - "priority": 1, 983 - "author": "graphieros", 984 - "done": true, 985 - "exchanges": [], 986 - "type": "feature", 987 - "withComponentCheckList": false, 988 - "checkList": {}, 989 - "withCustomCheckList": false, 990 - "customCheckList": {}, 991 - "id": "7512f7b1-d453-40e1-9eb7-eb99fb4c3647", 992 - "createdAt": 1771600690852, 993 - "updatedAt": 1771605663209 994 - }, 995 - { 996 - "title": "a11y - Step 1", 997 - "component": "", 998 - "description": "Implement KBD nav for datapoints in svg, with tooltip triggers if applicable.", 999 - "priority": 1, 1000 - "author": "graphieros", 1001 - "done": true, 1002 - "exchanges": [], 1003 - "type": "feature", 1004 - "withComponentCheckList": true, 1005 - "checkList": { 1006 - "VueUi3dBar": true, 1007 - "VueUiAgePyramid": true, 1008 - "VueUiAnnotator": true, 1009 - "VueUiBullet": true, 1010 - "VueUiBump": true, 1011 - "VueUiCandlestick": true, 1012 - "VueUiCarouselTable": true, 1013 - "VueUiChestnut": true, 1014 - "VueUiChord": true, 1015 - "VueUiCirclePack": true, 1016 - "VueUiDag": true, 1017 - "VueUiDashboard": true, 1018 - "VueUiDigits": true, 1019 - "VueUiDonut": true, 1020 - "VueUiDonutEvolution": true, 1021 - "VueUiDumbbell": true, 1022 - "VueUiFlow": true, 1023 - "VueUiFunnel": true, 1024 - "VueUiGalaxy": true, 1025 - "VueUiGauge": true, 1026 - "VueUiGeo": true, 1027 - "VueUiGizmo": true, 1028 - "VueUiHeatmap": true, 1029 - "VueUiHistoryPlot": true, 1030 - "VueUiHorizontalBar": true, 1031 - "VueUiKpi": true, 1032 - "VueUiMiniLoader": true, 1033 - "VueUiMolecule": true, 1034 - "VueUiMoodRadar": true, 1035 - "VueUiNestedDonuts": true, 1036 - "VueUiOnion": true, 1037 - "VueUiParallelCoordinatePlot": true, 1038 - "VueUiQuadrant": true, 1039 - "VueUiQuickChart": true, 1040 - "VueUiRadar": true, 1041 - "VueUiRating": true, 1042 - "VueUiRelationCircle": true, 1043 - "VueUiRidgeline": true, 1044 - "VueUiRings": true, 1045 - "VueUiScatter": true, 1046 - "VueUiSkeleton": true, 1047 - "VueUiSmiley": true, 1048 - "VueUiSparkbar": true, 1049 - "VueUiSparkgauge": true, 1050 - "VueUiSparkHistogram": true, 1051 - "VueUiSparkline": true, 1052 - "VueUiSparkStackbar": true, 1053 - "VueUiSparkTrend": true, 1054 - "VueUiStackbar": true, 1055 - "VueUiStackline": true, 1056 - "VueUiStripPlot": true, 1057 - "VueUiTable": true, 1058 - "VueUiTableSparkline": true, 1059 - "VueUiThermometer": true, 1060 - "VueUiTimer": true, 1061 - "VueUiTiremarks": true, 1062 - "VueUiTreemap": true, 1063 - "VueUiWaffle": true, 1064 - "VueUiWheel": true, 1065 - "VueUiWordCloud": true, 1066 - "VueUiWorld": true, 1067 - "VueUiXy": true, 1068 - "VueUiXyCanvas": true 1069 - }, 1070 - "withCustomCheckList": false, 1071 - "customCheckList": {}, 1072 - "id": "d8e18039-1f9f-4411-9ad5-c388fae38f74", 1073 - "createdAt": 1773475071384, 1074 - "updatedAt": 1774109095214 1075 - }, 1076 - { 1077 - "title": "Keep selected datapoint state from mouse to kbd navigation", 1078 - "component": "", 1079 - "description": "When switching from mouse to kbd nav (which is useful sometimes to be precise), the selected index is lost. Keep this selection in memory to start kbd selection there. Also expose a isFocus bool in the hint slot.", 1080 - "priority": 2, 1081 - "author": "graphieros", 1082 - "done": true, 1083 - "exchanges": [], 1084 - "type": "bug", 1085 - "withComponentCheckList": false, 1086 - "checkList": {}, 1087 - "withCustomCheckList": true, 1088 - "customCheckList": { 1089 - "VueUiXy": true, 1090 - "VueUiXyCanvas": true, 1091 - "VueUiStackline": true, 1092 - "VueUiStackbar": true, 1093 - "VueUiCandlestick": true, 1094 - "VueUiDonutEvolution": true, 1095 - "VueUiSparkline": true 1096 - }, 1097 - "id": "a968f3fe-902c-44ad-bf44-0c7442b7bbcf", 1098 - "createdAt": 1774257264853, 1099 - "updatedAt": 1774300164456 1100 - }, 1101 - { 1102 - "title": "pen and paper color palette is not kbd navigable", 1103 - "component": "PenAndPaper", 1104 - "description": "Make the color palette kbd navigable", 1105 - "priority": 2, 1106 - "author": "graphieros", 1107 - "done": true, 1108 - "exchanges": [], 1109 - "type": "bug", 1110 - "withComponentCheckList": false, 1111 - "checkList": {}, 1112 - "withCustomCheckList": false, 1113 - "customCheckList": {}, 1114 - "id": "1fb5d75c-4fe9-4a61-a5af-4142b68c0da9", 1115 - "createdAt": 1774258628546, 1116 - "updatedAt": 1774302022297 1117 - }, 2 + "items": [ 3 + { 4 + "title": "Add scoped slots", 5 + "component": "vue-ui-horizontal-bar.vue", 6 + "description": "Find a way to add foreignObjects in scoped slots for nameLabels and parentLabels, allowing the display of richer content. Problem is using foreignObjects fails the auto size feature related to the parent g element width.", 7 + "priority": 0, 8 + "author": "graphieros", 9 + "done": false, 10 + "exchanges": [ 1118 11 { 1119 - "title": "range input is reversed in kbd mode", 1120 - "component": "PenAndPaper", 1121 - "description": "The range input appears reversed when using kbd", 1122 - "priority": 0, 1123 - "author": "graphieros", 1124 - "done": false, 1125 - "exchanges": [], 1126 - "type": "bug", 1127 - "withComponentCheckList": false, 1128 - "checkList": {}, 1129 - "withCustomCheckList": false, 1130 - "customCheckList": {}, 1131 - "id": "d5c1dd67-f1bf-4538-88a9-c40d2e0355cd", 1132 - "createdAt": 1774258724742, 1133 - "updatedAt": 1774302956867 1134 - }, 12 + "author": "graphieros", 13 + "comment": "Try out an #image slot in parentLabels & nameLabels using an image tag in the svg. It's very specific, but would make sense for some use cases.", 14 + "id": "4300e984-1cc9-4e42-8b97-c90739dd1b80", 15 + "createdAt": 1767077128316 16 + } 17 + ], 18 + "id": "2b103ff3-de84-4843-9ccd-29b88daf9393", 19 + "createdAt": 1767035715509, 20 + "type": "feature", 21 + "updatedAt": 1767541341951, 22 + "withComponentCheckList": false, 23 + "withCustomCheckList": false, 24 + "checkList": {}, 25 + "customCheckList": {} 26 + }, 27 + { 28 + "title": "Add stats tab in todo app", 29 + "component": "TodoList.vue", 30 + "description": "Add some stats in a tab of the todo app. A donut with breakdown per open/closed, another per priority", 31 + "priority": 0, 32 + "author": "graphieros", 33 + "done": true, 34 + "exchanges": [], 35 + "id": "36d9df24-93cd-4da9-a652-1bdf8efc7ed1", 36 + "createdAt": 1767036688923, 37 + "type": "dev", 38 + "updatedAt": 1767076725682, 39 + "withComponentCheckList": false, 40 + "withCustomCheckList": false, 41 + "checkList": {}, 42 + "customCheckList": {} 43 + }, 44 + { 45 + "title": "Add filter by priority", 46 + "component": "TodoList.vue", 47 + "description": "Add a filter feature by priority and filter by component, description, in the Open tab of the todo list.", 48 + "priority": 1, 49 + "author": "graphieros", 50 + "done": true, 51 + "exchanges": [], 52 + "id": "43545a6f-c728-4d17-b5c0-a6ad3d539853", 53 + "createdAt": 1767037191862, 54 + "type": "dev", 55 + "updatedAt": 1767098908436, 56 + "withComponentCheckList": false, 57 + "withCustomCheckList": false, 58 + "checkList": {}, 59 + "customCheckList": {} 60 + }, 61 + { 62 + "title": "Tooltips in dialogs", 63 + "component": "Tooltip.vue", 64 + "description": "Since tooltips are teleported to the body, they appear behind a dialog if the chart is placed inside. Add a tooltip.teleportTo config property, defaulting to 'body'. It should work with an id selector.", 65 + "priority": 2, 66 + "author": "graphieros", 67 + "done": true, 68 + "exchanges": [ 1135 69 { 1136 - "title": "VueUiQuadrant", 1137 - "component": "VueUiQuadrant", 1138 - "description": "Improvements", 1139 - "priority": 2, 1140 - "author": "graphieros", 1141 - "done": true, 1142 - "exchanges": [], 1143 - "type": "feature", 1144 - "withComponentCheckList": false, 1145 - "checkList": {}, 1146 - "withCustomCheckList": true, 1147 - "customCheckList": { 1148 - "optional zoom & style adjustments if not": true 1149 - }, 1150 - "id": "2e9cefe1-1664-431e-a078-b2088ea2bbeb", 1151 - "createdAt": 1775300014073, 1152 - "updatedAt": 1775374798605 1153 - }, 70 + "author": "graphieros", 71 + "comment": "Fixed in 3.9.21", 72 + "id": "a2cb81b3-1525-4f58-ac4d-c2d0a9b7061a", 73 + "createdAt": 1767172521830 74 + } 75 + ], 76 + "id": "817f52c7-0ab8-4068-aeb0-49e10cbb27ac", 77 + "createdAt": 1767078433963, 78 + "type": "bug", 79 + "updatedAt": 1767172522614, 80 + "withComponentCheckList": false, 81 + "withCustomCheckList": false, 82 + "checkList": {}, 83 + "customCheckList": {} 84 + }, 85 + { 86 + "title": "User options cropped", 87 + "component": "UserOptions.vue", 88 + "description": "When placed inside a parent with hidden overflow, UserOptions gets cropped, making it impossible to select actions. Solution: use the popover api, and default to current behavior if not supported.", 89 + "priority": 2, 90 + "author": "graphieros", 91 + "done": true, 92 + "exchanges": [ 1154 93 { 1155 - "title": "Make VueUiQuadrant more flexible", 1156 - "component": "VueUiQuadrant", 1157 - "description": "- Option to position axis labels on both sides or specific sides only", 1158 - "priority": 0, 1159 - "author": "graphieros", 1160 - "done": false, 1161 - "exchanges": [], 1162 - "type": "feature", 1163 - "withComponentCheckList": false, 1164 - "checkList": {}, 1165 - "withCustomCheckList": false, 1166 - "customCheckList": {}, 1167 - "id": "c1700cc2-dd89-4709-9877-9e48cfd72a09", 1168 - "createdAt": 1775660582373, 1169 - "updatedAt": 1775660603925 1170 - }, 94 + "author": "graphieros", 95 + "comment": "Fixed in 3.9.22", 96 + "id": "386f7927-5e9c-464e-a4e1-1ab5119d5627", 97 + "createdAt": 1767172494542 98 + } 99 + ], 100 + "id": "9b075f5f-4791-4349-9a90-6ec936240ab7", 101 + "createdAt": 1767117444470, 102 + "type": "bug", 103 + "updatedAt": 1767177706324, 104 + "withComponentCheckList": false, 105 + "withCustomCheckList": false, 106 + "checkList": {}, 107 + "customCheckList": {} 108 + }, 109 + { 110 + "title": "Bump chart", 111 + "component": "vue-ui-bump.vue", 112 + "description": "Create a bump chart", 113 + "priority": 0, 114 + "author": "graphieros", 115 + "done": true, 116 + "exchanges": [ 1171 117 { 1172 - "title": "slot types", 1173 - "component": "", 1174 - "description": "Add types for component slots, and test the validity of all TS types for configs and datasets.", 1175 - "priority": 1, 1176 - "author": "graphieros", 1177 - "done": true, 1178 - "exchanges": [], 1179 - "type": "feature", 1180 - "withComponentCheckList": true, 1181 - "checkList": { 1182 - "VueUi3dBar": true, 1183 - "VueUiAgePyramid": true, 1184 - "VueUiAnnotator": true, 1185 - "VueUiBullet": true, 1186 - "VueUiBump": true, 1187 - "VueUiCandlestick": true, 1188 - "VueUiCarouselTable": true, 1189 - "VueUiChestnut": true, 1190 - "VueUiChord": true, 1191 - "VueUiCirclePack": true, 1192 - "VueUiDag": true, 1193 - "VueUiDashboard": true, 1194 - "VueUiDigits": true, 1195 - "VueUiDonut": true, 1196 - "VueUiDonutEvolution": true, 1197 - "VueUiDumbbell": true, 1198 - "VueUiFlow": true, 1199 - "VueUiFunnel": true, 1200 - "VueUiGalaxy": true, 1201 - "VueUiGauge": true, 1202 - "VueUiGeo": true, 1203 - "VueUiGizmo": true, 1204 - "VueUiHeatmap": true, 1205 - "VueUiHistoryPlot": true, 1206 - "VueUiHorizontalBar": true, 1207 - "VueUiKpi": true, 1208 - "VueUiMiniLoader": true, 1209 - "VueUiMolecule": true, 1210 - "VueUiMoodRadar": true, 1211 - "VueUiNestedDonuts": true, 1212 - "VueUiOnion": true, 1213 - "VueUiParallelCoordinatePlot": true, 1214 - "VueUiQuadrant": true, 1215 - "VueUiQuickChart": true, 1216 - "VueUiRadar": true, 1217 - "VueUiRating": true, 1218 - "VueUiRelationCircle": true, 1219 - "VueUiRidgeline": true, 1220 - "VueUiRings": true, 1221 - "VueUiScatter": true, 1222 - "VueUiSkeleton": true, 1223 - "VueUiSmiley": true, 1224 - "VueUiSparkbar": true, 1225 - "VueUiSparkgauge": true, 1226 - "VueUiSparkHistogram": true, 1227 - "VueUiSparkline": true, 1228 - "VueUiSparkStackbar": true, 1229 - "VueUiSparkTrend": true, 1230 - "VueUiStackbar": true, 1231 - "VueUiStackline": true, 1232 - "VueUiStripPlot": true, 1233 - "VueUiTable": true, 1234 - "VueUiTableSparkline": true, 1235 - "VueUiThermometer": true, 1236 - "VueUiTimer": true, 1237 - "VueUiTiremarks": true, 1238 - "VueUiTreemap": true, 1239 - "VueUiWaffle": true, 1240 - "VueUiWheel": true, 1241 - "VueUiWordCloud": true, 1242 - "VueUiWorld": true, 1243 - "VueUiXy": true, 1244 - "VueUiXyCanvas": true 1245 - }, 1246 - "withCustomCheckList": false, 1247 - "customCheckList": {}, 1248 - "id": "3846f04c-685f-4509-8042-87b9c0b7ec33", 1249 - "createdAt": 1775989842046, 1250 - "updatedAt": 1777188516661 1251 - }, 118 + "author": "graphieros", 119 + "comment": "Features: start & end labels; display rank in markers; highlight series on hover; no tooltip;", 120 + "id": "a19948c7-df64-40c9-98f3-525b5c9cf14e", 121 + "createdAt": 1767263333551 122 + } 123 + ], 124 + "type": "feature", 125 + "id": "36df6443-e204-495c-8d74-a70e147397cd", 126 + "createdAt": 1767245054032, 127 + "updatedAt": 1767377554990, 128 + "withComponentCheckList": false, 129 + "withCustomCheckList": false, 130 + "checkList": {}, 131 + "customCheckList": {} 132 + }, 133 + { 134 + "title": "Add scoped slots for data tables", 135 + "component": "All components with built-in tables", 136 + "description": "Add #data-table-th and #data-table-td scoped slots where DataTable.vue is used", 137 + "priority": 0, 138 + "author": "graphieros", 139 + "done": true, 140 + "exchanges": [ 1252 141 { 1253 - "title": "Expose more methods", 1254 - "component": "", 1255 - "description": "Expose more construction methods. Combine all path generation in a single utility with options.", 1256 - "priority": 2, 1257 - "author": "graphieros", 1258 - "done": false, 1259 - "exchanges": [], 1260 - "type": "feature", 1261 - "withComponentCheckList": false, 1262 - "checkList": {}, 1263 - "withCustomCheckList": true, 1264 - "customCheckList": { 1265 - "adaptColorToBackground": true, 1266 - "createSmoothPath": false, 1267 - "createStraightPath": false, 1268 - "createSmoothPathWithCuts": false, 1269 - "createStraightPathWithCuts": false, 1270 - "createStepperPath": false 1271 - }, 1272 - "id": "ef0d34dc-adc3-4826-b117-38c8d7d4199c", 1273 - "createdAt": 1776182479567, 1274 - "updatedAt": 1777141476333 1275 - }, 1276 - { 1277 - "title": "Nested circle packing", 1278 - "component": "VueUiCirclePack", 1279 - "description": "Implement nested circle packing. Use scoreCircle for each parent", 1280 - "priority": 0, 1281 - "author": "graphieros", 1282 - "done": true, 1283 - "exchanges": [], 1284 - "type": "feature", 1285 - "withComponentCheckList": false, 1286 - "checkList": {}, 1287 - "withCustomCheckList": false, 1288 - "customCheckList": {}, 1289 - "id": "fa6454ad-e3e6-4d3c-8019-8ad0eedd296e", 1290 - "createdAt": 1776606115056, 1291 - "updatedAt": 1777793416469 1292 - }, 1293 - { 1294 - "title": "Stepper", 1295 - "component": "VueUiXy", 1296 - "description": "Add stepper option for line types #329", 1297 - "priority": 2, 1298 - "author": "graphieros", 1299 - "done": true, 1300 - "exchanges": [], 1301 - "type": "feature", 1302 - "withComponentCheckList": false, 1303 - "checkList": {}, 1304 - "withCustomCheckList": false, 1305 - "customCheckList": {}, 1306 - "id": "f7f87666-103d-43e6-9902-c7cfeb2d3d59", 1307 - "createdAt": 1777064557806, 1308 - "updatedAt": 1777064563814 1309 - }, 1310 - { 1311 - "title": "onEnter & onLeave in #legend", 1312 - "component": "All components with the #legend slot", 1313 - "description": "Add onEnter and onLeave methods to the #legend slot, to allow triggering datapoint highlighting", 1314 - "priority": 0, 1315 - "author": "graphieros", 1316 - "done": false, 1317 - "exchanges": [], 1318 - "type": "feature", 1319 - "withComponentCheckList": false, 1320 - "checkList": {}, 1321 - "withCustomCheckList": true, 1322 - "customCheckList": { 1323 - "VueUi3dBar": false, 1324 - "VueUiChestnut": false, 1325 - "VueUiChord": false, 1326 - "VueUiDonutEvolution": false, 1327 - "VueUiDonut": false, 1328 - "VueUiFlow": false, 1329 - "VueUiGalaxy": false, 1330 - "VueUiHistoryPlot": false, 1331 - "VueUiHorizontalBar": false, 1332 - "VueUiNestedDonuts": false, 1333 - "VueUiOnion": false, 1334 - "VueUiParallelCoordinatePlot": false, 1335 - "VueUiQuadrant": false, 1336 - "VueUiQuickChart": false, 1337 - "VueUiRadar": false, 1338 - "VueUiRidgeline": false, 1339 - "VueUiRings": false, 1340 - "VueUiScatter": true, 1341 - "VueUiStackbar": false, 1342 - "VueUiStackline": false, 1343 - "VueUiTreemap": false, 1344 - "VueUiWaffle": false, 1345 - "VueUiWorld": false, 1346 - "VueUiXyCanvas": false, 1347 - "VueUiXy": false 1348 - }, 1349 - "id": "1f78128e-67cd-4d2a-98c5-d03a4793ce88", 1350 - "createdAt": 1777351193418, 1351 - "updatedAt": 1777407735351 1352 - }, 1353 - { 1354 - "title": "VueUiStackline path stroke", 1355 - "component": "VueUiStackline", 1356 - "description": "Add config to control the stroke color for paths. useSerieColor usual thing", 1357 - "priority": 1, 1358 - "author": "graphieros", 1359 - "done": false, 1360 - "exchanges": [], 1361 - "type": "feature", 1362 - "withComponentCheckList": false, 1363 - "checkList": {}, 1364 - "withCustomCheckList": false, 1365 - "customCheckList": {}, 1366 - "id": "5882f257-2c9c-4d9c-b9c4-9f9b084adcd9", 1367 - "createdAt": 1777908631920, 1368 - "updatedAt": 1777908631920 1369 - }, 1370 - { 1371 - "title": "y axis position", 1372 - "component": "", 1373 - "description": "Add config option to position y axis scales to the right", 1374 - "priority": 0, 1375 - "author": "graphieros", 1376 - "done": true, 1377 - "exchanges": [], 1378 - "type": "feature", 1379 - "withComponentCheckList": false, 1380 - "checkList": {}, 1381 - "withCustomCheckList": true, 1382 - "customCheckList": { 1383 - "vue-ui-xy": true, 1384 - "vue-ui-stackbar": true, 1385 - "vue-ui-stackline": true, 1386 - "vue-ui-candlestick": true, 1387 - "vue-ui-donut-evolution": true 1388 - }, 1389 - "id": "676d3ed1-3734-41e0-87ec-bbfb4e32b2cf", 1390 - "createdAt": 1778739184067, 1391 - "updatedAt": 1778767022317 1392 - }, 1393 - { 1394 - "title": "emit selectLegend from legend toggle ", 1395 - "component": "", 1396 - "description": "@selectLegend should be emitted when using the legend toggle", 1397 - "priority": 2, 1398 - "author": "graphieros", 1399 - "done": true, 1400 - "exchanges": [], 1401 - "type": "feature", 1402 - "withComponentCheckList": false, 1403 - "checkList": {}, 1404 - "withCustomCheckList": true, 1405 - "customCheckList": { 1406 - "vue-ui-donut": true, 1407 - "vue-ui-donut-evolution": true, 1408 - "vue-ui-galaxy": true, 1409 - "vue-ui-history-plot": true, 1410 - "vue-ui-horizontal-bar": true, 1411 - "vue-ui-nested-donuts": true, 1412 - "vue-ui-onion": true, 1413 - "vue-ui-parallel-coordinate-plot": true, 1414 - "vue-ui-quadrant": true, 1415 - "vue-ui-quick-chart": true, 1416 - "vue-ui-radar": true, 1417 - "vue-ui-ridgeline": true, 1418 - "vue-ui-rings": true, 1419 - "vue-ui-scatter": true, 1420 - "vue-ui-sparkstackbar": true, 1421 - "vue-ui-stackbar": true, 1422 - "vue-ui-stackline": true, 1423 - "vue-ui-treemap": true, 1424 - "vue-ui-waffle": true, 1425 - "vue-ui-world": true, 1426 - "vue-ui-xy": true, 1427 - "vue-ui-xy-canvas": true 1428 - }, 1429 - "id": "123cf2a9-6a76-42a2-a129-f071db272721", 1430 - "createdAt": 1779116028546, 1431 - "updatedAt": 1779163926858 142 + "author": "graphieros", 143 + "comment": "Will not be worked on for now.\nSome <th> els just expose html content.", 144 + "id": "9fa4060b-7c5c-470e-a3df-6ab915fc9d39", 145 + "createdAt": 1767464750951 1432 146 } 1433 - ] 1434 - } 147 + ], 148 + "type": "feature", 149 + "id": "4592ae44-f2ad-4ee4-8604-fe40c6369f25", 150 + "createdAt": 1767291561889, 151 + "updatedAt": 1767464755760, 152 + "withComponentCheckList": false, 153 + "withCustomCheckList": false, 154 + "checkList": {}, 155 + "customCheckList": {} 156 + }, 157 + { 158 + "title": "Minimal themes", 159 + "component": "All", 160 + "description": "Minimal theme with: greyscales, no legend, no user options menu. 2 variants: \"minimal\" & \"minimalDark\"", 161 + "priority": 1, 162 + "author": "graphieros", 163 + "done": true, 164 + "exchanges": [], 165 + "type": "feature", 166 + "id": "eef5958d-4e2e-40e9-af8b-31cc52b48b49", 167 + "createdAt": 1767474015565, 168 + "updatedAt": 1767551300061, 169 + "withComponentCheckList": true, 170 + "withCustomCheckList": false, 171 + "checkList": { 172 + "VueUi3dBar": true, 173 + "VueUiAgePyramid": true, 174 + "VueUiAnnotator": true, 175 + "VueUiBullet": true, 176 + "VueUiBump": true, 177 + "VueUiCandlestick": true, 178 + "VueUiCarouselTable": true, 179 + "VueUiChestnut": true, 180 + "VueUiChord": true, 181 + "VueUiCirclePack": true, 182 + "VueUiDag": true, 183 + "VueUiDashboard": true, 184 + "VueUiDigits": true, 185 + "VueUiDonut": true, 186 + "VueUiDonutEvolution": true, 187 + "VueUiDumbbell": true, 188 + "VueUiFlow": true, 189 + "VueUiFunnel": true, 190 + "VueUiGalaxy": true, 191 + "VueUiGauge": true, 192 + "VueUiGeo": true, 193 + "VueUiGizmo": true, 194 + "VueUiHeatmap": true, 195 + "VueUiHistoryPlot": true, 196 + "VueUiHorizontalBar": true, 197 + "VueUiKpi": true, 198 + "VueUiMiniLoader": true, 199 + "VueUiMolecule": true, 200 + "VueUiMoodRadar": true, 201 + "VueUiNestedDonuts": true, 202 + "VueUiOnion": true, 203 + "VueUiParallelCoordinatePlot": true, 204 + "VueUiQuadrant": true, 205 + "VueUiQuickChart": true, 206 + "VueUiRadar": true, 207 + "VueUiRating": true, 208 + "VueUiRelationCircle": true, 209 + "VueUiRidgeline": true, 210 + "VueUiRings": true, 211 + "VueUiScatter": true, 212 + "VueUiSkeleton": true, 213 + "VueUiSmiley": true, 214 + "VueUiSparkbar": true, 215 + "VueUiSparkgauge": true, 216 + "VueUiSparkHistogram": true, 217 + "VueUiSparkline": true, 218 + "VueUiSparkStackbar": true, 219 + "VueUiSparkTrend": true, 220 + "VueUiStackbar": true, 221 + "VueUiStackline": true, 222 + "VueUiStripPlot": true, 223 + "VueUiTable": true, 224 + "VueUiTableSparkline": true, 225 + "VueUiThermometer": true, 226 + "VueUiTimer": true, 227 + "VueUiTiremarks": true, 228 + "VueUiTreemap": true, 229 + "VueUiWaffle": true, 230 + "VueUiWheel": true, 231 + "VueUiWordCloud": true, 232 + "VueUiWorld": true, 233 + "VueUiXy": true, 234 + "VueUiXyCanvas": true 235 + } 236 + }, 237 + { 238 + "title": "Themes page", 239 + "component": "Docs website", 240 + "description": "Add a page dedicated to themes. Set up a dashboard with major chart types, with a theme toggle", 241 + "priority": 1, 242 + "author": "graphieros", 243 + "done": true, 244 + "exchanges": [], 245 + "type": "docs", 246 + "id": "61122b28-40a8-4a3e-89f6-6ea778c7c7d1", 247 + "createdAt": 1767508921021, 248 + "updatedAt": 1767596514628, 249 + "withComponentCheckList": false, 250 + "withCustomCheckList": true, 251 + "checkList": {}, 252 + "customCheckList": { 253 + "Dashboard component": true, 254 + "Themes toggle": true 255 + } 256 + }, 257 + { 258 + "title": "Remove installation.md", 259 + "component": "Build", 260 + "description": "Remove the documentation directory from the build, because the main README has all the info already.", 261 + "priority": 0, 262 + "author": "graphieros", 263 + "done": true, 264 + "exchanges": [], 265 + "type": "docs", 266 + "id": "7b8fc776-4651-4e0e-bc1a-008549eb8b50", 267 + "createdAt": 1767509634289, 268 + "updatedAt": 1771676170822, 269 + "withComponentCheckList": false, 270 + "withCustomCheckList": false, 271 + "checkList": {}, 272 + "customCheckList": {} 273 + }, 274 + { 275 + "title": "Custom checklist", 276 + "component": "PendingTodoList.vue", 277 + "description": "Enable custom checklist, with any number of items, and show progression gauge", 278 + "priority": 0, 279 + "author": "graphieros", 280 + "done": true, 281 + "exchanges": [], 282 + "type": "dev", 283 + "withComponentCheckList": false, 284 + "withCustomCheckList": false, 285 + "checkList": {}, 286 + "id": "94bc6796-7221-4c42-86a4-ba3f9b95af95", 287 + "createdAt": 1767519203208, 288 + "updatedAt": 1767540246275, 289 + "customCheckList": {} 290 + }, 291 + { 292 + "title": "Bad legend placement", 293 + "component": "vue-ui-stackline.vue", 294 + "description": "Position the legend below the zoom component.", 295 + "priority": 2, 296 + "author": "graphieros", 297 + "done": true, 298 + "exchanges": [], 299 + "type": "bug", 300 + "withComponentCheckList": false, 301 + "checkList": {}, 302 + "withCustomCheckList": false, 303 + "customCheckList": {}, 304 + "id": "f63e1a9e-2433-4ca3-917b-6514d7a00f47", 305 + "createdAt": 1767596506923, 306 + "updatedAt": 1767597515448 307 + }, 308 + { 309 + "title": "Serie segregation bars in minimap", 310 + "component": "vue-ui-xy.vue", 311 + "description": "When bars are segregated, barWidth is not recalculated in zoom minimap", 312 + "priority": 1, 313 + "author": "graphieros", 314 + "done": true, 315 + "exchanges": [], 316 + "type": "bug", 317 + "withComponentCheckList": false, 318 + "checkList": {}, 319 + "withCustomCheckList": false, 320 + "customCheckList": {}, 321 + "id": "5d75ccd1-30ff-41ae-98c1-d1009227f338", 322 + "createdAt": 1767683890024, 323 + "updatedAt": 1767694625666 324 + }, 325 + { 326 + "title": "Improve VueUiDag config for selected nodes", 327 + "component": "vue-ui-dag.vue", 328 + "description": "Add config attributes for selected nodes to set stroke, strokeWidth, fill, and related edges stroke and animated states, with distinction for upstream & downstream edges.", 329 + "priority": 0, 330 + "author": "graphieros", 331 + "done": true, 332 + "exchanges": [], 333 + "type": "feature", 334 + "withComponentCheckList": false, 335 + "checkList": {}, 336 + "withCustomCheckList": false, 337 + "customCheckList": {}, 338 + "id": "33b4453a-6c9b-4997-9e65-33f2739f9b70", 339 + "createdAt": 1767782417794, 340 + "updatedAt": 1767801222353 341 + }, 342 + { 343 + "title": "scaleMin & scaleMax not reflected in minimap", 344 + "component": "vue-ui-xy.vue", 345 + "description": "When scaleMin and / or scaleMax are set in config, the minimap remains with default min & max settings. ", 346 + "priority": 1, 347 + "author": "graphieros", 348 + "done": true, 349 + "exchanges": [], 350 + "type": "bug", 351 + "withComponentCheckList": false, 352 + "checkList": {}, 353 + "withCustomCheckList": false, 354 + "customCheckList": {}, 355 + "id": "529c7783-2a45-4a08-b26b-0ef8b2d8d0e1", 356 + "createdAt": 1768065094039, 357 + "updatedAt": 1768116054495 358 + }, 359 + { 360 + "title": "foreignObject datapoint slot", 361 + "component": "vue-ui-quadrant.vue", 362 + "description": "Add a #datapoint scoped slot exposing the datapoint data inside a foreignObject. This would allow to display rich content (icons, images) instead of default shapes. Beware of browser compatibility, as Safari sucks with foreignObjects.", 363 + "priority": 0, 364 + "author": "graphieros", 365 + "done": true, 366 + "exchanges": [], 367 + "type": "feature", 368 + "withComponentCheckList": false, 369 + "checkList": {}, 370 + "withCustomCheckList": false, 371 + "customCheckList": {}, 372 + "id": "206a2a09-b9df-4666-be92-1dd8e81b38bd", 373 + "createdAt": 1768128369314, 374 + "updatedAt": 1768149949476 375 + }, 376 + { 377 + "title": "Icon maker", 378 + "component": "ArenaVueUiIcon.vue", 379 + "description": "Add an icon maker, with preview. Also add a feature to offset a path by x and or y.", 380 + "priority": 0, 381 + "author": "graphieros", 382 + "done": true, 383 + "exchanges": [], 384 + "type": "dev", 385 + "withComponentCheckList": false, 386 + "checkList": {}, 387 + "withCustomCheckList": false, 388 + "customCheckList": {}, 389 + "id": "1d61a77b-5ded-449c-b109-9b75f73a696d", 390 + "createdAt": 1768322796718, 391 + "updatedAt": 1768324501221 392 + }, 393 + { 394 + "title": "Annotator straight lines", 395 + "component": "PenAndPaper.vue", 396 + "description": "Add a 'straight line' mode, click drag and release to set 2 coordinates for a line. An option to use an arrow at the release point could be nice. Either a new button, or the existing text/freehand is used to toggle between the 3 states.", 397 + "priority": 0, 398 + "author": "graphieros", 399 + "done": true, 400 + "exchanges": [], 401 + "type": "feature", 402 + "withComponentCheckList": false, 403 + "checkList": {}, 404 + "withCustomCheckList": false, 405 + "customCheckList": {}, 406 + "id": "ccc95bca-2f75-4051-b996-433cbc3bc8f1", 407 + "createdAt": 1768934624356, 408 + "updatedAt": 1768977507024 409 + }, 410 + { 411 + "title": "Remove overrides", 412 + "component": "Any", 413 + "description": "Remove useless overrides in prepareConfig functions for config attributes with null defaults", 414 + "priority": 0, 415 + "author": "graphieros", 416 + "done": true, 417 + "exchanges": [], 418 + "type": "feature", 419 + "withComponentCheckList": false, 420 + "checkList": {}, 421 + "withCustomCheckList": true, 422 + "customCheckList": { 423 + "vue-ui-donut": true, 424 + "vue-ui-candlestick": true, 425 + "vue-ui-donut-evolution": true, 426 + "vue-ui-heatmap": true, 427 + "vue-ui-history-plot": true, 428 + "vue-ui-nested-donuts": true, 429 + "vue-ui-quick-chart": true, 430 + "vue-ui-sparkline": true, 431 + "vue-ui-stackbar": true, 432 + "vue-ui-world": true, 433 + "vue-ui-xy-canvas": true, 434 + "vue-ui-xy": true 435 + }, 436 + "id": "78527b31-adba-4bfc-9d90-5d685d98e260", 437 + "createdAt": 1769019497584, 438 + "updatedAt": 1769065184645 439 + }, 440 + { 441 + "title": "Legend toggle", 442 + "component": "", 443 + "description": "Add an optional toggle in the legend to un|select series.", 444 + "priority": 0, 445 + "author": "graphieros", 446 + "done": true, 447 + "exchanges": [], 448 + "type": "feature", 449 + "withComponentCheckList": false, 450 + "checkList": {}, 451 + "withCustomCheckList": true, 452 + "customCheckList": { 453 + "vue-ui-xy": true, 454 + "vue-ui-donut-evolution": true, 455 + "vue-ui-donut": true, 456 + "vue-ui-nested-donuts": true, 457 + "vue-ui-horizontal-bar": true, 458 + "vue-ui-galaxy": true, 459 + "vue-ui-history-plot": true, 460 + "vue-ui-onion": true, 461 + "vue-ui-parallel-coordinate-plot": true, 462 + "vue-ui-quadrant": true, 463 + "vue-ui-quick-chart": true, 464 + "vue-ui-radar": true, 465 + "vue-ui-ridgeline": true, 466 + "vue-ui-rings": true, 467 + "vue-ui-scatter": true, 468 + "vue-ui-stackbar": true, 469 + "vue-ui-stackline": true, 470 + "vue-ui-treemap": true, 471 + "vue-ui-waffle": true, 472 + "vue-ui-world": true, 473 + "vue-ui-xy-canvas": true, 474 + "vue-ui-sparkstackbar": true 475 + }, 476 + "id": "b6517f42-f509-4753-a733-75da4efe30d8", 477 + "createdAt": 1769100362708, 478 + "updatedAt": 1769235461769 479 + }, 480 + { 481 + "title": "VueUiRings examples", 482 + "component": "", 483 + "description": "Add examples for VueUiRings (basic layout, layout with data labels)", 484 + "priority": 0, 485 + "author": "graphieros", 486 + "done": true, 487 + "exchanges": [], 488 + "type": "docs", 489 + "withComponentCheckList": false, 490 + "checkList": {}, 491 + "withCustomCheckList": false, 492 + "customCheckList": {}, 493 + "id": "19aaae9b-d741-4d08-af19-150451f3a00e", 494 + "createdAt": 1769158957994, 495 + "updatedAt": 1769247029944 496 + }, 497 + { 498 + "title": "Sparkline pulse", 499 + "component": "vue-ui-sparkline", 500 + "description": "Optional pulse config, along the path. Configurable (color, duration, size)", 501 + "priority": 2, 502 + "author": "graphieros", 503 + "done": true, 504 + "exchanges": [], 505 + "type": "feature", 506 + "withComponentCheckList": false, 507 + "checkList": {}, 508 + "withCustomCheckList": false, 509 + "customCheckList": {}, 510 + "id": "73cfb4ef-cdc9-4f12-b513-68d61ab9b51f", 511 + "createdAt": 1769258902001, 512 + "updatedAt": 1769271441343 513 + }, 514 + { 515 + "title": "zoom max width", 516 + "component": "Slicer.vue, SlicerPreview.vue", 517 + "description": "Add prop (controlled by parent config under zoom.maxWidth) and set margin: 0 auto on zoom container. Should be null by default to keep current behavior intact.", 518 + "priority": 0, 519 + "author": "graphieros", 520 + "done": true, 521 + "exchanges": [], 522 + "type": "feature", 523 + "withComponentCheckList": false, 524 + "checkList": {}, 525 + "withCustomCheckList": true, 526 + "customCheckList": { 527 + "vue-ui-xy.vue": true, 528 + "vue-ui-xy-canvas.vue": true, 529 + "vue-ui-donut-evolution.vue": true, 530 + "vue-ui-quick-chart.vue": true, 531 + "vue-ui-candlestick.vue": true, 532 + "vue-ui-stackline.vue": true, 533 + "vue-ui-stackbar.vue": true 534 + }, 535 + "id": "77718438-e0c6-40c9-af91-6ac3a470e7b4", 536 + "createdAt": 1769515698809, 537 + "updatedAt": 1769546402958 538 + }, 539 + { 540 + "title": "custom config & dataset for built-in loaders", 541 + "component": "", 542 + "description": "_", 543 + "priority": 2, 544 + "author": "graphieros", 545 + "done": true, 546 + "exchanges": [], 547 + "type": "feature", 548 + "withComponentCheckList": true, 549 + "checkList": { 550 + "VueUi3dBar": true, 551 + "VueUiAgePyramid": true, 552 + "VueUiAnnotator": true, 553 + "VueUiBullet": true, 554 + "VueUiBump": true, 555 + "VueUiCandlestick": true, 556 + "VueUiCarouselTable": true, 557 + "VueUiChestnut": true, 558 + "VueUiChord": true, 559 + "VueUiCirclePack": true, 560 + "VueUiDag": true, 561 + "VueUiDashboard": true, 562 + "VueUiDigits": true, 563 + "VueUiDonut": true, 564 + "VueUiDonutEvolution": true, 565 + "VueUiDumbbell": true, 566 + "VueUiFlow": true, 567 + "VueUiFunnel": true, 568 + "VueUiGalaxy": true, 569 + "VueUiGauge": true, 570 + "VueUiGeo": true, 571 + "VueUiGizmo": true, 572 + "VueUiHeatmap": true, 573 + "VueUiHistoryPlot": true, 574 + "VueUiHorizontalBar": true, 575 + "VueUiKpi": true, 576 + "VueUiMiniLoader": true, 577 + "VueUiMolecule": true, 578 + "VueUiMoodRadar": true, 579 + "VueUiNestedDonuts": true, 580 + "VueUiOnion": true, 581 + "VueUiParallelCoordinatePlot": true, 582 + "VueUiQuadrant": true, 583 + "VueUiQuickChart": true, 584 + "VueUiRadar": true, 585 + "VueUiRating": true, 586 + "VueUiRelationCircle": true, 587 + "VueUiRidgeline": true, 588 + "VueUiRings": true, 589 + "VueUiScatter": true, 590 + "VueUiSkeleton": true, 591 + "VueUiSmiley": true, 592 + "VueUiSparkbar": true, 593 + "VueUiSparkgauge": true, 594 + "VueUiSparkHistogram": true, 595 + "VueUiSparkline": true, 596 + "VueUiSparkStackbar": true, 597 + "VueUiSparkTrend": true, 598 + "VueUiStackbar": true, 599 + "VueUiStackline": true, 600 + "VueUiStripPlot": true, 601 + "VueUiTable": true, 602 + "VueUiTableSparkline": true, 603 + "VueUiThermometer": true, 604 + "VueUiTimer": true, 605 + "VueUiTiremarks": true, 606 + "VueUiTreemap": true, 607 + "VueUiWaffle": true, 608 + "VueUiWheel": true, 609 + "VueUiWordCloud": true, 610 + "VueUiWorld": true, 611 + "VueUiXy": true, 612 + "VueUiXyCanvas": true 613 + }, 614 + "withCustomCheckList": false, 615 + "customCheckList": {}, 616 + "id": "da529811-502a-4547-ad00-bfa3d8567adb", 617 + "createdAt": 1769881575780, 618 + "updatedAt": 1769960789717 619 + }, 620 + { 621 + "title": "better og", 622 + "component": "", 623 + "description": "current og is ugly ", 624 + "priority": 0, 625 + "author": "graphieros", 626 + "done": true, 627 + "exchanges": [], 628 + "type": "docs", 629 + "withComponentCheckList": false, 630 + "checkList": {}, 631 + "withCustomCheckList": false, 632 + "customCheckList": {}, 633 + "id": "4c9a57ab-d46c-4d7f-906b-b4823dd5fa2c", 634 + "createdAt": 1769881867515, 635 + "updatedAt": 1769890734130 636 + }, 637 + { 638 + "title": "expose isPrintingImg & isPrintingSvg in #svg slot", 639 + "component": "", 640 + "description": "_", 641 + "priority": 0, 642 + "author": "graphieros", 643 + "done": true, 644 + "exchanges": [], 645 + "type": "feature", 646 + "withComponentCheckList": true, 647 + "checkList": { 648 + "VueUi3dBar": true, 649 + "VueUiAgePyramid": true, 650 + "VueUiAnnotator": true, 651 + "VueUiBullet": true, 652 + "VueUiBump": true, 653 + "VueUiCandlestick": true, 654 + "VueUiCarouselTable": true, 655 + "VueUiChestnut": true, 656 + "VueUiChord": true, 657 + "VueUiCirclePack": true, 658 + "VueUiDag": true, 659 + "VueUiDashboard": true, 660 + "VueUiDigits": true, 661 + "VueUiDonut": true, 662 + "VueUiDonutEvolution": true, 663 + "VueUiDumbbell": true, 664 + "VueUiFlow": true, 665 + "VueUiFunnel": true, 666 + "VueUiGalaxy": true, 667 + "VueUiGauge": true, 668 + "VueUiGeo": true, 669 + "VueUiGizmo": true, 670 + "VueUiHeatmap": true, 671 + "VueUiHistoryPlot": true, 672 + "VueUiHorizontalBar": true, 673 + "VueUiKpi": true, 674 + "VueUiMiniLoader": true, 675 + "VueUiMolecule": true, 676 + "VueUiMoodRadar": true, 677 + "VueUiNestedDonuts": true, 678 + "VueUiOnion": true, 679 + "VueUiParallelCoordinatePlot": true, 680 + "VueUiQuadrant": true, 681 + "VueUiQuickChart": true, 682 + "VueUiRadar": true, 683 + "VueUiRating": true, 684 + "VueUiRelationCircle": true, 685 + "VueUiRidgeline": true, 686 + "VueUiRings": true, 687 + "VueUiScatter": true, 688 + "VueUiSkeleton": true, 689 + "VueUiSmiley": true, 690 + "VueUiSparkbar": true, 691 + "VueUiSparkgauge": true, 692 + "VueUiSparkHistogram": true, 693 + "VueUiSparkline": true, 694 + "VueUiSparkStackbar": true, 695 + "VueUiSparkTrend": true, 696 + "VueUiStackbar": true, 697 + "VueUiStackline": true, 698 + "VueUiStripPlot": true, 699 + "VueUiTable": true, 700 + "VueUiTableSparkline": true, 701 + "VueUiThermometer": true, 702 + "VueUiTimer": true, 703 + "VueUiTiremarks": true, 704 + "VueUiTreemap": true, 705 + "VueUiWaffle": true, 706 + "VueUiWheel": true, 707 + "VueUiWordCloud": true, 708 + "VueUiWorld": true, 709 + "VueUiXy": true, 710 + "VueUiXyCanvas": true 711 + }, 712 + "withCustomCheckList": false, 713 + "customCheckList": {}, 714 + "id": "3290cf0e-0703-4939-8eca-fa89c0117971", 715 + "createdAt": 1770612602181, 716 + "updatedAt": 1770620246727 717 + }, 718 + { 719 + "title": "alt user option button", 720 + "component": "", 721 + "description": "Add icon, callback exposing formatted dataset, and config", 722 + "priority": 1, 723 + "author": "graphieros", 724 + "done": true, 725 + "exchanges": [], 726 + "type": "feature", 727 + "withComponentCheckList": true, 728 + "checkList": { 729 + "VueUi3dBar": true, 730 + "VueUiAgePyramid": true, 731 + "VueUiAnnotator": true, 732 + "VueUiBullet": true, 733 + "VueUiBump": true, 734 + "VueUiCandlestick": true, 735 + "VueUiCarouselTable": true, 736 + "VueUiChestnut": true, 737 + "VueUiChord": true, 738 + "VueUiCirclePack": true, 739 + "VueUiDag": true, 740 + "VueUiDashboard": true, 741 + "VueUiDigits": true, 742 + "VueUiDonut": true, 743 + "VueUiDonutEvolution": true, 744 + "VueUiDumbbell": true, 745 + "VueUiFlow": true, 746 + "VueUiFunnel": true, 747 + "VueUiGalaxy": true, 748 + "VueUiGauge": true, 749 + "VueUiGeo": true, 750 + "VueUiGizmo": true, 751 + "VueUiHeatmap": true, 752 + "VueUiHistoryPlot": true, 753 + "VueUiHorizontalBar": true, 754 + "VueUiKpi": true, 755 + "VueUiMiniLoader": true, 756 + "VueUiMolecule": true, 757 + "VueUiMoodRadar": true, 758 + "VueUiNestedDonuts": true, 759 + "VueUiOnion": true, 760 + "VueUiParallelCoordinatePlot": true, 761 + "VueUiQuadrant": true, 762 + "VueUiQuickChart": true, 763 + "VueUiRadar": true, 764 + "VueUiRating": true, 765 + "VueUiRelationCircle": true, 766 + "VueUiRidgeline": true, 767 + "VueUiRings": true, 768 + "VueUiScatter": true, 769 + "VueUiSkeleton": true, 770 + "VueUiSmiley": true, 771 + "VueUiSparkbar": true, 772 + "VueUiSparkgauge": true, 773 + "VueUiSparkHistogram": true, 774 + "VueUiSparkline": true, 775 + "VueUiSparkStackbar": true, 776 + "VueUiSparkTrend": true, 777 + "VueUiStackbar": true, 778 + "VueUiStackline": true, 779 + "VueUiStripPlot": true, 780 + "VueUiTable": true, 781 + "VueUiTableSparkline": true, 782 + "VueUiThermometer": true, 783 + "VueUiTimer": true, 784 + "VueUiTiremarks": true, 785 + "VueUiTreemap": true, 786 + "VueUiWaffle": true, 787 + "VueUiWheel": true, 788 + "VueUiWordCloud": true, 789 + "VueUiWorld": true, 790 + "VueUiXy": true, 791 + "VueUiXyCanvas": true 792 + }, 793 + "withCustomCheckList": false, 794 + "customCheckList": {}, 795 + "id": "8dac1881-6e6d-485b-9311-0a5548bb2c67", 796 + "createdAt": 1770647295555, 797 + "updatedAt": 1770898486988 798 + }, 799 + { 800 + "title": "set cursor pointer as opt in", 801 + "component": "All", 802 + "description": "Cursor default, and opt-in through config.", 803 + "priority": 2, 804 + "author": "graphieros", 805 + "done": true, 806 + "exchanges": [], 807 + "type": "feature", 808 + "withComponentCheckList": true, 809 + "checkList": { 810 + "VueUi3dBar": true, 811 + "VueUiAgePyramid": true, 812 + "VueUiAnnotator": true, 813 + "VueUiBullet": true, 814 + "VueUiBump": true, 815 + "VueUiCandlestick": true, 816 + "VueUiCarouselTable": true, 817 + "VueUiChestnut": true, 818 + "VueUiChord": true, 819 + "VueUiCirclePack": true, 820 + "VueUiDag": true, 821 + "VueUiDashboard": true, 822 + "VueUiDigits": true, 823 + "VueUiDonut": true, 824 + "VueUiDonutEvolution": true, 825 + "VueUiDumbbell": true, 826 + "VueUiFlow": true, 827 + "VueUiFunnel": true, 828 + "VueUiGalaxy": true, 829 + "VueUiGauge": true, 830 + "VueUiGeo": true, 831 + "VueUiGizmo": true, 832 + "VueUiHeatmap": true, 833 + "VueUiHistoryPlot": true, 834 + "VueUiHorizontalBar": true, 835 + "VueUiKpi": true, 836 + "VueUiMiniLoader": true, 837 + "VueUiMolecule": true, 838 + "VueUiMoodRadar": true, 839 + "VueUiNestedDonuts": true, 840 + "VueUiOnion": true, 841 + "VueUiParallelCoordinatePlot": true, 842 + "VueUiQuadrant": true, 843 + "VueUiQuickChart": true, 844 + "VueUiRadar": true, 845 + "VueUiRating": true, 846 + "VueUiRelationCircle": true, 847 + "VueUiRidgeline": true, 848 + "VueUiRings": true, 849 + "VueUiScatter": true, 850 + "VueUiSkeleton": true, 851 + "VueUiSmiley": true, 852 + "VueUiSparkbar": true, 853 + "VueUiSparkgauge": true, 854 + "VueUiSparkHistogram": true, 855 + "VueUiSparkline": true, 856 + "VueUiSparkStackbar": true, 857 + "VueUiSparkTrend": true, 858 + "VueUiStackbar": true, 859 + "VueUiStackline": true, 860 + "VueUiStripPlot": true, 861 + "VueUiTable": true, 862 + "VueUiTableSparkline": true, 863 + "VueUiThermometer": true, 864 + "VueUiTimer": true, 865 + "VueUiTiremarks": true, 866 + "VueUiTreemap": true, 867 + "VueUiWaffle": true, 868 + "VueUiWheel": true, 869 + "VueUiWordCloud": true, 870 + "VueUiWorld": true, 871 + "VueUiXy": true, 872 + "VueUiXyCanvas": true 873 + }, 874 + "withCustomCheckList": false, 875 + "customCheckList": {}, 876 + "id": "8b428e5f-1a7c-4128-8783-5de820a4c905", 877 + "createdAt": 1770647363014, 878 + "updatedAt": 1770741668889 879 + }, 880 + { 881 + "title": "dashed segments", 882 + "component": "VueUiXy", 883 + "description": "In dataset items, add a dashedIndices attr that makes connections to this datapoint overlayed with a dashed line.\nHas to work seamlessly with curved lines.", 884 + "priority": 2, 885 + "author": "graphieros", 886 + "done": true, 887 + "exchanges": [], 888 + "type": "feature", 889 + "withComponentCheckList": false, 890 + "checkList": {}, 891 + "withCustomCheckList": false, 892 + "customCheckList": {}, 893 + "id": "e1ddf2d2-fbaf-4f01-b02f-ada800296f36", 894 + "createdAt": 1770708474325, 895 + "updatedAt": 1770791800023 896 + }, 897 + { 898 + "title": "add optionAltCopy slots", 899 + "component": "", 900 + "description": "Add missing optionAltCopy slot in all components", 901 + "priority": 2, 902 + "author": "graphieros", 903 + "done": true, 904 + "exchanges": [], 905 + "type": "feature", 906 + "withComponentCheckList": true, 907 + "checkList": { 908 + "VueUi3dBar": true, 909 + "VueUiAgePyramid": true, 910 + "VueUiAnnotator": true, 911 + "VueUiBullet": true, 912 + "VueUiBump": true, 913 + "VueUiCandlestick": true, 914 + "VueUiCarouselTable": true, 915 + "VueUiChestnut": true, 916 + "VueUiChord": true, 917 + "VueUiCirclePack": true, 918 + "VueUiDag": true, 919 + "VueUiDashboard": true, 920 + "VueUiDigits": true, 921 + "VueUiDonut": true, 922 + "VueUiDonutEvolution": true, 923 + "VueUiDumbbell": true, 924 + "VueUiFlow": true, 925 + "VueUiFunnel": true, 926 + "VueUiGalaxy": true, 927 + "VueUiGauge": true, 928 + "VueUiGeo": true, 929 + "VueUiGizmo": true, 930 + "VueUiHeatmap": true, 931 + "VueUiHistoryPlot": true, 932 + "VueUiHorizontalBar": true, 933 + "VueUiKpi": true, 934 + "VueUiMiniLoader": true, 935 + "VueUiMolecule": true, 936 + "VueUiMoodRadar": true, 937 + "VueUiNestedDonuts": true, 938 + "VueUiOnion": true, 939 + "VueUiParallelCoordinatePlot": true, 940 + "VueUiQuadrant": true, 941 + "VueUiQuickChart": true, 942 + "VueUiRadar": true, 943 + "VueUiRating": true, 944 + "VueUiRelationCircle": true, 945 + "VueUiRidgeline": true, 946 + "VueUiRings": true, 947 + "VueUiScatter": true, 948 + "VueUiSkeleton": true, 949 + "VueUiSmiley": true, 950 + "VueUiSparkbar": true, 951 + "VueUiSparkgauge": true, 952 + "VueUiSparkHistogram": true, 953 + "VueUiSparkline": true, 954 + "VueUiSparkStackbar": true, 955 + "VueUiSparkTrend": true, 956 + "VueUiStackbar": true, 957 + "VueUiStackline": true, 958 + "VueUiStripPlot": true, 959 + "VueUiTable": true, 960 + "VueUiTableSparkline": true, 961 + "VueUiThermometer": true, 962 + "VueUiTimer": true, 963 + "VueUiTiremarks": true, 964 + "VueUiTreemap": true, 965 + "VueUiWaffle": true, 966 + "VueUiWheel": true, 967 + "VueUiWordCloud": true, 968 + "VueUiWorld": true, 969 + "VueUiXy": true, 970 + "VueUiXyCanvas": true 971 + }, 972 + "withCustomCheckList": false, 973 + "customCheckList": {}, 974 + "id": "741ecd80-fe86-4532-9361-a22d2969121e", 975 + "createdAt": 1770904531442, 976 + "updatedAt": 1770910157841 977 + }, 978 + { 979 + "title": "Add path gradient option", 980 + "component": "VueUiXy", 981 + "description": "Add temperature options (at datapoint level, useTemperature with color array to enable). Creates a linear gradient (vertical) which defines color stops to use on the path stroke.", 982 + "priority": 1, 983 + "author": "graphieros", 984 + "done": true, 985 + "exchanges": [], 986 + "type": "feature", 987 + "withComponentCheckList": false, 988 + "checkList": {}, 989 + "withCustomCheckList": false, 990 + "customCheckList": {}, 991 + "id": "7512f7b1-d453-40e1-9eb7-eb99fb4c3647", 992 + "createdAt": 1771600690852, 993 + "updatedAt": 1771605663209 994 + }, 995 + { 996 + "title": "a11y - Step 1", 997 + "component": "", 998 + "description": "Implement KBD nav for datapoints in svg, with tooltip triggers if applicable.", 999 + "priority": 1, 1000 + "author": "graphieros", 1001 + "done": true, 1002 + "exchanges": [], 1003 + "type": "feature", 1004 + "withComponentCheckList": true, 1005 + "checkList": { 1006 + "VueUi3dBar": true, 1007 + "VueUiAgePyramid": true, 1008 + "VueUiAnnotator": true, 1009 + "VueUiBullet": true, 1010 + "VueUiBump": true, 1011 + "VueUiCandlestick": true, 1012 + "VueUiCarouselTable": true, 1013 + "VueUiChestnut": true, 1014 + "VueUiChord": true, 1015 + "VueUiCirclePack": true, 1016 + "VueUiDag": true, 1017 + "VueUiDashboard": true, 1018 + "VueUiDigits": true, 1019 + "VueUiDonut": true, 1020 + "VueUiDonutEvolution": true, 1021 + "VueUiDumbbell": true, 1022 + "VueUiFlow": true, 1023 + "VueUiFunnel": true, 1024 + "VueUiGalaxy": true, 1025 + "VueUiGauge": true, 1026 + "VueUiGeo": true, 1027 + "VueUiGizmo": true, 1028 + "VueUiHeatmap": true, 1029 + "VueUiHistoryPlot": true, 1030 + "VueUiHorizontalBar": true, 1031 + "VueUiKpi": true, 1032 + "VueUiMiniLoader": true, 1033 + "VueUiMolecule": true, 1034 + "VueUiMoodRadar": true, 1035 + "VueUiNestedDonuts": true, 1036 + "VueUiOnion": true, 1037 + "VueUiParallelCoordinatePlot": true, 1038 + "VueUiQuadrant": true, 1039 + "VueUiQuickChart": true, 1040 + "VueUiRadar": true, 1041 + "VueUiRating": true, 1042 + "VueUiRelationCircle": true, 1043 + "VueUiRidgeline": true, 1044 + "VueUiRings": true, 1045 + "VueUiScatter": true, 1046 + "VueUiSkeleton": true, 1047 + "VueUiSmiley": true, 1048 + "VueUiSparkbar": true, 1049 + "VueUiSparkgauge": true, 1050 + "VueUiSparkHistogram": true, 1051 + "VueUiSparkline": true, 1052 + "VueUiSparkStackbar": true, 1053 + "VueUiSparkTrend": true, 1054 + "VueUiStackbar": true, 1055 + "VueUiStackline": true, 1056 + "VueUiStripPlot": true, 1057 + "VueUiTable": true, 1058 + "VueUiTableSparkline": true, 1059 + "VueUiThermometer": true, 1060 + "VueUiTimer": true, 1061 + "VueUiTiremarks": true, 1062 + "VueUiTreemap": true, 1063 + "VueUiWaffle": true, 1064 + "VueUiWheel": true, 1065 + "VueUiWordCloud": true, 1066 + "VueUiWorld": true, 1067 + "VueUiXy": true, 1068 + "VueUiXyCanvas": true 1069 + }, 1070 + "withCustomCheckList": false, 1071 + "customCheckList": {}, 1072 + "id": "d8e18039-1f9f-4411-9ad5-c388fae38f74", 1073 + "createdAt": 1773475071384, 1074 + "updatedAt": 1774109095214 1075 + }, 1076 + { 1077 + "title": "Keep selected datapoint state from mouse to kbd navigation", 1078 + "component": "", 1079 + "description": "When switching from mouse to kbd nav (which is useful sometimes to be precise), the selected index is lost. Keep this selection in memory to start kbd selection there. Also expose a isFocus bool in the hint slot.", 1080 + "priority": 2, 1081 + "author": "graphieros", 1082 + "done": true, 1083 + "exchanges": [], 1084 + "type": "bug", 1085 + "withComponentCheckList": false, 1086 + "checkList": {}, 1087 + "withCustomCheckList": true, 1088 + "customCheckList": { 1089 + "VueUiXy": true, 1090 + "VueUiXyCanvas": true, 1091 + "VueUiStackline": true, 1092 + "VueUiStackbar": true, 1093 + "VueUiCandlestick": true, 1094 + "VueUiDonutEvolution": true, 1095 + "VueUiSparkline": true 1096 + }, 1097 + "id": "a968f3fe-902c-44ad-bf44-0c7442b7bbcf", 1098 + "createdAt": 1774257264853, 1099 + "updatedAt": 1774300164456 1100 + }, 1101 + { 1102 + "title": "pen and paper color palette is not kbd navigable", 1103 + "component": "PenAndPaper", 1104 + "description": "Make the color palette kbd navigable", 1105 + "priority": 2, 1106 + "author": "graphieros", 1107 + "done": true, 1108 + "exchanges": [], 1109 + "type": "bug", 1110 + "withComponentCheckList": false, 1111 + "checkList": {}, 1112 + "withCustomCheckList": false, 1113 + "customCheckList": {}, 1114 + "id": "1fb5d75c-4fe9-4a61-a5af-4142b68c0da9", 1115 + "createdAt": 1774258628546, 1116 + "updatedAt": 1774302022297 1117 + }, 1118 + { 1119 + "title": "range input is reversed in kbd mode", 1120 + "component": "PenAndPaper", 1121 + "description": "The range input appears reversed when using kbd", 1122 + "priority": 0, 1123 + "author": "graphieros", 1124 + "done": false, 1125 + "exchanges": [], 1126 + "type": "bug", 1127 + "withComponentCheckList": false, 1128 + "checkList": {}, 1129 + "withCustomCheckList": false, 1130 + "customCheckList": {}, 1131 + "id": "d5c1dd67-f1bf-4538-88a9-c40d2e0355cd", 1132 + "createdAt": 1774258724742, 1133 + "updatedAt": 1774302956867 1134 + }, 1135 + { 1136 + "title": "VueUiQuadrant", 1137 + "component": "VueUiQuadrant", 1138 + "description": "Improvements", 1139 + "priority": 2, 1140 + "author": "graphieros", 1141 + "done": true, 1142 + "exchanges": [], 1143 + "type": "feature", 1144 + "withComponentCheckList": false, 1145 + "checkList": {}, 1146 + "withCustomCheckList": true, 1147 + "customCheckList": { 1148 + "optional zoom & style adjustments if not": true 1149 + }, 1150 + "id": "2e9cefe1-1664-431e-a078-b2088ea2bbeb", 1151 + "createdAt": 1775300014073, 1152 + "updatedAt": 1775374798605 1153 + }, 1154 + { 1155 + "title": "Make VueUiQuadrant more flexible", 1156 + "component": "VueUiQuadrant", 1157 + "description": "- Option to position axis labels on both sides or specific sides only", 1158 + "priority": 0, 1159 + "author": "graphieros", 1160 + "done": false, 1161 + "exchanges": [], 1162 + "type": "feature", 1163 + "withComponentCheckList": false, 1164 + "checkList": {}, 1165 + "withCustomCheckList": false, 1166 + "customCheckList": {}, 1167 + "id": "c1700cc2-dd89-4709-9877-9e48cfd72a09", 1168 + "createdAt": 1775660582373, 1169 + "updatedAt": 1775660603925 1170 + }, 1171 + { 1172 + "title": "slot types", 1173 + "component": "", 1174 + "description": "Add types for component slots, and test the validity of all TS types for configs and datasets.", 1175 + "priority": 1, 1176 + "author": "graphieros", 1177 + "done": true, 1178 + "exchanges": [], 1179 + "type": "feature", 1180 + "withComponentCheckList": true, 1181 + "checkList": { 1182 + "VueUi3dBar": true, 1183 + "VueUiAgePyramid": true, 1184 + "VueUiAnnotator": true, 1185 + "VueUiBullet": true, 1186 + "VueUiBump": true, 1187 + "VueUiCandlestick": true, 1188 + "VueUiCarouselTable": true, 1189 + "VueUiChestnut": true, 1190 + "VueUiChord": true, 1191 + "VueUiCirclePack": true, 1192 + "VueUiDag": true, 1193 + "VueUiDashboard": true, 1194 + "VueUiDigits": true, 1195 + "VueUiDonut": true, 1196 + "VueUiDonutEvolution": true, 1197 + "VueUiDumbbell": true, 1198 + "VueUiFlow": true, 1199 + "VueUiFunnel": true, 1200 + "VueUiGalaxy": true, 1201 + "VueUiGauge": true, 1202 + "VueUiGeo": true, 1203 + "VueUiGizmo": true, 1204 + "VueUiHeatmap": true, 1205 + "VueUiHistoryPlot": true, 1206 + "VueUiHorizontalBar": true, 1207 + "VueUiKpi": true, 1208 + "VueUiMiniLoader": true, 1209 + "VueUiMolecule": true, 1210 + "VueUiMoodRadar": true, 1211 + "VueUiNestedDonuts": true, 1212 + "VueUiOnion": true, 1213 + "VueUiParallelCoordinatePlot": true, 1214 + "VueUiQuadrant": true, 1215 + "VueUiQuickChart": true, 1216 + "VueUiRadar": true, 1217 + "VueUiRating": true, 1218 + "VueUiRelationCircle": true, 1219 + "VueUiRidgeline": true, 1220 + "VueUiRings": true, 1221 + "VueUiScatter": true, 1222 + "VueUiSkeleton": true, 1223 + "VueUiSmiley": true, 1224 + "VueUiSparkbar": true, 1225 + "VueUiSparkgauge": true, 1226 + "VueUiSparkHistogram": true, 1227 + "VueUiSparkline": true, 1228 + "VueUiSparkStackbar": true, 1229 + "VueUiSparkTrend": true, 1230 + "VueUiStackbar": true, 1231 + "VueUiStackline": true, 1232 + "VueUiStripPlot": true, 1233 + "VueUiTable": true, 1234 + "VueUiTableSparkline": true, 1235 + "VueUiThermometer": true, 1236 + "VueUiTimer": true, 1237 + "VueUiTiremarks": true, 1238 + "VueUiTreemap": true, 1239 + "VueUiWaffle": true, 1240 + "VueUiWheel": true, 1241 + "VueUiWordCloud": true, 1242 + "VueUiWorld": true, 1243 + "VueUiXy": true, 1244 + "VueUiXyCanvas": true 1245 + }, 1246 + "withCustomCheckList": false, 1247 + "customCheckList": {}, 1248 + "id": "3846f04c-685f-4509-8042-87b9c0b7ec33", 1249 + "createdAt": 1775989842046, 1250 + "updatedAt": 1777188516661 1251 + }, 1252 + { 1253 + "title": "Expose more methods", 1254 + "component": "", 1255 + "description": "Expose more construction methods. Combine all path generation in a single utility with options.", 1256 + "priority": 2, 1257 + "author": "graphieros", 1258 + "done": false, 1259 + "exchanges": [], 1260 + "type": "feature", 1261 + "withComponentCheckList": false, 1262 + "checkList": {}, 1263 + "withCustomCheckList": true, 1264 + "customCheckList": { 1265 + "adaptColorToBackground": true, 1266 + "createSmoothPath": false, 1267 + "createStraightPath": false, 1268 + "createSmoothPathWithCuts": false, 1269 + "createStraightPathWithCuts": false, 1270 + "createStepperPath": false 1271 + }, 1272 + "id": "ef0d34dc-adc3-4826-b117-38c8d7d4199c", 1273 + "createdAt": 1776182479567, 1274 + "updatedAt": 1777141476333 1275 + }, 1276 + { 1277 + "title": "Nested circle packing", 1278 + "component": "VueUiCirclePack", 1279 + "description": "Implement nested circle packing. Use scoreCircle for each parent", 1280 + "priority": 0, 1281 + "author": "graphieros", 1282 + "done": true, 1283 + "exchanges": [], 1284 + "type": "feature", 1285 + "withComponentCheckList": false, 1286 + "checkList": {}, 1287 + "withCustomCheckList": false, 1288 + "customCheckList": {}, 1289 + "id": "fa6454ad-e3e6-4d3c-8019-8ad0eedd296e", 1290 + "createdAt": 1776606115056, 1291 + "updatedAt": 1777793416469 1292 + }, 1293 + { 1294 + "title": "Stepper", 1295 + "component": "VueUiXy", 1296 + "description": "Add stepper option for line types #329", 1297 + "priority": 2, 1298 + "author": "graphieros", 1299 + "done": true, 1300 + "exchanges": [], 1301 + "type": "feature", 1302 + "withComponentCheckList": false, 1303 + "checkList": {}, 1304 + "withCustomCheckList": false, 1305 + "customCheckList": {}, 1306 + "id": "f7f87666-103d-43e6-9902-c7cfeb2d3d59", 1307 + "createdAt": 1777064557806, 1308 + "updatedAt": 1777064563814 1309 + }, 1310 + { 1311 + "title": "onEnter & onLeave in #legend", 1312 + "component": "All components with the #legend slot", 1313 + "description": "Add onEnter and onLeave methods to the #legend slot, to allow triggering datapoint highlighting", 1314 + "priority": 0, 1315 + "author": "graphieros", 1316 + "done": false, 1317 + "exchanges": [], 1318 + "type": "feature", 1319 + "withComponentCheckList": false, 1320 + "checkList": {}, 1321 + "withCustomCheckList": true, 1322 + "customCheckList": { 1323 + "VueUi3dBar": false, 1324 + "VueUiChestnut": false, 1325 + "VueUiChord": false, 1326 + "VueUiDonutEvolution": false, 1327 + "VueUiDonut": false, 1328 + "VueUiFlow": false, 1329 + "VueUiGalaxy": false, 1330 + "VueUiHistoryPlot": false, 1331 + "VueUiHorizontalBar": false, 1332 + "VueUiNestedDonuts": false, 1333 + "VueUiOnion": false, 1334 + "VueUiParallelCoordinatePlot": false, 1335 + "VueUiQuadrant": false, 1336 + "VueUiQuickChart": false, 1337 + "VueUiRadar": false, 1338 + "VueUiRidgeline": false, 1339 + "VueUiRings": false, 1340 + "VueUiScatter": true, 1341 + "VueUiStackbar": false, 1342 + "VueUiStackline": false, 1343 + "VueUiTreemap": false, 1344 + "VueUiWaffle": false, 1345 + "VueUiWorld": false, 1346 + "VueUiXyCanvas": false, 1347 + "VueUiXy": false 1348 + }, 1349 + "id": "1f78128e-67cd-4d2a-98c5-d03a4793ce88", 1350 + "createdAt": 1777351193418, 1351 + "updatedAt": 1777407735351 1352 + }, 1353 + { 1354 + "title": "VueUiStackline path stroke", 1355 + "component": "VueUiStackline", 1356 + "description": "Add config to control the stroke color for paths. useSerieColor usual thing", 1357 + "priority": 1, 1358 + "author": "graphieros", 1359 + "done": false, 1360 + "exchanges": [], 1361 + "type": "feature", 1362 + "withComponentCheckList": false, 1363 + "checkList": {}, 1364 + "withCustomCheckList": false, 1365 + "customCheckList": {}, 1366 + "id": "5882f257-2c9c-4d9c-b9c4-9f9b084adcd9", 1367 + "createdAt": 1777908631920, 1368 + "updatedAt": 1777908631920 1369 + }, 1370 + { 1371 + "title": "y axis position", 1372 + "component": "", 1373 + "description": "Add config option to position y axis scales to the right", 1374 + "priority": 0, 1375 + "author": "graphieros", 1376 + "done": true, 1377 + "exchanges": [], 1378 + "type": "feature", 1379 + "withComponentCheckList": false, 1380 + "checkList": {}, 1381 + "withCustomCheckList": true, 1382 + "customCheckList": { 1383 + "vue-ui-xy": true, 1384 + "vue-ui-stackbar": true, 1385 + "vue-ui-stackline": true, 1386 + "vue-ui-candlestick": true, 1387 + "vue-ui-donut-evolution": true 1388 + }, 1389 + "id": "676d3ed1-3734-41e0-87ec-bbfb4e32b2cf", 1390 + "createdAt": 1778739184067, 1391 + "updatedAt": 1778767022317 1392 + }, 1393 + { 1394 + "title": "emit selectLegend from legend toggle ", 1395 + "component": "", 1396 + "description": "@selectLegend should be emitted when using the legend toggle", 1397 + "priority": 2, 1398 + "author": "graphieros", 1399 + "done": true, 1400 + "exchanges": [], 1401 + "type": "feature", 1402 + "withComponentCheckList": false, 1403 + "checkList": {}, 1404 + "withCustomCheckList": true, 1405 + "customCheckList": { 1406 + "vue-ui-donut": true, 1407 + "vue-ui-donut-evolution": true, 1408 + "vue-ui-galaxy": true, 1409 + "vue-ui-history-plot": true, 1410 + "vue-ui-horizontal-bar": true, 1411 + "vue-ui-nested-donuts": true, 1412 + "vue-ui-onion": true, 1413 + "vue-ui-parallel-coordinate-plot": true, 1414 + "vue-ui-quadrant": true, 1415 + "vue-ui-quick-chart": true, 1416 + "vue-ui-radar": true, 1417 + "vue-ui-ridgeline": true, 1418 + "vue-ui-rings": true, 1419 + "vue-ui-scatter": true, 1420 + "vue-ui-sparkstackbar": true, 1421 + "vue-ui-stackbar": true, 1422 + "vue-ui-stackline": true, 1423 + "vue-ui-treemap": true, 1424 + "vue-ui-waffle": true, 1425 + "vue-ui-world": true, 1426 + "vue-ui-xy": true, 1427 + "vue-ui-xy-canvas": true 1428 + }, 1429 + "id": "123cf2a9-6a76-42a2-a129-f071db272721", 1430 + "createdAt": 1779116028546, 1431 + "updatedAt": 1779163926858 1432 + }, 1433 + { 1434 + "title": "emit TS types", 1435 + "component": "", 1436 + "description": "Add type definitions for component emits", 1437 + "priority": 1, 1438 + "author": "graphieros", 1439 + "done": false, 1440 + "exchanges": [], 1441 + "type": "feature", 1442 + "withComponentCheckList": true, 1443 + "checkList": { 1444 + "VueUi3dBar": false, 1445 + "VueUiAgePyramid": false, 1446 + "VueUiAnnotator": false, 1447 + "VueUiBullet": false, 1448 + "VueUiBump": false, 1449 + "VueUiCandlestick": false, 1450 + "VueUiCarouselTable": false, 1451 + "VueUiChestnut": false, 1452 + "VueUiChord": false, 1453 + "VueUiCirclePack": false, 1454 + "VueUiDag": false, 1455 + "VueUiDashboard": false, 1456 + "VueUiDigits": false, 1457 + "VueUiDonut": false, 1458 + "VueUiDonutEvolution": false, 1459 + "VueUiDumbbell": false, 1460 + "VueUiFlow": false, 1461 + "VueUiFunnel": false, 1462 + "VueUiGalaxy": false, 1463 + "VueUiGauge": false, 1464 + "VueUiGeo": false, 1465 + "VueUiGizmo": false, 1466 + "VueUiHeatmap": false, 1467 + "VueUiHistoryPlot": false, 1468 + "VueUiHorizontalBar": false, 1469 + "VueUiKpi": false, 1470 + "VueUiMiniLoader": false, 1471 + "VueUiMolecule": false, 1472 + "VueUiMoodRadar": false, 1473 + "VueUiNestedDonuts": false, 1474 + "VueUiOnion": false, 1475 + "VueUiParallelCoordinatePlot": false, 1476 + "VueUiQuadrant": false, 1477 + "VueUiQuickChart": false, 1478 + "VueUiRadar": false, 1479 + "VueUiRating": false, 1480 + "VueUiRelationCircle": false, 1481 + "VueUiRidgeline": false, 1482 + "VueUiRings": false, 1483 + "VueUiScatter": false, 1484 + "VueUiSkeleton": false, 1485 + "VueUiSmiley": false, 1486 + "VueUiSparkbar": false, 1487 + "VueUiSparkgauge": false, 1488 + "VueUiSparkHistogram": false, 1489 + "VueUiSparkline": false, 1490 + "VueUiSparkStackbar": false, 1491 + "VueUiSparkTrend": false, 1492 + "VueUiStackbar": false, 1493 + "VueUiStackline": false, 1494 + "VueUiStripPlot": false, 1495 + "VueUiTable": false, 1496 + "VueUiTableSparkline": false, 1497 + "VueUiThermometer": false, 1498 + "VueUiTimer": false, 1499 + "VueUiTiremarks": false, 1500 + "VueUiTreemap": false, 1501 + "VueUiWaffle": false, 1502 + "VueUiWheel": false, 1503 + "VueUiWordCloud": false, 1504 + "VueUiWorld": false, 1505 + "VueUiXy": true, 1506 + "VueUiXyCanvas": false 1507 + }, 1508 + "withCustomCheckList": false, 1509 + "customCheckList": {}, 1510 + "id": "4b423dba-9fc5-45b8-9dca-20e1f2678b9e", 1511 + "createdAt": 1779169675598, 1512 + "updatedAt": 1779169685163 1513 + } 1514 + ] 1515 + }
+39 -1
ts-playground/src/components/charts/ts-vue-ui-xy.vue
··· 7 7 VueUiXy, 8 8 type VueUiXyConfig, 9 9 type VueUiXyDatasetItem, 10 + type VueUiXyEmitCopyAlt, 11 + type VueUiXyEmitSelectLegend, 12 + type VueUiXyEmitSelectTimeLabel, 13 + type VueUiXyEmitSelectX, 14 + type VueUiXyEmitZoom, 10 15 } from 'vue-data-ui/vue-ui-xy'; 11 16 import { mergeConfigs } from 'vue-data-ui/utils'; 12 17 import 'vue-data-ui/style.css'; ··· 576 581 }, 577 582 }); 578 583 }); 584 + 585 + function selectTimeLabel(payload: VueUiXyEmitSelectTimeLabel) { 586 + console.log('@selectTimeLabel', payload.datapoint); 587 + } 588 + 589 + function selectX(payload: VueUiXyEmitSelectX) { 590 + console.log('@selectX', payload); 591 + } 592 + 593 + function selectLegend(payload: VueUiXyEmitSelectLegend) { 594 + console.log('@selectLegend', payload); 595 + } 596 + 597 + function zoomStart(payload: VueUiXyEmitZoom) { 598 + console.log('@zoomStart', payload); 599 + } 600 + 601 + function zoomEnd(payload: VueUiXyEmitZoom) { 602 + console.log('@zoomEnd', payload); 603 + } 604 + 605 + function copyAlt(payload: VueUiXyEmitCopyAlt) { 606 + console.log('@copyAlt', payload); 607 + } 579 608 </script> 580 609 581 610 <template> 582 611 <div> 583 - <VueUiXy :dataset :config> 612 + <VueUiXy 613 + :dataset 614 + :config 615 + @selectTimeLabel="selectTimeLabel" 616 + @selectX="selectX" 617 + @selectLegend="selectLegend" 618 + @zoomStart="zoomStart" 619 + @zoomEnd="zoomEnd" 620 + @copyAlt="copyAlt" 621 + > 584 622 <!-- <template #legend="{ legend }"> 585 623 <XyLegend :items="legend" /> 586 624 </template> -->
+72 -1
types/vue-data-ui.d.ts
··· 5619 5619 selectedXIndex?: number | null; 5620 5620 }; 5621 5621 5622 - const VueUiXyBase: DefineComponent<VueUiXyProps>; 5622 + const VueUiXyBase: DefineComponent< 5623 + VueUiXyProps, 5624 + {}, 5625 + {}, 5626 + {}, 5627 + {}, 5628 + {}, 5629 + {}, 5630 + VueUiXyEmits 5631 + >; 5623 5632 5624 5633 export type VueUiXyLegendSlotProps = { 5625 5634 legend: VueUiXySeries; ··· 5743 5752 }; 5744 5753 export type VueUiWatermarkSlotProps = { 5745 5754 isPrinting: boolean; 5755 + }; 5756 + 5757 + export type VueUiXyEmitSelectTimeLabel = { 5758 + datapoint: Array<{ 5759 + shape: Shape; 5760 + name: string; 5761 + color: string; 5762 + type: 'line' | 'bar' | 'plot'; 5763 + value: number | null; 5764 + comments: string[]; 5765 + prefix: string; 5766 + suffix: string; 5767 + }>; 5768 + absoluteIndex: number; 5769 + label: string; 5770 + }; 5771 + 5772 + export type VueUiXyEmitSelectX = { 5773 + datapoint: { 5774 + name: string; 5775 + value: number | null; 5776 + color: string; 5777 + type: 'line' | 'bar' | 'plot'; 5778 + }; 5779 + index: number; 5780 + indexLabel: string; 5781 + }; 5782 + 5783 + export type VueUiXyEmitSelectLegend = Array<{ 5784 + name: string; 5785 + values: Array<number | null>; 5786 + color: string; 5787 + type: 'line' | 'bar' | 'plot'; 5788 + }>; 5789 + 5790 + export type VueUiXyEmitZoom = { 5791 + index: number; 5792 + isZoom: boolean; 5793 + }; 5794 + 5795 + export type VueUiXyEmitCopyAlt = { 5796 + config: VueUiXyConfig & { 5797 + formattedDates: Array<{ 5798 + text: string; 5799 + absoluteIndex: number; 5800 + }>; 5801 + }; 5802 + dataset: { 5803 + bars: VueUiXyDatasetBarItem[]; 5804 + lines: VueUiXyDatasetLineItem[]; 5805 + plots: VueUiXyDatasetPlotItem[]; 5806 + }; 5807 + }; 5808 + 5809 + export type VueUiXyEmits = { 5810 + selectTimeLabel: (payload: VueUiXyEmitSelectTimeLabel) => void; 5811 + selectX: (payload: VueUiXyEmitSelectX) => void; 5812 + selectLegend: (payload: VueUiXyEmitSelectLegend) => void; 5813 + zoomStart: (payload: VueUiXyEmitZoom) => void; 5814 + zoomEnd: (payload: VueUiXyEmitZoom) => void; 5815 + zoomReset: () => void; 5816 + copyAlt: (payload: VueUiXyEmitCopyAlt) => void; 5746 5817 }; 5747 5818 5748 5819 export const VueUiXy: typeof VueUiXyBase & {
+22 -1
types/vue-ui-xy.d.ts
··· 34 34 VueUiKeyboardNavigationHintSlotProps, 35 35 VueUiWatermarkSlotProps, 36 36 CommonAnnotatorSlots, 37 + VueUiXyEmits, 38 + VueUiXyEmitSelectTimeLabel, 39 + VueUiXyEmitSelectX, 40 + VueUiXyEmitSelectLegend, 41 + VueUiXyEmitZoom, 42 + VueUiXyEmitCopyAlt, 37 43 } from 'vue-data-ui'; 38 44 39 45 export type { ··· 70 76 VueUiKeyboardNavigationHintSlotProps, 71 77 VueUiWatermarkSlotProps, 72 78 CommonAnnotatorSlots, 79 + VueUiXyEmits, 80 + VueUiXyEmitSelectTimeLabel, 81 + VueUiXyEmitSelectX, 82 + VueUiXyEmitSelectLegend, 83 + VueUiXyEmitZoom, 84 + VueUiXyEmitCopyAlt, 73 85 }; 74 86 75 - declare const VueUiXyBase: DefineComponent<VueUiXyProps>; 87 + declare const VueUiXyBase: DefineComponent< 88 + VueUiXyProps, 89 + {}, 90 + {}, 91 + {}, 92 + {}, 93 + {}, 94 + {}, 95 + VueUiXyEmits 96 + >; 76 97 77 98 export const VueUiXy: typeof VueUiXyBase & { 78 99 new (): VueUiXyExpose & {