<commit_before>﻿WIP 2.3.6
DETAILED CHANGELOG:
+ Added edge endpoint calculation for rotated vertex that use ellipse, circle and rectangle math shape
+ Added VertexControl::LabelAttached and LabelDetached events which fires when new label is attached to VertexControl or detached from it
+ Added new parameter to GraphArea::UpdateParallelEdgesData(Dictionary<TEdge, EdgeControl> edgeList) to be able to specify edges list to parse for parallelization instead of full edge list parse
+ Added support for object visbility and attachable labels to GraphX serialization data
+ Added ZoomControl::ResetKeyBindings() method to clear all (incl default) set key bindings
+ Fixed ZoomControl dynamic content switch to corectly refresh viewfinder
+ Improved ZoomControl handling with disabled animation
+ Renamed ZoomControl::IsAnimationDisabled to IsAnimationEnabled and changed the logic according the modification
+ Renamed ZoomControl::MaximumZoomStep to ZoomStep and updated description
+ Implemented easy ZoomControl key bindings with BindKey() method and exposed base commands for zoom and pan actions to be able to bind keys for them 
+ Some class refactoring

RELEASE 2.3.5
FEATURES HIGHLIGHT:
 - Added new awesome vertex snapping feature on vertex drag. Many thanks to perturbare for this wonderful contibution! The feature is implemented around DragBehaviour class 
 and is represented in several new settings allowing the drag to be perform around some sort of virtual snap grid. Please read the comment for the DragBehaviour class for detailed info.
 - Added new feature & example preview in showcase app: graph data filtering. This feature allows you to filter the graph prior to layout generation or relayout based on the pipeline of 
 LogicCore::Filters that are processed sequentially. These filters can modify graph using custom logic. The output graph will be available for interaction along with the copy of the original 
 graph. User then may choose if he wish to revert graph to the original state or apply filtering results permanently.
 Please read the details at: http://panthernet.ru/forum/index.php/topic/346-235-graph-data-filtering-features/

DETAILED CHANGELOG:
 - Added Universal Windows Application support and example project
 - Added StateStorage::ImportState() method to allow state import/export logic between several graphs<commit_msg>+Changelog upd<commit_after>﻿RELEASE 2.3.6
DETAILED CHANGELOG:
- Added edge endpoint calculation for rotated vertex that use ellipse, circle and rectangle math shape
- Added VertexControl::LabelAttached and LabelDetached events which fires when new label is attached to VertexControl or detached from it
- Added new parameter to GraphArea::UpdateParallelEdgesData(Dictionary<TEdge, EdgeControl> edgeList) to be able to specify edges list to parse for parallelization instead of full edge list parse
- Added support for object visbility and attachable labels to GraphX serialization data
- Added ZoomControl::ResetKeyBindings() method to clear all (incl default) set key bindings
- Fixed ZoomControl dynamic content switch to corectly refresh viewfinder
- Improved ZoomControl handling with disabled animation
- Renamed ZoomControl::IsAnimationDisabled to IsAnimationEnabled and changed the logic according the modification
- Renamed ZoomControl::MaximumZoomStep to ZoomStep and updated description
- Implemented easy ZoomControl key bindings with BindKey() method and exposed base commands for zoom and pan actions to be able to bind keys for them 
- Some class refactoring

RELEASE 2.3.5
FEATURES HIGHLIGHT:
 - Added new awesome vertex snapping feature on vertex drag. Many thanks to perturbare for this wonderful contibution! The feature is implemented around DragBehaviour class 
 and is represented in several new settings allowing the drag to be perform around some sort of virtual snap grid. Please read the comment for the DragBehaviour class for detailed info.
 - Added new feature & example preview in showcase app: graph data filtering. This feature allows you to filter the graph prior to layout generation or relayout based on the pipeline of 
 LogicCore::Filters that are processed sequentially. These filters can modify graph using custom logic. The output graph will be available for interaction along with the copy of the original 
 graph. User then may choose if he wish to revert graph to the original state or apply filtering results permanently.
 Please read the details at: http://panthernet.ru/forum/index.php/topic/346-235-graph-data-filtering-features/

DETAILED CHANGELOG:
 - Added Universal Windows Application support and example project
 - Added StateStorage::ImportState() method to allow state import/export logic between several graphs
{'fraction_non_alphanumeric': 0.03490585995345885, 'fraction_numerical': 0.0050772159932303785, 'mean_word_length': 5.29560585885486, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4084150', 'n_tokens_mistral': 1124, 'n_tokens_neox': 1059, 'n_words': 618}