Skip to content

Latest commit

 

History

History
235 lines (162 loc) · 11.2 KB

File metadata and controls

235 lines (162 loc) · 11.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Added

  • Graph - Added context menus for nodes, edges and the graph background with relevant actions.
  • ElementsInfoPanel - Added a new panel to display some information about the currently selected nodes and edges.
  • Algorithms - Added traversal algorithms tab in the Algorithms modal.
  • Project - Adopted SonarQube for code quality analysis.
  • GenerationAlgorithms - Added a new graph generation algorithm for HLP graphs and unit tests. (Sorry about the diff pollution on MR 😇)
  • Tests - Added structure for unit, integration and end-to-end tests.
  • Graph - Implemented a tabbed interface for multiple graph instances, allowing users to create and manage different contexts and easily switch between them.
  • Modals - Implemented ConfirmModal for reusable confirmation dialogs across the app.
  • Graph - Added support for multiple graph instances with a workspace system.
  • Shortcuts - Added a GraphShortcutsBinding component to bind keyboard shortcuts to graph actions using the useGraphShortcuts hook.
  • Hooks - Implemented useGraphMutation hook to provide better syncronization between the core graph state and the React state, with methods for syncing metadata and selection.
  • Settings - Added settings for keyboard shortcuts configuration.
  • Settings - Applied ArrangeOn settings to graph operations (add node/edge, import, edit node/edge) to trigger automatic layout when enabled.
  • Settings - Implemented the settings modal with a tabbed interface for graph, layout, and style settings.
  • Project - Adopted React Compiler for better rendering performance.
  • Packages - Upgraded dependencies to their latest versions.
  • Env - Added empty .env file to enforce standard project practices.
  • Actions - Added an action for pull requests.
  • Project - Added minimum README content.
  • Graph - Implements validation for graph limits on action bar, generation algorithms and importing modal.
  • Actions - Added a new action for pre-deploy to automate changelog and version bumping.

Changed

  • Project - Adjustes ts.config files to share common properties and extend when needed;
  • Project - Adjusted files into subfolders for better organization;
  • Inputs - Adjusted ToggleInput to accept custom labels for on/off states.

Fixed

  • SonarQube - Fixed SonarQube issues reported after adoption.
  • Toasts - Fixed an issue where toast were always rendered beneath modals.

Added

  • Settings - Added persistence to localStorage;
  • Settings - Added graph element limits to SettingsProvider.
  • Hooks - Implemented usePropertyEditor hook to manage property editing state and logic for nodes and edges.
  • ActionBar - Added a display for the current application version.
  • ErrorHandling - Added a global error boundary component to catch and display errors gracefully to the user.
  • GenerationAlgorithms - Added minor helper function and a user feedback for when exceeding max edges for simple graphs.

Changed

  • Modals - Adjusted modals subtitle into a prop.
  • App - Adjusted modals to rendered at top level of the app to avoid z-index and overflow issues.
  • Contexts - Splited concerns of PopupsContext into ModalsContext for managing modal states and ToastsContext for managing toast notifications.
  • Contexts - Splitted concerns of GraphProvider into GraphRegistryProvider for managing graph instances, GraphMetaProvider for managing graph metadata (defaults, version, etc.) and GraphSelectionProvider for managing graph selection.
  • Project - Changed endOfLine in .prettierrc to 'lf'.
  • Inputs - Changed default import for named imports to be more consistent with the rest of the project.
  • Error - Renamed ParsedErrorToast to ParsedErrorToasts to better reflect a collection of toast configurations.

Fixed

  • ImportExportService - Fixed parsing of blank lines in text import.
  • TypeGuards - Fixed loose type guards for elements (NodeData and EdgesData) data.

Added

  • Actions - Added a release step for the project's pipeline.
  • GraphService - Added a resetGraph function to clear the current graph data and state.

Changed

  • Algorithms - Adjusted graph generation algorithms to use resetGraph instead of clearGraph for better state management.

Fixed

  • Logger - Fixed logs being stored in production.
  • Actions - Fixed deployment failing but deploying anyway.

Removed

  • Modals - Removed dead modal files from bad merge.
  • EdgeService - Removed dead property numEdges from the graph's data.

Added

  • UI - Added a toast notification system with support for different types (success, error, info) and positions.
  • UI - Introduced a settings context for managing application settings and defaults.
  • Project - Added a custom error class ParsedError for consistent error handling and user-friendly messages.

Changed

  • UI - Reduced and added clarification comment on artificial loading time of the application.
  • UI - Changed ModalsProvider to PopupsProvider to better reflect its purpose and added support for toasts.

Fixed

  • DEV - Fixed an issue with browser expecting css sourcemap.
  • DEV - Fixed an issue with the logger not capping logs properly, which could lead to memory issues.
  • UI - Fixed an issue with Select Input options not displaying titles correctly.

Added

  • UI - Implemented a modal system, including Import/Export (text, JSON, PNG, JPG), Help (tabbed documentation), and Algorithms modals.
  • UI - Added a ActionsBar with buttons for graph manipulation (add/remove nodes and edges, clear graph) and operations.
  • UI - Added a PropertiesBar with sections for graph info, layout configuration, and global node and edge style selection.
  • UI - Added support for directed graph visualization with a toggle in the Properties Bar.
  • Graph - Implemented autopan on node drag near viewport edges with configurable speed and margin.
  • Graph - Implemented graph generation algorithms service supporting 8 graph families (complete, grid, circle, star, wheel, bipartite, complete bipartite, simple) with configurable parameters.
  • Project - Added a centralized Logger system with context-scoped loggers, session log storage, and downloadable log export.
  • Project - Added centralized configuration defaults for algorithms, graph styles, and layouts.
  • Project - Adopted Prettier for code formatting (printWidth: 85, singleQuote: true, trailingComma: 'es5').
  • Workflow - Added a simplified deploy_to_pages.yml workflow for deploying to GitHub Pages.

Changed

  • UI - Replaced default font with 'Alan Sans'.
  • UI - Replaced the previous UI with a new React-based interface using DaisyUI and Tailwind CSS.
  • Graph - Replaced cose with fcose as the default layout algorithm.
  • Graph - Encapsulated core graph logic into stateless service functions (graphService, nodesService, edgesService, layoutService, importExportService).
  • Project - Migrated project build process from esbuild to Vite for improved development experience and performance.
  • Project - Updated project dependencies to their latest versions.
  • Project - Updated tsconfig.json with module paths for cleaner imports (@/, @Logger, @Modals, @Contexts, @Inputs).
  • Project - Reorganized project structure for better modularity, separating components, contexts, hooks, providers, services, config, and types.

Fixed

  • Edges - Fixed an issue where edge creation would fail when selecting nodes after a bounding box selection.

Removed

  • Project - Removed old vanilla JavaScript source files (app.ts, graph.ts, graphConfig.ts, userInterface.ts) and assets (src/public, docs/).
  • Workflow - Removed old build_and_deploy.yml workflow, issue/PR templates, and automation scripts (calculate_semver.sh, fetch_scopes.py, update_changelog.py).

Added

  • Graph - Introduced GraphConfig class for centralized configuration management.
  • UI - Added UserInterface class to handle UI interactions and events.
  • Project - Added Graph and UserInterface modules to improve modularity.

Changed

  • Graph - Refactored Graph class to encapsulate graph-related operations.
  • UI - Replaced ui.ts with userInterface.ts for better separation of concerns.
  • Project - Updated dependencies in package-lock.json and package.json to their latest versions.
  • HTML - Updated HTML structure to work better on screen sizes below 1000px.

Fixed

  • UI - Fixed layout panel toggling issues for grid and circle layouts.
  • Graph - Resolved edge and node property update inconsistencies.

Removed

  • UI - Removed nodes.ts, edges.ts, and ui.ts in favor of the new UserInterface class.
  • Project - Removed redundant safe-buffer and debug dependencies from package-lock.json.

Added

Changed

  • Project - Update fetch_scope script to from .sh to .py
  • Project - Update PR, Issue, and Feature templates, and moves version commits from tag commit to pre-release commit
  • Project - Changes deployment from gh-pages branch to main
  • UI - Refactors right bar into accordions for better user experience

Fixed

  • UI - Fixed wrong tooltips for grid layout properties
  • UI - Remove redundant text from left bar buttons
  • Project - Fix action input wrong usage

Removed

Added

  • Project - Adds option to toggle deployment to GitHub Pages

Changed

  • Project - Moves commits generated in version from gh release to release commit message

Fixed

  • Project - Fix action not fetching correct log
  • Project - Fix form templates wrong keys and filename

Removed

Added

  • Actions to automate the release process (W.I.P.)
  • Add a pull request template for saving time merging branches
  • Add a yaml issue and enhancement template so it makes reporting and suggesting easier
  • Updates README.md
  • Applies MIT License to repository;
  • Changes HTML to reflect new refactoring;
  • Split files into major elements;
  • Refactor functions to match typescript;
  • Adopted Keep A Changelog style and Semantic Versioning;
  • Bundle and transpile .ts code with esbuild;
  • Configure eslint rules and other meta files;
  • Import previous project files;
  • Setup structure;

Changed

  • Makes bug report and feature request template forms more friendly
  • /release directory renamed to /docs

Fixed

Removed

  • Remove commitlint and husky from the project
  • Remove changelog entries that don't reflect anymore