From 0bcfa26d26adecf71a1aaa3ef0cf04596fbd43d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=9A=D0=BE=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Fri, 4 Aug 2023 00:21:06 +0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Begin=20a=20project.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 166 +++++++++++ .gitignore | 345 ++++++++++++++++++++++ CHANGELOG.md | 37 +++ README.md | 7 +- TLD.sln | 20 ++ docs/Dependencies.png | Bin 0 -> 202900 bytes src/TUI/Controls/Copyright.cs | 16 + src/TUI/Controls/Dashboard.cs | 60 ++++ src/TUI/Controls/Display.cs | 73 +++++ src/TUI/Controls/IControl.cs | 11 + src/TUI/Controls/Position.cs | 3 + src/TUI/Controls/Table.cs | 74 +++++ src/TUI/Dashboards/DependencyDashboard.cs | 156 ++++++++++ src/TUI/Domain/Dependency.cs | 26 ++ src/TUI/Domain/Package.cs | 26 ++ src/TUI/Domain/Project.cs | 21 ++ src/TUI/Domain/Settings.cs | 22 ++ src/TUI/Domain/Source.cs | 17 ++ src/TUI/Extensions.cs | 24 ++ src/TUI/Program.cs | 32 ++ src/TUI/TUI.csproj | 21 ++ src/TUI/UserInterface/Header.cs | 39 +++ src/TUI/UserInterface/Palette.cs | 13 + src/TUI/UserInterface/Panel.cs | 96 ++++++ src/TUI/UserInterface/Theme.cs | 7 + 25 files changed, 1311 insertions(+), 1 deletion(-) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 TLD.sln create mode 100644 docs/Dependencies.png create mode 100644 src/TUI/Controls/Copyright.cs create mode 100644 src/TUI/Controls/Dashboard.cs create mode 100644 src/TUI/Controls/Display.cs create mode 100644 src/TUI/Controls/IControl.cs create mode 100644 src/TUI/Controls/Position.cs create mode 100644 src/TUI/Controls/Table.cs create mode 100644 src/TUI/Dashboards/DependencyDashboard.cs create mode 100644 src/TUI/Domain/Dependency.cs create mode 100644 src/TUI/Domain/Package.cs create mode 100644 src/TUI/Domain/Project.cs create mode 100644 src/TUI/Domain/Settings.cs create mode 100644 src/TUI/Domain/Source.cs create mode 100644 src/TUI/Extensions.cs create mode 100644 src/TUI/Program.cs create mode 100644 src/TUI/TUI.csproj create mode 100644 src/TUI/UserInterface/Header.cs create mode 100644 src/TUI/UserInterface/Palette.cs create mode 100644 src/TUI/UserInterface/Panel.cs create mode 100644 src/TUI/UserInterface/Theme.cs diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d08d9a9 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,166 @@ +[*] +charset=utf-8 +end_of_line=lf +indent_size=4 +indent_style=space +insert_final_newline=false +max_line_length=120 +tab_width=4 +trim_trailing_whitespace=false +ij_continuation_indent_size=8 +ij_formatter_off_tag=@formatter:off +ij_formatter_on_tag=@formatter:on +ij_formatter_tags_enabled=false +ij_smart_tabs=false +ij_visual_guides=none +ij_wrap_on_typing=true + +[*.properties] +ij_properties_align_group_field_declarations=false +ij_properties_keep_blank_lines=false +ij_properties_key_value_delimiter=equals +ij_properties_spaces_around_key_value_delimiter=false + +[*.proto] +indent_size=2 +tab_width=2 +ij_continuation_indent_size=4 +ij_protobuf_keep_blank_lines_in_code=2 +ij_protobuf_keep_indents_on_empty_lines=false +ij_protobuf_keep_line_breaks=true +ij_protobuf_space_after_comma=true +ij_protobuf_space_before_comma=false +ij_protobuf_spaces_around_assignment_operators=true +ij_protobuf_spaces_within_braces=false +ij_protobuf_spaces_within_brackets=false + +[.editorconfig] +ij_editorconfig_align_group_field_declarations=false +ij_editorconfig_space_after_colon=false +ij_editorconfig_space_after_comma=false +ij_editorconfig_space_before_colon=false +ij_editorconfig_space_before_comma=false +ij_editorconfig_spaces_around_assignment_operators=false + +[{*.ant,*.appxmanifest,*.axml,*.cscfg,*.csdef,*.disco,*.filelayout,*.fxml,*.jhm,*.jnlp,*.jrxml,*.manifest,*.myapp,*.nuspec,*.rng,*.stylecop,*.svcmap,*.tld,*.wadcfgx,*.webref,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul,StyleCop.Cache}] +ij_xml_align_attributes=true +ij_xml_align_text=false +ij_xml_attribute_wrap=normal +ij_xml_block_comment_add_space=false +ij_xml_block_comment_at_first_column=true +ij_xml_keep_blank_lines=2 +ij_xml_keep_indents_on_empty_lines=false +ij_xml_keep_line_breaks=true +ij_xml_keep_line_breaks_in_text=true +ij_xml_keep_whitespaces=false +ij_xml_keep_whitespaces_around_cdata=preserve +ij_xml_keep_whitespaces_inside_cdata=false +ij_xml_line_comment_at_first_column=true +ij_xml_space_after_tag_name=false +ij_xml_space_around_equals_in_attribute=false +ij_xml_space_inside_empty_tag=false +ij_xml_text_wrap=normal +max_line_length=off +trim_trailing_whitespace=true +insert_final_newline=true +indent_size=2 + +[{*.bash,*.sh,*.zsh}] +indent_size=2 +tab_width=2 +ij_shell_binary_ops_start_line=false +ij_shell_keep_column_alignment_padding=false +ij_shell_minify_program=false +ij_shell_redirect_followed_by_space=false +ij_shell_switch_cases_indented=false +ij_shell_use_unix_line_separator=true + +[{*.har,*.json}] +indent_size=2 +tab_width=2 +ij_json_keep_blank_lines_in_code=0 +ij_json_keep_indents_on_empty_lines=false +ij_json_keep_line_breaks=true +ij_json_space_after_colon=true +ij_json_space_after_comma=true +ij_json_space_before_colon=true +ij_json_space_before_comma=false +ij_json_spaces_within_braces=false +ij_json_spaces_within_brackets=false +ij_json_wrap_long_lines=false + +[{*.htm,*.html,*.sht,*.shtm,*.shtml}] +ij_html_add_new_line_before_tags=body,div,p,form,h1,h2,h3 +ij_html_align_attributes=true +ij_html_align_text=false +ij_html_attribute_wrap=normal +ij_html_block_comment_add_space=false +ij_html_block_comment_at_first_column=true +ij_html_do_not_align_children_of_min_lines=0 +ij_html_do_not_break_if_inline_tags=title,h1,h2,h3,h4,h5,h6,p +ij_html_do_not_indent_children_of_tags=html,body,thead,tbody,tfoot +ij_html_enforce_quotes=false +ij_html_inline_tags=a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var +ij_html_keep_blank_lines=2 +ij_html_keep_indents_on_empty_lines=false +ij_html_keep_line_breaks=true +ij_html_keep_line_breaks_in_text=true +ij_html_keep_whitespaces=false +ij_html_keep_whitespaces_inside=span,pre,textarea +ij_html_line_comment_at_first_column=true +ij_html_new_line_after_last_attribute=never +ij_html_new_line_before_first_attribute=never +ij_html_quote_style=double +ij_html_remove_new_line_before_tags=br +ij_html_space_after_tag_name=false +ij_html_space_around_equality_in_attribute=false +ij_html_space_inside_empty_tag=false +ij_html_text_wrap=normal + +[{*.markdown,*.md}] +indent_size=2 +tab_width=2 +ij_continuation_indent_size=4 +ij_visual_guides=120 +ij_markdown_force_one_space_after_blockquote_symbol=true +ij_markdown_force_one_space_after_header_symbol=true +ij_markdown_force_one_space_after_list_bullet=true +ij_markdown_force_one_space_between_words=true +ij_markdown_insert_quote_arrows_on_wrap=true +ij_markdown_keep_indents_on_empty_lines=false +ij_markdown_keep_line_breaks_inside_text_blocks=true +ij_markdown_max_lines_around_block_elements=1 +ij_markdown_max_lines_around_header=1 +ij_markdown_max_lines_between_paragraphs=1 +ij_markdown_min_lines_around_block_elements=1 +ij_markdown_min_lines_around_header=1 +ij_markdown_min_lines_between_paragraphs=1 +ij_markdown_wrap_text_if_long=true +ij_markdown_wrap_text_inside_blockquotes=true + +[{*.pb,*.textproto}] +indent_size=2 +tab_width=2 +ij_continuation_indent_size=4 +ij_prototext_keep_blank_lines_in_code=2 +ij_prototext_keep_indents_on_empty_lines=false +ij_prototext_keep_line_breaks=true +ij_prototext_space_after_colon=true +ij_prototext_space_after_comma=true +ij_prototext_space_before_colon=false +ij_prototext_space_before_comma=false +ij_prototext_spaces_within_braces=true +ij_prototext_spaces_within_brackets=false + +[{*.yaml,*.yml}] +indent_size=2 +ij_yaml_align_values_properties=do_not_align +ij_yaml_autoinsert_sequence_marker=true +ij_yaml_block_mapping_on_new_line=false +ij_yaml_indent_sequence_value=true +ij_yaml_keep_indents_on_empty_lines=false +ij_yaml_keep_line_breaks=true +ij_yaml_sequence_on_new_line=false +ij_yaml_space_before_colon=false +ij_yaml_spaces_within_braces=true +ij_yaml_spaces_within_brackets=true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7f24a60 --- /dev/null +++ b/.gitignore @@ -0,0 +1,345 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore +*.yaml + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- Backup*.rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb +*.DotSettings +*.DS_Store +**/*.Production.json +Logs/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..402e5b1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### 🆕 Added + +- Add dashboard for dependencies +- Add header with toggle +- Add hotkey for exit (q) + +### 🛠 Changed + +_Список изменившейся функциональности._ + +### 📜 Deprecated + +_Список устаревшей функциональности._ + +### 🗑 Removed + +_Список удаленной функциональности._ + +### 🪲 Fixed + +_Список исправлений багов._ + +### 🔐 Security + +_Список правок для обеспечения безопасности._ + +### 📦 Support + +_Список правок для обеспечения технической поддержки._ diff --git a/README.md b/README.md index feaff64..cf6f367 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ -# tld +# Team Lead Dashboards + Team Lead Dashboard CLI To Manage Your Work In Style! + +## Dependencies + +![](docs/Dependencies.png) \ No newline at end of file diff --git a/TLD.sln b/TLD.sln new file mode 100644 index 0000000..245bd53 --- /dev/null +++ b/TLD.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TUI", "src\TUI\TUI.csproj", "{F92C03F7-2A65-4D0A-9736-13E749AF6903}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BF07B744-015F-4904-B1B6-CBDE266A07B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BF07B744-015F-4904-B1B6-CBDE266A07B0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BF07B744-015F-4904-B1B6-CBDE266A07B0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BF07B744-015F-4904-B1B6-CBDE266A07B0}.Release|Any CPU.Build.0 = Release|Any CPU + {F92C03F7-2A65-4D0A-9736-13E749AF6903}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F92C03F7-2A65-4D0A-9736-13E749AF6903}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F92C03F7-2A65-4D0A-9736-13E749AF6903}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F92C03F7-2A65-4D0A-9736-13E749AF6903}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/docs/Dependencies.png b/docs/Dependencies.png new file mode 100644 index 0000000000000000000000000000000000000000..e4504f955dd966d8f41e22bf029feeb9f92a768e GIT binary patch literal 202900 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
e5qV}Ooir~1j?nEW#ragbXo~W;p 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ⅈ9HsrQwPtchd&|jMO(RDq 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 Mv9!NRyzKSxzjZlQ5C8xG literal 0 HcmV?d00001 diff --git a/src/TUI/Controls/Copyright.cs b/src/TUI/Controls/Copyright.cs new file mode 100644 index 0000000..0100952 --- /dev/null +++ b/src/TUI/Controls/Copyright.cs @@ -0,0 +1,16 @@ +using TUI.UserInterface; + + +namespace TUI.Controls; + +public class Copyright : IControl +{ + public void Render(string author, Position position) + { + const string icon = "© "; + Console.SetCursorPosition(position.Left - icon.Width(), position.Top); + + var copyright = $"{icon}{author}".Hint(); + Console.Write(copyright); + } +} \ No newline at end of file diff --git a/src/TUI/Controls/Dashboard.cs b/src/TUI/Controls/Dashboard.cs new file mode 100644 index 0000000..69ae5bb --- /dev/null +++ b/src/TUI/Controls/Dashboard.cs @@ -0,0 +1,60 @@ +using System.Text; +using TUI.UserInterface; + + +namespace TUI.Controls; + +public class Dashboard : IControl +{ + public void Render(string title, Position position) + { + Console.SetCursorPosition(position.Left, position.Top); + + RenderTopLine(title); + + var marginTop = Theme.BorderWidth + Theme.Padding + position.Top; + var dashboardHeight = Console.WindowHeight - Theme.BorderWidth; + + for (var top = marginTop; top < dashboardHeight; top++) + { + RenderMiddleLine(); + } + + RenderBottomLine(); + } + + private static void RenderMiddleLine() + { + Console.Write("│".Primary()); + Console.Write(new string(' ', Console.WindowWidth - Theme.BorderWidth * 2)); + Console.WriteLine("│".Primary()); + } + + private static void RenderBottomLine() + { + var lineWidth = Console.WindowWidth - Theme.BorderWidth * 2; + Console.Write("└".Primary()); + Console.Write('─'.Repeat(lineWidth).Primary()); + Console.WriteLine("┘".Primary()); + } + + private static void RenderTopLine(string title) + { + var lineWidth = + (Console.WindowWidth - title.Width() - Theme.BorderWidth * 2 - Theme.Padding * 2) / + 2; + + var topLine = new StringBuilder(); + topLine.Append("┌"); + topLine.Append('─'.Repeat(lineWidth)); + topLine.AppendFormat("{0}{1}{0}", ' '.Repeat(Theme.Padding), title); + if (title.Width() % 2 == 1) + { + topLine.Append('─'); + } + + topLine.Append('─'.Repeat(lineWidth)); + topLine.Append("┐"); + Console.WriteLine(topLine.ToString().Primary()); + } +} \ No newline at end of file diff --git a/src/TUI/Controls/Display.cs b/src/TUI/Controls/Display.cs new file mode 100644 index 0000000..bd819a1 --- /dev/null +++ b/src/TUI/Controls/Display.cs @@ -0,0 +1,73 @@ +using TUI.Dashboards; +using TUI.Domain; +using TUI.UserInterface; + + +namespace TUI.Controls; + +public class Display +{ + private bool _headerInDisplay = true; + public readonly Header Header; + + public readonly Copyright Copyright; + + public readonly DependencyDashboard DependencyDashboard; + private Project _currentProject; + + public Display() + { + Header = new Header(); + Copyright = new Copyright(); + DependencyDashboard = new DependencyDashboard(); + + Render(); + } + + public void OpenDeps(Project project) + { + _currentProject = project; + var dashboardPosition = new Position(0, Header.Height); + DependencyDashboard.Render(_currentProject, dashboardPosition); + } + + private void ResizeDependencies(bool full) + { + var dashboardPosition = new Position(0, full ? 0 : Header.Height); + DependencyDashboard.Render(_currentProject, dashboardPosition); + } + + public void Render() + { + var headerPosition = new Position(0, 0); + Header.Render(headerPosition); + + const string copyrightText = "Kolosov Aleksandr"; + var copyrightPosition = new Position( + Console.WindowWidth - copyrightText.Width(), + Console.WindowHeight); + Copyright.Render(copyrightText, copyrightPosition); + } + + public void ToggleHeader() + { + _headerInDisplay = !_headerInDisplay; + if (_headerInDisplay) + { + var headerPosition = new Position(0, 0); + Header.Render(headerPosition); + } + + ResizeDependencies(!_headerInDisplay); + } + + public void Next() + { + DependencyDashboard.Next(); + } + + public void Previous() + { + DependencyDashboard.Previous(); + } +} \ No newline at end of file diff --git a/src/TUI/Controls/IControl.cs b/src/TUI/Controls/IControl.cs new file mode 100644 index 0000000..6fda601 --- /dev/null +++ b/src/TUI/Controls/IControl.cs @@ -0,0 +1,11 @@ +namespace TUI.Controls; + +public interface IControl +{ + void Render(Position position); +} + +public interface IControl +{ + void Render(TProps props, Position position); +} \ No newline at end of file diff --git a/src/TUI/Controls/Position.cs b/src/TUI/Controls/Position.cs new file mode 100644 index 0000000..d9200b9 --- /dev/null +++ b/src/TUI/Controls/Position.cs @@ -0,0 +1,3 @@ +namespace TUI.Controls; + +public record Position(int Left, int Top); \ No newline at end of file diff --git a/src/TUI/Controls/Table.cs b/src/TUI/Controls/Table.cs new file mode 100644 index 0000000..353ca3e --- /dev/null +++ b/src/TUI/Controls/Table.cs @@ -0,0 +1,74 @@ +using Pastel; +using TUI.UserInterface; + + +namespace TUI.Controls; + +public record TableProps(IEnumerable HeaderCells, + IEnumerable Rows, + int TitleWidth, + int ColumnWidth); + +public class Table : IControl +{ + private Position _position; + private int _selectedRowId; + + public void Render(TableProps props, Position position) + { + _position = position; + Console.SetCursorPosition(_position.Left, _position.Top); + + Console.Write(' '.Repeat(props.TitleWidth)); + foreach (var headerCell in props.HeaderCells) + { + Console.Write(' '.Repeat(props.ColumnWidth - headerCell.Width()) + headerCell); + } + } + + private readonly Dictionary _rows = new(); + + public void RenderRow(int rowId, string rowText, string? bgColor = default) + { + var padRight = ' '.Repeat(Console.WindowWidth - rowText.Width() - Theme.BorderWidth * 2); + _rows[rowId] = rowText + padRight; + + Console.SetCursorPosition(_position.Left, _position.Top + rowId); + Console.Write(string.IsNullOrEmpty(bgColor) ? rowText : rowText.PastelBg(bgColor)); + } + + public void Next() + { + if (_selectedRowId >= _rows.Count) + { + return; + } + + RemoveHoverFromCurrentRow(); + RenderRow(++_selectedRowId, _rows[_selectedRowId], Palette.HoverColor); + } + + private void RemoveHoverFromCurrentRow() + { + if (_rows.TryGetValue(_selectedRowId, out var row)) + { + RenderRow(_selectedRowId, row); + } + } + + public void Previous() + { + if (_selectedRowId == 0) + { + Next(); + } + + if (_selectedRowId == 1) + { + return; + } + + RemoveHoverFromCurrentRow(); + RenderRow(--_selectedRowId, _rows[_selectedRowId], Palette.HoverColor); + } +} \ No newline at end of file diff --git a/src/TUI/Dashboards/DependencyDashboard.cs b/src/TUI/Dashboards/DependencyDashboard.cs new file mode 100644 index 0000000..a6ec1dc --- /dev/null +++ b/src/TUI/Dashboards/DependencyDashboard.cs @@ -0,0 +1,156 @@ +using System.Text; +using System.Text.Json; +using Pastel; +using TUI.Controls; +using TUI.Domain; +using TUI.UserInterface; + + +namespace TUI.Dashboards; + +public class DependencyDashboard : IControl +{ + private int _selectedRowNumber = 0; + + private const int TitleWidth = 35; + private const int ColumnWidth = 10; + + private Table _table = new(); + + public void Render(Project project, Position position) + { + var dashboard = new Dashboard(); + dashboard.Render(project.Icon, position); + + var header = project.Dependencies.Select(GetConventionVersion).ToArray(); + var rows = project.Sources.Select(GetTitle).ToArray(); + + var tablePosition = new Position( + position.Left + Theme.BorderWidth, + position.Top + Theme.BorderWidth); + + var tableProps = new TableProps(header, rows, TitleWidth, ColumnWidth); + + _table.Render(tableProps, tablePosition); + + for (var rowId = 0; rowId < rows.Length; rowId++) + { + var actualDependencies = GetDependencies(project.Sources[rowId], project.Dependencies); + _table.RenderRow(rowId + 1, rows[rowId] + actualDependencies); + } + + // Panel.RenderRows(project.Sources.ToArray(), _selectedRowNumber); + } + + private string GetDependencies(Source source, IEnumerable conventionDependencies) + { + var package = DownloadPackage(source); + + return string.Join("", + conventionDependencies + .Select(package.Dependencies.GetVersion) + .Select(GetCurrentVersion)); + } + + private readonly static Dictionary Packages = new(); + + private static Package DownloadPackage(Source source) + { + if (Packages.TryGetValue(source.Repo, out var downloadPackage)) + { + return downloadPackage; + } + + using HttpClient client = new(); + var json = client.GetStringAsync(source.Repo).GetAwaiter().GetResult(); + var package = JsonSerializer.Deserialize(json); + Packages.Add(source.Repo, package); + return package; + } + + // private string GetVersions(string title) + // { + // // var source = sources[index]; + // // var package = DownloadPackage(source); + // // var resultText = package.Dependencies.React; + // // resultText = new string(' ', ColumnWidth - resultText.Width()) + resultText; + // // if (selectedRowNumber == index + 1) + // // { + // // resultText = resultText.PastelBg("292928"); + // // } + // + // return resultText; + // } + + private static string GetConventionVersion(Dependency dependency) + { + return dependency.Icon.Pastel(dependency.Color) + dependency.Version.Primary(); + } + + private static string GetCurrentVersion(string version) + { + return ' '.Repeat(ColumnWidth - version.Width()) + version; + } + + private static string GetTitle(Source source) + { + var rowText = new StringBuilder(); + + RenderPadding(rowText); + RenderTags(rowText, source); + rowText.Append(source.Name); + RenderPadding(rowText); + var text = rowText.ToString(); + return $"{text}{' '.Repeat(TitleWidth - text.Width())}"; + } + + private static void RenderPadding(StringBuilder rowText) + { + rowText.Append(new string(' ', Theme.Padding)); + } + + private static void RenderTags(StringBuilder rowText, Source source) + { + rowText.Append(GetGitApplication(source)); + rowText.Append(source.Tags.Have("public") + ? GetIcon("󰞉", "00FFFF") + : GetIcon("󰕑", "AFE1AF")); + rowText.Append(GetIcon("󰚩", "4285F4", source.Tags.Have("seo"))); + rowText.Append(GetIcon("", "FFD700", source.Tags.Have("auth"))); + rowText.Append(GetApplicationType(source)); + } + + private static string GetApplicationType(Source source) + { + if (source.Tags.Have("site")) + return GetIcon("", "BF40BF"); + if (source.Tags.Have("api")) + return GetIcon("", "7F52FF"); + if (source.Tags.Have("package")) + return GetIcon("", "CB0000"); + if (source.Tags.Have("image")) + return GetIcon("󰡨", "086DD7"); + + return GetIcon("", "CB0000"); + } + + private static string GetGitApplication(Source source) => source.Repo switch + { + { } url when url.Contains("gitlab") => GetIcon("", "E24329"), + { } url when url.Contains("github") => GetIcon("", "ADBAC7"), + _ => GetIcon("", "F14E32") + }; + + private static string GetIcon(string icon, string activeColor, bool enabled = true) => + (icon.Pastel(enabled ? activeColor : "71797E") + " ").PadLeft(2); + + public void Next() + { + _table.Next(); + } + + public void Previous() + { + _table.Previous(); + } +} \ No newline at end of file diff --git a/src/TUI/Domain/Dependency.cs b/src/TUI/Domain/Dependency.cs new file mode 100644 index 0000000..e1e3961 --- /dev/null +++ b/src/TUI/Domain/Dependency.cs @@ -0,0 +1,26 @@ +using YamlDotNet.Serialization; + + +namespace TUI.Domain; + +[YamlSerializable] +public class Dependency +{ + private string _icon; + + [YamlMember] + public string Name { get; set; } + + [YamlMember] + public string Icon + { + get => $" {_icon} "; + set => _icon = value; + } + + [YamlMember] + public string Version { get; set; } + + [YamlMember] + public string Color { get; set; } +} \ No newline at end of file diff --git a/src/TUI/Domain/Package.cs b/src/TUI/Domain/Package.cs new file mode 100644 index 0000000..88218f9 --- /dev/null +++ b/src/TUI/Domain/Package.cs @@ -0,0 +1,26 @@ +using System.Text.Json.Serialization; + + +namespace TUI.Domain; + +public class Package +{ + [JsonPropertyName("dependencies")] + public Dependencies Dependencies { get; set; } +} + +public class Dependencies +{ + [JsonPropertyName("react")] + public string React { get; set; } + + [JsonPropertyName("typesciprt")] + public string TypeScript { get; set; } + + public string GetVersion(Dependency dependency) => dependency.Name.ToLower() switch + { + "react" => React, + "typescipt" => TypeScript, + _ => "-" + }; +} \ No newline at end of file diff --git a/src/TUI/Domain/Project.cs b/src/TUI/Domain/Project.cs new file mode 100644 index 0000000..12a06c1 --- /dev/null +++ b/src/TUI/Domain/Project.cs @@ -0,0 +1,21 @@ +using System.Runtime.CompilerServices; +using YamlDotNet.Serialization; + + +namespace TUI.Domain; + +[YamlSerializable] +public class Project +{ + [YamlMember] + public string Icon { get; set; } + + [YamlMember] + public string Name { get; set; } + + [YamlMember] + public Dependency[] Dependencies { get; set; } + + [YamlMember] + public IList Sources { get; set; } +} \ No newline at end of file diff --git a/src/TUI/Domain/Settings.cs b/src/TUI/Domain/Settings.cs new file mode 100644 index 0000000..0a4c676 --- /dev/null +++ b/src/TUI/Domain/Settings.cs @@ -0,0 +1,22 @@ +using YamlDotNet.Serialization; +using YamlDotNet.Serialization.NamingConventions; + + +namespace TUI.Domain; + +[YamlSerializable] +public class Settings +{ + public static Settings Init() + { + var deserializer = new DeserializerBuilder() + .WithNamingConvention(UnderscoredNamingConvention.Instance) + .Build(); + + using var sr = new StreamReader("settings.yaml"); + return deserializer.Deserialize(sr.ReadToEnd()); + } + + [YamlMember] + public Project[] Projects { get; set; } +} \ No newline at end of file diff --git a/src/TUI/Domain/Source.cs b/src/TUI/Domain/Source.cs new file mode 100644 index 0000000..e8f154a --- /dev/null +++ b/src/TUI/Domain/Source.cs @@ -0,0 +1,17 @@ +using YamlDotNet.Serialization; + + +namespace TUI.Domain; + +[YamlSerializable] +public class Source +{ + [YamlMember] + public string[] Tags { get; set; } + + [YamlMember] + public string Name { get; set; } + + [YamlMember] + public string Repo { get; set; } +} \ No newline at end of file diff --git a/src/TUI/Extensions.cs b/src/TUI/Extensions.cs new file mode 100644 index 0000000..a24d1c7 --- /dev/null +++ b/src/TUI/Extensions.cs @@ -0,0 +1,24 @@ +using System.Text.RegularExpressions; + + +namespace TUI; + +public static class Extensions +{ + public static bool Have(this IEnumerable array, string findValue) + { + return array.Any(item => item == findValue); + } + + public static string Repeat(this char symbol, int repeatCount) + { + return new string(symbol, repeatCount); + } + + public static int Width(this string text) + { + var clearText = Regex.Replace(text, @"\S\[(\d{0,3}[;m][_]?){0,5}", ""); + var stringInfo = new System.Globalization.StringInfo(clearText); + return stringInfo.LengthInTextElements; + } +} \ No newline at end of file diff --git a/src/TUI/Program.cs b/src/TUI/Program.cs new file mode 100644 index 0000000..ed56ff6 --- /dev/null +++ b/src/TUI/Program.cs @@ -0,0 +1,32 @@ +using TUI.Controls; +using Settings = TUI.Domain.Settings; + + +Console.Clear(); +Console.CursorVisible = false; + +var settings = Settings.Init(); + +var display = new Display(); +display.OpenDeps(settings.Projects[0]); + +var hotKey = ConsoleKey.NoName; +do +{ + switch (hotKey) + { + case ConsoleKey.DownArrow: + display.Next(); + break; + case ConsoleKey.UpArrow: + display.Previous(); + break; + case ConsoleKey.E: + display.ToggleHeader(); + break; + } + + hotKey = Console.ReadKey(intercept: true).Key; +} while (hotKey != ConsoleKey.Q); + +Console.Clear(); \ No newline at end of file diff --git a/src/TUI/TUI.csproj b/src/TUI/TUI.csproj new file mode 100644 index 0000000..c3c1043 --- /dev/null +++ b/src/TUI/TUI.csproj @@ -0,0 +1,21 @@ + + + + Exe + net7.0 + enable + enable + + + + + + + + + + Always + + + + diff --git a/src/TUI/UserInterface/Header.cs b/src/TUI/UserInterface/Header.cs new file mode 100644 index 0000000..b547e97 --- /dev/null +++ b/src/TUI/UserInterface/Header.cs @@ -0,0 +1,39 @@ +using TUI.Controls; + + +namespace TUI.UserInterface; + +public class Header : IControl +{ + public const int LogoWidth = 16; + public const int Height = 6; + + public void Render(Position position) + { + Console.SetCursorPosition(position.Left, position.Top); + + for (var i = 1; i <= Height; i++) + { + Console.WriteLine(new string(' ', Console.WindowWidth - LogoWidth)); + } + + RenderLogo(); + } + + private void RenderLogo() + { + Console.SetCursorPosition(Console.WindowWidth - LogoWidth - Theme.Padding, 0); + Console.WriteLine(" ╭━━━━┳╮".Primary() + "╱╱".Hint() + "╭━━━╮ ".Primary()); + Console.SetCursorPosition(Console.WindowWidth - LogoWidth - Theme.Padding, 1); + Console.WriteLine(" ┃╭╮╭╮┃┃".Primary() + "╱╱".Hint() + "╰╮╭╮┃ ".Primary()); + Console.SetCursorPosition(Console.WindowWidth - LogoWidth - Theme.Padding, 2); + Console.WriteLine(" ╰╯┃┃╰┫┃".Primary() + "╱╱╱".Hint() + "┃┃┃┃ ".Primary()); + Console.SetCursorPosition(Console.WindowWidth - LogoWidth - Theme.Padding, 3); + Console.WriteLine(" ╱╱".Hint() + "┃┃".Primary() + "╱".Hint() + "┃┃".Primary() + + "╱".Hint() + "╭╮┃┃┃┃ ".Primary()); + Console.SetCursorPosition(Console.WindowWidth - LogoWidth - Theme.Padding, 4); + Console.WriteLine(" ╱╱╱".Hint() + "┃┃".Primary() + "╱".Hint() + "┃╰━╯┣╯╰╯┃ ".Primary()); + Console.SetCursorPosition(Console.WindowWidth - LogoWidth - Theme.Padding, 5); + Console.WriteLine("╱╱╱╱".Hint() + "╰╯".Primary() + "╱".Hint() + "╰━━━┻━━━╯ ".Primary()); + } +} \ No newline at end of file diff --git a/src/TUI/UserInterface/Palette.cs b/src/TUI/UserInterface/Palette.cs new file mode 100644 index 0000000..27dcdd7 --- /dev/null +++ b/src/TUI/UserInterface/Palette.cs @@ -0,0 +1,13 @@ +using Pastel; + + +namespace TUI.UserInterface; + +public static class Palette +{ + public const string HoverColor = "292928"; + public const string PrimaryColor = "84BA64"; + public const string HintColor = "71797E"; + public static string Primary(this string currentText) => currentText.Pastel(PrimaryColor); + public static string Hint(this string currentText) => currentText.Pastel(HintColor); +} \ No newline at end of file diff --git a/src/TUI/UserInterface/Panel.cs b/src/TUI/UserInterface/Panel.cs new file mode 100644 index 0000000..d1813ac --- /dev/null +++ b/src/TUI/UserInterface/Panel.cs @@ -0,0 +1,96 @@ +using System.Text; +using System.Text.Json; +using Pastel; +using TUI.Domain; + + +namespace TUI.UserInterface; + +public static class Panel +{ + private const int BorderWidth = 1; + private const int ColumnWidth = 10; + private const int TitleWidth = 35; + private const int TagCount = 5; + private const int TagWidth = 2; + + public static void RenderRows(Source[] sources, int selectedRowNumber) + { + for (var index = 0; index < sources.Length; index++) + { + Console.SetCursorPosition(Theme.Padding, + 6 + index + _marginTop + BorderWidth + + Theme.Padding); + + if (selectedRowNumber == index + 1) + { + // resultText = resultText.PastelBg("292928"); + } + + // Console.Write(resultText); + } + + for (var index = 0; index < sources.Length; index++) + { + Console.SetCursorPosition(TitleWidth, + 6 + index + _marginTop + BorderWidth + Theme.Padding); + // var source = sources[index]; + // var package = DownloadPackage(source); + // var resultText = package.Dependencies.React; + // resultText = new string(' ', ColumnWidth - resultText.Width()) + resultText; + // if (selectedRowNumber == index + 1) + // { + // resultText = resultText.PastelBg("292928"); + // } + // + // Console.Write(resultText); + } + // for (var index = 0; index < sources.Length; index++) + // { + // var loading = true; + // var braille = new[] { "⠿", "⠧", "⠏", "⠛", "⠹", "⠼", "⠶" }; + // var braileNumber = 0; + // do + // { + // var resultText = braille[braileNumber]; + // if (selectedRowNumber == index + 1) + // { + // resultText = resultText.PastelBg("292928"); + // } + // + // Console.SetCursorPosition(ColumnWidth + TagCountInLeftPanel * 2, index + 2); + // Console.Write(resultText); + // Thread.Sleep(100); + // if (braileNumber == braille.Length - 1) + // { + // braileNumber = 0; + // loading = false; + // } + // else + // { + // braileNumber++; + // } + // } while (loading); + // + // Console.SetCursorPosition(ColumnWidth + TagCountInLeftPanel * 2, index + 2); + // Console.Write(braille[0]); + // } + } + + + private static int _marginTop; + + // private static Package DownloadPackage(Source source) + // { + // if (Packages.TryGetValue(source.Repo, out var downloadPackage)) + // { + // return downloadPackage; + // } + // + // using HttpClient client = new(); + // var json = client.GetStringAsync(source.Repo).GetAwaiter().GetResult(); + // var package = JsonSerializer.Deserialize(json); + // Packages.Add(source.Repo, package); + // return package; + // } +} \ No newline at end of file diff --git a/src/TUI/UserInterface/Theme.cs b/src/TUI/UserInterface/Theme.cs new file mode 100644 index 0000000..dec24e8 --- /dev/null +++ b/src/TUI/UserInterface/Theme.cs @@ -0,0 +1,7 @@ +namespace TUI.UserInterface; + +public static class Theme +{ + public static int Padding = 1; + public static int BorderWidth = 1; +} \ No newline at end of file