From b16d17631e54102b569f50ad63fe8b00f9f24612 Mon Sep 17 00:00:00 2001
From: qwsdcvghyu89 <61093706+qwsdcvghyu89@users.noreply.github.com>
Date: Sun, 23 Nov 2025 01:47:53 +1100
Subject: [PATCH] Add IDE configs, update Beam version, and enhance
RelationalDataProvider
Added JetBrains Rider IDE configuration files and a backup for Beam.Api.csproj. Updated aeqw89.Beam project version to 2.7.0 and package references, including Selenium.WebDriver and System.IO.Hashing. Enhanced RelationalDataProvider to support NextSibling and PreviousSibling relations and configurable traversal distance.
---
.idea/.idea.Beam/.idea/indexLayout.xml | 8 +
.../.idea/projectSettingsUpdater.xml | 8 +
.idea/.idea.Beam/.idea/vcs.xml | 6 +
.idea/.idea.Beam/.idea/workspace.xml | 270 ++++++++++++++++++
Beam.Api/Beam.Api.csproj.bak | 17 ++
.../DataProviders/RelationalDataProvider.cs | 23 +-
aeqw89.Beam/aeqw89.Beam.csproj | 9 +-
aeqw89.Beam/aeqw89.Beam.csproj.bak | 9 +-
8 files changed, 339 insertions(+), 11 deletions(-)
create mode 100644 .idea/.idea.Beam/.idea/indexLayout.xml
create mode 100644 .idea/.idea.Beam/.idea/projectSettingsUpdater.xml
create mode 100644 .idea/.idea.Beam/.idea/vcs.xml
create mode 100644 .idea/.idea.Beam/.idea/workspace.xml
create mode 100644 Beam.Api/Beam.Api.csproj.bak
diff --git a/.idea/.idea.Beam/.idea/indexLayout.xml b/.idea/.idea.Beam/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.Beam/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Beam/.idea/projectSettingsUpdater.xml b/.idea/.idea.Beam/.idea/projectSettingsUpdater.xml
new file mode 100644
index 0000000..ef20cb0
--- /dev/null
+++ b/.idea/.idea.Beam/.idea/projectSettingsUpdater.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Beam/.idea/vcs.xml b/.idea/.idea.Beam/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/.idea.Beam/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Beam/.idea/workspace.xml b/.idea/.idea.Beam/.idea/workspace.xml
new file mode 100644
index 0000000..e82588c
--- /dev/null
+++ b/.idea/.idea.Beam/.idea/workspace.xml
@@ -0,0 +1,270 @@
+
+
+
+ Beam.Temporary.Cli/Beam.Temporary.Cli.csproj
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "lastFilter": {
+ "state": "OPEN",
+ "assignee": "qwsdcvghyu89"
+ }
+}
+ {
+ "selectedUrlAndAccountId": {
+ "url": "https://github.com/qwsdcvghyu89/Beam.git",
+ "accountId": "0754c5af-63f9-496e-afca-14f2e32ea4f5"
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "associatedIndex": 6
+}
+
+
+
+
+
+ {
+ "keyToString": {
+ "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
+ "RunOnceActivity.git.unshallow": "true",
+ "git-widget-placeholder": "master",
+ "ignore.virus.scanning.warn.message": "true",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "settings.editor.selected.configurable": "ml.llm.LLMConfigurable",
+ "vue.rearranger.settings.migration": "true"
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1758432983325
+
+
+ 1758432983325
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1758469918944
+
+
+
+ 1758469918944
+
+
+
+ 1758690873724
+
+
+
+ 1758690873724
+
+
+
+ 1758860502921
+
+
+
+ 1758860502921
+
+
+
+ 1758944260267
+
+
+
+ 1758944260267
+
+
+
+ 1763052080925
+
+
+
+ 1763052080925
+
+
+
+ 1763053716098
+
+
+
+ 1763053716098
+
+
+
+ 1763055366014
+
+
+
+ 1763055366014
+
+
+
+ 1763200281188
+
+
+
+ 1763200281188
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Beam.Api/Beam.Api.csproj.bak b/Beam.Api/Beam.Api.csproj.bak
new file mode 100644
index 0000000..85abac3
--- /dev/null
+++ b/Beam.Api/Beam.Api.csproj.bak
@@ -0,0 +1,17 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Beam.Dynamic/DataProviders/RelationalDataProvider.cs b/Beam.Dynamic/DataProviders/RelationalDataProvider.cs
index 6068412..df926fb 100644
--- a/Beam.Dynamic/DataProviders/RelationalDataProvider.cs
+++ b/Beam.Dynamic/DataProviders/RelationalDataProvider.cs
@@ -6,11 +6,14 @@ namespace Beam.Dynamic;
public enum RelationType {
Parent,
Child,
+ NextSibling,
+ PreviousSibling,
}
public class RelationalDataProvider : IComposableDataProvider {
public RelationType RelationType { get; set; } = RelationType.Parent;
+ public int Distance { get; set; } = 1;
public IBinding? Content { get; set; }
public HtmlNode? Get(HtmlDocument document) {
@@ -23,10 +26,20 @@ public class RelationalDataProvider : IComposableDataProvider {
return Select(Content?.Select(doc) ?? doc.DocumentNode);
}
public HtmlNode? Select(HtmlNode node) {
- return RelationType switch {
- RelationType.Parent => node.ParentNode,
- RelationType.Child => node.FirstChild,
- _ => throw new NotSupportedException()
- };
+ return _Select(node, Distance);
+ }
+
+ private HtmlNode? _Select(HtmlNode node, int distance = 0) {
+ while (true) {
+ if (distance == 0) return node;
+ node = RelationType switch {
+ RelationType.Parent => node.ParentNode,
+ RelationType.Child => node.FirstChild,
+ RelationType.NextSibling => node.NextSibling,
+ RelationType.PreviousSibling => node.PreviousSibling,
+ _ => throw new NotSupportedException()
+ };
+ distance = distance - 1;
+ }
}
}
\ No newline at end of file
diff --git a/aeqw89.Beam/aeqw89.Beam.csproj b/aeqw89.Beam/aeqw89.Beam.csproj
index 32579b2..4ea2ed4 100644
--- a/aeqw89.Beam/aeqw89.Beam.csproj
+++ b/aeqw89.Beam/aeqw89.Beam.csproj
@@ -7,12 +7,12 @@
Beam
aeqw89
qwsdcvghyu
- 2.5.0
+ 2.7.0
A library for downloading internet resources
https://github.com/qwsdcvghyu89/Beam
https://github.com/qwsdcvghyu89/Beam
aeqw89.Beam
- 2.5.0
+ 2.7.0
@@ -66,7 +66,7 @@
true
-
+
true
@@ -83,6 +83,9 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
true
+
+ true
+
diff --git a/aeqw89.Beam/aeqw89.Beam.csproj.bak b/aeqw89.Beam/aeqw89.Beam.csproj.bak
index a738cb3..f3ff4e3 100644
--- a/aeqw89.Beam/aeqw89.Beam.csproj.bak
+++ b/aeqw89.Beam/aeqw89.Beam.csproj.bak
@@ -7,12 +7,12 @@
Beam
aeqw89
qwsdcvghyu
- 2.4.6
+ 2.6.3
A library for downloading internet resources
https://github.com/qwsdcvghyu89/Beam
https://github.com/qwsdcvghyu89/Beam
aeqw89.Beam
- 2.4.6
+ 2.6.3
@@ -66,7 +66,7 @@
true
-
+
true
@@ -83,6 +83,9 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
true
+
+ true
+