feat(cli): add new schedule member by name feature
This commit is contained in:
@@ -558,16 +558,16 @@ def cmd_schedules_decline(cli: "NimbusFlowCLI", args) -> None:
|
||||
# Clear screen after service selection
|
||||
print("\033[2J\033[H")
|
||||
|
||||
# Find pending schedules for this service
|
||||
# Find pending OR accepted schedules for this service
|
||||
all_schedules = cli.schedule_repo.list_all()
|
||||
pending_schedules = [
|
||||
available_schedules = [
|
||||
s for s in all_schedules
|
||||
if s.ServiceId == selected_service.ServiceId and s.Status == ScheduleStatus.PENDING.value
|
||||
if s.ServiceId == selected_service.ServiceId and s.Status in [ScheduleStatus.PENDING.value, ScheduleStatus.ACCEPTED.value]
|
||||
]
|
||||
|
||||
if not pending_schedules:
|
||||
if not available_schedules:
|
||||
service_type_name = service_type_map.get(selected_service.ServiceTypeId, "Unknown")
|
||||
print(f"❌ No pending schedules found for {service_type_name} on {args.date}")
|
||||
print(f"❌ No pending or accepted schedules found for {service_type_name} on {args.date}")
|
||||
return
|
||||
|
||||
# Get member info for display
|
||||
@@ -578,28 +578,31 @@ def cmd_schedules_decline(cli: "NimbusFlowCLI", args) -> None:
|
||||
print(f"{TableColors.HEADER}Members scheduled for {service_name} on {args.date}{TableColors.RESET}")
|
||||
print(f"{TableColors.BORDER}─" * 70 + f"{TableColors.RESET}")
|
||||
print()
|
||||
for i, schedule in enumerate(pending_schedules, 1):
|
||||
for i, schedule in enumerate(available_schedules, 1):
|
||||
member = member_map.get(schedule.MemberId)
|
||||
status_color = TableColors.SUCCESS if schedule.Status == ScheduleStatus.ACCEPTED.value else TableColors.WARNING
|
||||
status_text = f"{status_color}{schedule.Status.upper()}{TableColors.RESET}"
|
||||
|
||||
if member:
|
||||
print(f" {TableColors.CYAN}{i}.{TableColors.RESET} {member.FirstName} {member.LastName}")
|
||||
print(f" {TableColors.CYAN}{i}.{TableColors.RESET} {member.FirstName} {member.LastName} {TableColors.DIM}({status_text}){TableColors.RESET}")
|
||||
else:
|
||||
print(f" {TableColors.CYAN}{i}.{TableColors.RESET} {TableColors.DIM}Unknown Member (ID: {schedule.MemberId}){TableColors.RESET}")
|
||||
print(f" {TableColors.CYAN}{i}.{TableColors.RESET} {TableColors.DIM}Unknown Member (ID: {schedule.MemberId}) ({status_text}){TableColors.RESET}")
|
||||
print()
|
||||
|
||||
# Let user select member
|
||||
try:
|
||||
print(f"\n{TableColors.INPUT_BOX}┌─ Select member to decline (1-{len(pending_schedules)}) ─┐{TableColors.RESET}")
|
||||
print(f"\n{TableColors.INPUT_BOX}┌─ Select member to decline (1-{len(available_schedules)}) ─┐{TableColors.RESET}")
|
||||
choice = input(f"{TableColors.INPUT_BOX}└─> {TableColors.RESET}").strip()
|
||||
if not choice or not choice.isdigit():
|
||||
print("❌ Invalid selection")
|
||||
return
|
||||
|
||||
member_index = int(choice) - 1
|
||||
if member_index < 0 or member_index >= len(pending_schedules):
|
||||
if member_index < 0 or member_index >= len(available_schedules):
|
||||
print("❌ Invalid selection")
|
||||
return
|
||||
|
||||
selected_schedule = pending_schedules[member_index]
|
||||
selected_schedule = available_schedules[member_index]
|
||||
except (KeyboardInterrupt, EOFError):
|
||||
print("\n🛑 Cancelled")
|
||||
return
|
||||
@@ -635,10 +638,6 @@ def cmd_schedules_decline(cli: "NimbusFlowCLI", args) -> None:
|
||||
print(f"⚠️ Schedule {schedule_to_decline.ScheduleId} is already declined")
|
||||
return
|
||||
|
||||
if schedule_to_decline.Status == ScheduleStatus.ACCEPTED.value:
|
||||
print(f"⚠️ Schedule {schedule_to_decline.ScheduleId} was previously accepted")
|
||||
return
|
||||
|
||||
# Get member and service info for display
|
||||
member = cli.member_repo.get_by_id(schedule_to_decline.MemberId)
|
||||
service = cli.service_repo.get_by_id(schedule_to_decline.ServiceId)
|
||||
@@ -646,19 +645,37 @@ def cmd_schedules_decline(cli: "NimbusFlowCLI", args) -> None:
|
||||
if service:
|
||||
service_type = cli.service_type_repo.get_by_id(service.ServiceTypeId)
|
||||
|
||||
# Mark the schedule as declined
|
||||
cli.schedule_repo.mark_declined(schedule_to_decline.ScheduleId, decline_reason=decline_reason)
|
||||
# Show what we're about to decline
|
||||
was_accepted = schedule_to_decline.Status == ScheduleStatus.ACCEPTED.value
|
||||
status_text = "accepted" if was_accepted else "pending"
|
||||
|
||||
# Update member's decline timestamp (using service date)
|
||||
if service:
|
||||
cli.member_repo.set_last_declined(schedule_to_decline.MemberId, str(service.ServiceDate))
|
||||
|
||||
print(f"❌ Schedule {schedule_to_decline.ScheduleId} declined successfully!")
|
||||
if member and service and service_type:
|
||||
print(f" Member: {member.FirstName} {member.LastName}")
|
||||
print(f"\n{TableColors.WARNING}About to decline {status_text} schedule:{TableColors.RESET}")
|
||||
print(f" Member: {TableColors.BOLD}{member.FirstName} {member.LastName}{TableColors.RESET}")
|
||||
print(f" Service: {service_type.TypeName} on {service.ServiceDate}")
|
||||
if decline_reason:
|
||||
print(f" Reason: {decline_reason}")
|
||||
if decline_reason:
|
||||
print(f" Reason: {decline_reason}")
|
||||
|
||||
# Use the scheduling service to handle decline logic properly
|
||||
try:
|
||||
action, updated_schedule_id = cli.scheduling_service.decline_service_for_user(
|
||||
member_id=schedule_to_decline.MemberId,
|
||||
service_id=schedule_to_decline.ServiceId,
|
||||
reason=decline_reason
|
||||
)
|
||||
|
||||
# Update member's decline timestamp (using service date)
|
||||
if service:
|
||||
cli.member_repo.set_last_declined(schedule_to_decline.MemberId, str(service.ServiceDate))
|
||||
|
||||
print(f"\n{TableColors.SUCCESS}✅ Schedule {updated_schedule_id} declined successfully!{TableColors.RESET}")
|
||||
|
||||
if was_accepted:
|
||||
print(f"{TableColors.WARNING} Note: This was previously accepted - member moved back to scheduling pool{TableColors.RESET}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"{TableColors.ERROR}❌ Failed to decline schedule: {e}{TableColors.RESET}")
|
||||
return
|
||||
|
||||
|
||||
def cmd_schedules_schedule(cli: "NimbusFlowCLI", args) -> None:
|
||||
@@ -734,6 +751,10 @@ def cmd_schedules_schedule(cli: "NimbusFlowCLI", args) -> None:
|
||||
|
||||
print(f"{TableColors.HEADER}Selected Service: {service_type_name} on {service.ServiceDate}{TableColors.RESET}")
|
||||
|
||||
# Check if we're doing name-based scheduling
|
||||
if hasattr(args, 'member_name') and args.member_name:
|
||||
return _schedule_specific_member(cli, service, service_type_name, args.member_name)
|
||||
|
||||
# Get classification constraints if not provided
|
||||
classification_ids = []
|
||||
if args.classifications:
|
||||
@@ -848,6 +869,137 @@ def cmd_schedules_schedule(cli: "NimbusFlowCLI", args) -> None:
|
||||
return
|
||||
|
||||
|
||||
def _schedule_specific_member(cli: "NimbusFlowCLI", service, service_type_name: str, member_name: str) -> None:
|
||||
"""Helper function to schedule a specific member by name."""
|
||||
|
||||
# Search for matching members
|
||||
all_members = cli.member_repo.list_all()
|
||||
search_terms = member_name.lower().split()
|
||||
|
||||
matching_members = []
|
||||
for member in all_members:
|
||||
member_text = f"{member.FirstName} {member.LastName}".lower()
|
||||
# Match if all search terms are found in the member's name
|
||||
if all(term in member_text for term in search_terms):
|
||||
matching_members.append(member)
|
||||
|
||||
if not matching_members:
|
||||
print(f"{TableColors.ERROR}❌ No members found matching '{member_name}'{TableColors.RESET}")
|
||||
return
|
||||
|
||||
# If multiple matches, let user select
|
||||
selected_member = None
|
||||
if len(matching_members) == 1:
|
||||
selected_member = matching_members[0]
|
||||
print(f"\n{TableColors.SUCCESS}Found member: {selected_member.FirstName} {selected_member.LastName}{TableColors.RESET}")
|
||||
else:
|
||||
print(f"\n{TableColors.HEADER}Multiple members found matching '{member_name}':{TableColors.RESET}")
|
||||
print(f"{TableColors.BORDER}─" * 50 + f"{TableColors.RESET}")
|
||||
print()
|
||||
for i, member in enumerate(matching_members, 1):
|
||||
status = "Active" if member.IsActive else "Inactive"
|
||||
status_color = TableColors.SUCCESS if member.IsActive else TableColors.DIM
|
||||
print(f" {TableColors.CYAN}{i}.{TableColors.RESET} {TableColors.BOLD}{member.FirstName} {member.LastName}{TableColors.RESET} {TableColors.DIM}({status_color}{status}{TableColors.RESET}{TableColors.DIM}){TableColors.RESET}")
|
||||
print()
|
||||
|
||||
try:
|
||||
print(f"\n{TableColors.INPUT_BOX}┌─ Select member (1-{len(matching_members)}) ─┐{TableColors.RESET}")
|
||||
choice = input(f"{TableColors.INPUT_BOX}└─> {TableColors.RESET}").strip()
|
||||
if not choice or not choice.isdigit():
|
||||
print(f"{TableColors.ERROR}❌ Invalid selection{TableColors.RESET}")
|
||||
return
|
||||
|
||||
member_index = int(choice) - 1
|
||||
if member_index < 0 or member_index >= len(matching_members):
|
||||
print(f"{TableColors.ERROR}❌ Invalid selection{TableColors.RESET}")
|
||||
return
|
||||
|
||||
selected_member = matching_members[member_index]
|
||||
except (KeyboardInterrupt, EOFError):
|
||||
print(f"\n{TableColors.WARNING}🛑 Operation cancelled{TableColors.RESET}")
|
||||
return
|
||||
|
||||
# Check if member is active
|
||||
if not selected_member.IsActive:
|
||||
print(f"\n{TableColors.WARNING}⚠️ Warning: {selected_member.FirstName} {selected_member.LastName} is marked as inactive{TableColors.RESET}")
|
||||
try:
|
||||
confirm = input(f"{TableColors.INPUT_BOX}Continue anyway? (y/N) {TableColors.RESET}").strip().lower()
|
||||
if confirm not in ['y', 'yes']:
|
||||
print(f"{TableColors.WARNING}Scheduling cancelled{TableColors.RESET}")
|
||||
return
|
||||
except (KeyboardInterrupt, EOFError):
|
||||
print(f"\n{TableColors.WARNING}🛑 Operation cancelled{TableColors.RESET}")
|
||||
return
|
||||
|
||||
# Get member's classification
|
||||
if not selected_member.ClassificationId:
|
||||
print(f"{TableColors.ERROR}❌ {selected_member.FirstName} {selected_member.LastName} has no classification assigned{TableColors.RESET}")
|
||||
return
|
||||
|
||||
member_classification = cli.classification_repo.get_by_id(selected_member.ClassificationId)
|
||||
if not member_classification:
|
||||
print(f"{TableColors.ERROR}❌ Could not find classification for {selected_member.FirstName} {selected_member.LastName}{TableColors.RESET}")
|
||||
return
|
||||
|
||||
classification_names = [member_classification.ClassificationName]
|
||||
|
||||
# Check service availability
|
||||
if not cli.availability_repo.get(selected_member.MemberId, service.ServiceTypeId):
|
||||
print(f"{TableColors.ERROR}❌ {selected_member.FirstName} {selected_member.LastName} is not available for {service_type_name} services{TableColors.RESET}")
|
||||
return
|
||||
|
||||
# Check for existing schedules on the same date
|
||||
if cli.schedule_repo.has_schedule_on_date(selected_member.MemberId, str(service.ServiceDate)):
|
||||
print(f"{TableColors.ERROR}❌ {selected_member.FirstName} {selected_member.LastName} already has a schedule on {service.ServiceDate}{TableColors.RESET}")
|
||||
return
|
||||
|
||||
# Check for existing schedule for this specific service
|
||||
existing_schedule = cli.schedule_repo.get_one(member_id=selected_member.MemberId, service_id=service.ServiceId)
|
||||
if existing_schedule:
|
||||
status_text = existing_schedule.Status.upper()
|
||||
print(f"{TableColors.ERROR}❌ {selected_member.FirstName} {selected_member.LastName} already has a {status_text} schedule for this service{TableColors.RESET}")
|
||||
return
|
||||
|
||||
# Show confirmation
|
||||
print(f"\n{TableColors.HEADER}Scheduling Confirmation{TableColors.RESET}")
|
||||
print(f"{TableColors.BORDER}─" * 50 + f"{TableColors.RESET}")
|
||||
print(f" {TableColors.BOLD}Member:{TableColors.RESET} {selected_member.FirstName} {selected_member.LastName}")
|
||||
print(f" {TableColors.BOLD}Service:{TableColors.RESET} {service_type_name} on {service.ServiceDate}")
|
||||
print(f" {TableColors.BOLD}Classifications:{TableColors.RESET} {', '.join(classification_names)}")
|
||||
print()
|
||||
|
||||
try:
|
||||
print(f"\n{TableColors.INPUT_BOX}┌─ Create this schedule? (Y/n) ─┐{TableColors.RESET}")
|
||||
confirm = input(f"{TableColors.INPUT_BOX}└─> {TableColors.RESET}").strip().lower()
|
||||
if confirm in ['n', 'no']:
|
||||
print(f"{TableColors.WARNING}Scheduling cancelled{TableColors.RESET}")
|
||||
return
|
||||
except (KeyboardInterrupt, EOFError):
|
||||
print(f"\n{TableColors.WARNING}🛑 Operation cancelled{TableColors.RESET}")
|
||||
return
|
||||
|
||||
# Create the schedule
|
||||
try:
|
||||
from backend.models.enums import ScheduleStatus
|
||||
|
||||
schedule = cli.schedule_repo.create(
|
||||
service_id=service.ServiceId,
|
||||
member_id=selected_member.MemberId,
|
||||
status=ScheduleStatus.PENDING,
|
||||
)
|
||||
|
||||
# Update the member's LastScheduledAt timestamp
|
||||
cli.member_repo.touch_last_scheduled(selected_member.MemberId)
|
||||
|
||||
print(f"\n{TableColors.SUCCESS}✅ Successfully scheduled {selected_member.FirstName} {selected_member.LastName}!{TableColors.RESET}")
|
||||
print(f"{TableColors.DIM}Schedule ID: {schedule.ScheduleId}{TableColors.RESET}")
|
||||
print(f"{TableColors.DIM}Status: Pending (awaiting member response){TableColors.RESET}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"{TableColors.ERROR}❌ Failed to create schedule: {e}{TableColors.RESET}")
|
||||
return
|
||||
|
||||
|
||||
def setup_schedules_parser(subparsers) -> None:
|
||||
"""Set up schedule-related command parsers."""
|
||||
# Schedules commands
|
||||
@@ -880,7 +1032,8 @@ def setup_schedules_parser(subparsers) -> None:
|
||||
schedules_remove_parser.add_argument("--date", type=str, help="Interactive mode: select service and members by date (YYYY-MM-DD)")
|
||||
|
||||
# schedules schedule
|
||||
schedules_schedule_parser = schedules_subparsers.add_parser("schedule", help="Schedule next member for a service (cycles through eligible members)")
|
||||
schedules_schedule_parser = schedules_subparsers.add_parser("schedule", help="Schedule next member for a service (cycles through eligible members or by name)")
|
||||
schedules_schedule_parser.add_argument("service_id", type=int, nargs="?", help="Service ID to schedule for (optional if using --date)")
|
||||
schedules_schedule_parser.add_argument("--date", type=str, help="Interactive mode: select service by date (YYYY-MM-DD)")
|
||||
schedules_schedule_parser.add_argument("--classifications", nargs="*", help="Classification names to filter by (e.g., Soprano Alto)")
|
||||
schedules_schedule_parser.add_argument("--classifications", nargs="*", help="Classification names to filter by (e.g., Soprano Alto)")
|
||||
schedules_schedule_parser.add_argument("--member-name", type=str, help="Schedule a specific member by name (first, last, or both)")
|
||||
@@ -177,7 +177,7 @@ def display_schedules_menu():
|
||||
print(f" {Colors.CYAN}2.{Colors.RESET} {Colors.GREEN}Accept a schedule{Colors.RESET}")
|
||||
print(f" {Colors.CYAN}3.{Colors.RESET} {Colors.RED}Decline a schedule{Colors.RESET}")
|
||||
print(f" {Colors.CYAN}4.{Colors.RESET} {Colors.ERROR}Remove scheduled members{Colors.RESET}")
|
||||
print(f" {Colors.CYAN}5.{Colors.RESET} {Colors.YELLOW}Schedule next member for service{Colors.RESET}")
|
||||
print(f" {Colors.CYAN}5.{Colors.RESET} {Colors.YELLOW}Schedule member for service{Colors.RESET}")
|
||||
print(f" {Colors.CYAN}6.{Colors.RESET} {Colors.DIM}Back to main menu{Colors.RESET}")
|
||||
print()
|
||||
|
||||
@@ -417,7 +417,27 @@ def handle_schedules_menu(cli: "NimbusFlowCLI"):
|
||||
date = get_date_input("Enter date to schedule for")
|
||||
if date:
|
||||
clear_screen()
|
||||
cmd_schedules_schedule(cli, MockArgs(service_id=None, date=date, classifications=None))
|
||||
|
||||
# Ask if they want to schedule by name or use round-robin
|
||||
print(f"\n{Colors.HEADER}Scheduling Options{Colors.RESET}")
|
||||
print(f"{Colors.GREY}─" * 50 + f"{Colors.RESET}")
|
||||
print()
|
||||
print(f" {Colors.CYAN}1.{Colors.RESET} {Colors.YELLOW}Round-robin scheduling{Colors.RESET} (choose next available member)")
|
||||
print(f" {Colors.CYAN}2.{Colors.RESET} {Colors.GREEN}Schedule by name{Colors.RESET} (choose specific member)")
|
||||
print()
|
||||
|
||||
schedule_choice = get_user_choice(2)
|
||||
clear_screen()
|
||||
|
||||
if schedule_choice == 1:
|
||||
# Round-robin scheduling
|
||||
cmd_schedules_schedule(cli, MockArgs(service_id=None, date=date, classifications=None, member_name=None))
|
||||
else:
|
||||
# Name-based scheduling
|
||||
member_name = get_text_input("Enter member name to search for (first, last, or both)", True)
|
||||
if member_name:
|
||||
clear_screen()
|
||||
cmd_schedules_schedule(cli, MockArgs(service_id=None, date=date, classifications=None, member_name=member_name))
|
||||
input(f"\n{Colors.DIM}Press Enter to continue...{Colors.RESET}")
|
||||
|
||||
elif choice == 6: # Back to main menu
|
||||
|
||||
@@ -213,12 +213,12 @@ class ScheduleRepository(BaseRepository[ScheduleModel]):
|
||||
# ------------------------------------------------------------------
|
||||
def has_schedule_on_date(self, member_id: int, service_date: str) -> bool:
|
||||
"""
|
||||
Return ``True`` if *any* schedule (regardless of status) exists for
|
||||
Return ``True`` if any *active* schedule (pending or accepted) exists for
|
||||
``member_id`` on the calendar day ``service_date`` (format YYYY‑MM‑DD).
|
||||
|
||||
This abstracts the “a member can only be scheduled once per day”
|
||||
This abstracts the "a member can only be actively scheduled once per day"
|
||||
rule so the service layer does not need to know the underlying
|
||||
table layout.
|
||||
table layout. Declined schedules do not count as blocking.
|
||||
"""
|
||||
sql = f"""
|
||||
SELECT 1
|
||||
@@ -226,9 +226,10 @@ class ScheduleRepository(BaseRepository[ScheduleModel]):
|
||||
JOIN Services AS sv ON s.ServiceId = sv.ServiceId
|
||||
WHERE s.MemberId = ?
|
||||
AND sv.ServiceDate = ?
|
||||
AND s.Status IN (?, ?)
|
||||
LIMIT 1
|
||||
"""
|
||||
row = self.db.fetchone(sql, (member_id, service_date))
|
||||
row = self.db.fetchone(sql, (member_id, service_date, ScheduleStatus.PENDING.value, ScheduleStatus.ACCEPTED.value))
|
||||
return row is not None
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime, timezone
|
||||
from typing import Optional, Tuple, List, Iterable
|
||||
from typing import Optional, Tuple, List, Iterable, Literal
|
||||
|
||||
from backend.repositories import (
|
||||
ClassificationRepository,
|
||||
|
||||
@@ -223,28 +223,40 @@ def test_has_schedule_on_date(
|
||||
service_repo: ServiceRepository,
|
||||
clean_schedules
|
||||
):
|
||||
"""Test checking if member has any schedule on a specific date."""
|
||||
"""Test checking if member has any active schedule on a specific date."""
|
||||
# Create services on different dates
|
||||
service_today = service_repo.create(
|
||||
service_today_9am = service_repo.create(
|
||||
service_type_id=1,
|
||||
service_date=dt.date(2025, 9, 15)
|
||||
)
|
||||
service_today_11am = service_repo.create(
|
||||
service_type_id=2,
|
||||
service_date=dt.date(2025, 9, 15)
|
||||
)
|
||||
service_tomorrow = service_repo.create(
|
||||
service_type_id=2,
|
||||
service_date=dt.date(2025, 9, 16)
|
||||
)
|
||||
|
||||
# Create schedule for today
|
||||
# Create pending schedule for today
|
||||
schedule_repo.create(
|
||||
service_id=service_today.ServiceId,
|
||||
service_id=service_today_9am.ServiceId,
|
||||
member_id=1,
|
||||
status=ScheduleStatus.PENDING
|
||||
)
|
||||
|
||||
# Create declined schedule for today (should not block)
|
||||
schedule_repo.create(
|
||||
service_id=service_today_11am.ServiceId,
|
||||
member_id=2,
|
||||
status=ScheduleStatus.DECLINED
|
||||
)
|
||||
|
||||
# Test has_schedule_on_date
|
||||
assert schedule_repo.has_schedule_on_date(1, "2025-09-15")
|
||||
assert not schedule_repo.has_schedule_on_date(1, "2025-09-16")
|
||||
assert not schedule_repo.has_schedule_on_date(2, "2025-09-15")
|
||||
assert schedule_repo.has_schedule_on_date(1, "2025-09-15") # pending schedule blocks
|
||||
assert not schedule_repo.has_schedule_on_date(2, "2025-09-15") # declined schedule doesn't block
|
||||
assert not schedule_repo.has_schedule_on_date(1, "2025-09-16") # different date
|
||||
assert not schedule_repo.has_schedule_on_date(3, "2025-09-15") # different member
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
5
frontend/.gitignore
vendored
5
frontend/.gitignore
vendored
@@ -3,6 +3,11 @@ bin/
|
||||
obj/
|
||||
out/
|
||||
|
||||
# Explicit .NET build artifacts
|
||||
*.dll
|
||||
*.pdb
|
||||
*.exe
|
||||
|
||||
# User-specific files
|
||||
*.rsuser
|
||||
*.suo
|
||||
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v8.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v8.0": {
|
||||
"NimbusFlow.Frontend/1.0.0": {
|
||||
"runtime": {
|
||||
"NimbusFlow.Frontend.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"NimbusFlow.Frontend/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net8.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "8.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App",
|
||||
"version": "8.0.0"
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"System.GC.Server": true,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{"ContentRoots":["/home/t2/Development/nimbusflow/frontend/wwwroot/","/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/"],"Root":{"Children":{"app.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"app.css"},"Patterns":null},"bootstrap":{"Children":{"bootstrap.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css"},"Patterns":null},"bootstrap.min.css.map":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css.map"},"Patterns":null}},"Asset":null,"Patterns":null},"css":{"Children":{"nimbusflow.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/nimbusflow.css"},"Patterns":null}},"Asset":null,"Patterns":null},"favicon.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"favicon.png"},"Patterns":null},"NimbusFlow.Frontend.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"NimbusFlow.Frontend.styles.css"},"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
||||
@@ -1,22 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("NimbusFlow.Frontend")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+133efdddeaca67de9c657b22a9a336c76ff65dfb")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("NimbusFlow.Frontend")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("NimbusFlow.Frontend")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
f301bdfdc7b594589c917e1256f8f410c1893af1ef23d88133340e83a19fc068
|
||||
@@ -1,59 +0,0 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net8.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb = true
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = NimbusFlow.Frontend
|
||||
build_property.RootNamespace = NimbusFlow.Frontend
|
||||
build_property.ProjectDir = /home/t2/Development/nimbusflow/frontend/
|
||||
build_property.EnableComHosting =
|
||||
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||
build_property.RazorLangVersion = 8.0
|
||||
build_property.SupportLocalizedComponentNames =
|
||||
build_property.GenerateRazorMetadataSourceChecksumAttributes =
|
||||
build_property.MSBuildProjectDirectory = /home/t2/Development/nimbusflow/frontend
|
||||
build_property._RazorSourceGeneratorDebug =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/App.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9BcHAucmF6b3I=
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Pages/Error.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9FcnJvci5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Pages/Home.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9Ib21lLnJhem9y
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Pages/Members.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9NZW1iZXJzLnJhem9y
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Pages/Schedules.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9TY2hlZHVsZXMucmF6b3I=
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Pages/Services.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9TZXJ2aWNlcy5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Routes.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9Sb3V0ZXMucmF6b3I=
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/_Imports.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9fSW1wb3J0cy5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope =
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Layout/MainLayout.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9MYXlvdXQvTWFpbkxheW91dC5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope = b-9xz5ehm10w
|
||||
|
||||
[/home/t2/Development/nimbusflow/frontend/Components/Layout/NavMenu.razor]
|
||||
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9MYXlvdXQvTmF2TWVudS5yYXpvcg==
|
||||
build_metadata.AdditionalFiles.CssScope = b-qjlejshrrx
|
||||
@@ -1,17 +0,0 @@
|
||||
// <auto-generated/>
|
||||
global using global::Microsoft.AspNetCore.Builder;
|
||||
global using global::Microsoft.AspNetCore.Hosting;
|
||||
global using global::Microsoft.AspNetCore.Http;
|
||||
global using global::Microsoft.AspNetCore.Routing;
|
||||
global using global::Microsoft.Extensions.Configuration;
|
||||
global using global::Microsoft.Extensions.DependencyInjection;
|
||||
global using global::Microsoft.Extensions.Hosting;
|
||||
global using global::Microsoft.Extensions.Logging;
|
||||
global using global::System;
|
||||
global using global::System.Collections.Generic;
|
||||
global using global::System.IO;
|
||||
global using global::System.Linq;
|
||||
global using global::System.Net.Http;
|
||||
global using global::System.Net.Http.Json;
|
||||
global using global::System.Threading;
|
||||
global using global::System.Threading.Tasks;
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
72e9b9308a1f905093ef5ce6ebcb221be89fd0ba2dc586d8cf8c992ab0511185
|
||||
@@ -1,29 +0,0 @@
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/appsettings.Development.json
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/appsettings.json
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.staticwebassets.runtime.json
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.deps.json
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.runtimeconfig.json
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.dll
|
||||
/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.pdb
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GeneratedMSBuildEditorConfig.editorconfig
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfoInputs.cache
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfo.cs
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.CoreCompileInputs.cache
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.MvcApplicationPartsAssemblyInfo.cache
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets.build.json
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets.development.json
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets.pack.json
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/MainLayout.razor.rz.scp.css
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/NavMenu.razor.rz.scp.css
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.dll
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/refint/NimbusFlow.Frontend.dll
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.pdb
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.genruntimeconfig.cache
|
||||
/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/ref/NimbusFlow.Frontend.dll
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
3f75a48d851e3753676d6adc9e3697efe55d6269084946619fd7f2b230a66010
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -1,96 +0,0 @@
|
||||
.page[b-9xz5ehm10w] {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
main[b-9xz5ehm10w] {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.sidebar[b-9xz5ehm10w] {
|
||||
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #d6d5d5;
|
||||
justify-content: flex-end;
|
||||
height: 3.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link {
|
||||
white-space: nowrap;
|
||||
margin-left: 1.5rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a:hover, .top-row[b-9xz5ehm10w] .btn-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a:first-child {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
@media (max-width: 640.98px) {
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.page[b-9xz5ehm10w] {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.sidebar[b-9xz5ehm10w] {
|
||||
width: 250px;
|
||||
height: 100vh;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.top-row.auth[b-9xz5ehm10w] a:first-child {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w], article[b-9xz5ehm10w] {
|
||||
padding-left: 2rem !important;
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
#blazor-error-ui[b-9xz5ehm10w] {
|
||||
background: lightyellow;
|
||||
bottom: 0;
|
||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||
display: none;
|
||||
left: 0;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#blazor-error-ui .dismiss[b-9xz5ehm10w] {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0.75rem;
|
||||
top: 0.5rem;
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
.navbar-toggler[b-qjlejshrrx] {
|
||||
appearance: none;
|
||||
cursor: pointer;
|
||||
width: 3.5rem;
|
||||
height: 2.5rem;
|
||||
color: white;
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
right: 1rem;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.navbar-toggler:checked[b-qjlejshrrx] {
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.top-row[b-qjlejshrrx] {
|
||||
height: 3.5rem;
|
||||
background-color: rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.navbar-brand[b-qjlejshrrx] {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.bi[b-qjlejshrrx] {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
margin-right: 0.75rem;
|
||||
top: -1px;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.bi-house-door-fill-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-plus-square-fill-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-list-nested-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] {
|
||||
font-size: 0.9rem;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.nav-item:first-of-type[b-qjlejshrrx] {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.nav-item:last-of-type[b-qjlejshrrx] {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] .nav-link {
|
||||
color: #d7d7d7;
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: 3rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] a.active {
|
||||
background-color: rgba(255,255,255,0.37);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] .nav-link:hover {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-qjlejshrrx] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.navbar-toggler:checked ~ .nav-scrollable[b-qjlejshrrx] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.navbar-toggler[b-qjlejshrrx] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-qjlejshrrx] {
|
||||
/* Never collapse the sidebar for wide screens */
|
||||
display: block;
|
||||
|
||||
/* Allow sidebar to scroll for tall menus */
|
||||
height: calc(100vh - 3.5rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@@ -1,203 +0,0 @@
|
||||
/* _content/NimbusFlow.Frontend/Components/Layout/MainLayout.razor.rz.scp.css */
|
||||
.page[b-9xz5ehm10w] {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
main[b-9xz5ehm10w] {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.sidebar[b-9xz5ehm10w] {
|
||||
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #d6d5d5;
|
||||
justify-content: flex-end;
|
||||
height: 3.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link {
|
||||
white-space: nowrap;
|
||||
margin-left: 1.5rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a:hover, .top-row[b-9xz5ehm10w] .btn-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a:first-child {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
@media (max-width: 640.98px) {
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.page[b-9xz5ehm10w] {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.sidebar[b-9xz5ehm10w] {
|
||||
width: 250px;
|
||||
height: 100vh;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.top-row.auth[b-9xz5ehm10w] a:first-child {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w], article[b-9xz5ehm10w] {
|
||||
padding-left: 2rem !important;
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
#blazor-error-ui[b-9xz5ehm10w] {
|
||||
background: lightyellow;
|
||||
bottom: 0;
|
||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||
display: none;
|
||||
left: 0;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#blazor-error-ui .dismiss[b-9xz5ehm10w] {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0.75rem;
|
||||
top: 0.5rem;
|
||||
}
|
||||
/* _content/NimbusFlow.Frontend/Components/Layout/NavMenu.razor.rz.scp.css */
|
||||
.navbar-toggler[b-qjlejshrrx] {
|
||||
appearance: none;
|
||||
cursor: pointer;
|
||||
width: 3.5rem;
|
||||
height: 2.5rem;
|
||||
color: white;
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
right: 1rem;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.navbar-toggler:checked[b-qjlejshrrx] {
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.top-row[b-qjlejshrrx] {
|
||||
height: 3.5rem;
|
||||
background-color: rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.navbar-brand[b-qjlejshrrx] {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.bi[b-qjlejshrrx] {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
margin-right: 0.75rem;
|
||||
top: -1px;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.bi-house-door-fill-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-plus-square-fill-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-list-nested-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] {
|
||||
font-size: 0.9rem;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.nav-item:first-of-type[b-qjlejshrrx] {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.nav-item:last-of-type[b-qjlejshrrx] {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] .nav-link {
|
||||
color: #d7d7d7;
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: 3rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] a.active {
|
||||
background-color: rgba(255,255,255,0.37);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] .nav-link:hover {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-qjlejshrrx] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.navbar-toggler:checked ~ .nav-scrollable[b-qjlejshrrx] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.navbar-toggler[b-qjlejshrrx] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-qjlejshrrx] {
|
||||
/* Never collapse the sidebar for wide screens */
|
||||
display: block;
|
||||
|
||||
/* Allow sidebar to scroll for tall menus */
|
||||
height: calc(100vh - 3.5rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@@ -1,203 +0,0 @@
|
||||
/* _content/NimbusFlow.Frontend/Components/Layout/MainLayout.razor.rz.scp.css */
|
||||
.page[b-9xz5ehm10w] {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
main[b-9xz5ehm10w] {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.sidebar[b-9xz5ehm10w] {
|
||||
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #d6d5d5;
|
||||
justify-content: flex-end;
|
||||
height: 3.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link {
|
||||
white-space: nowrap;
|
||||
margin-left: 1.5rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a:hover, .top-row[b-9xz5ehm10w] .btn-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a:first-child {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
@media (max-width: 640.98px) {
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.page[b-9xz5ehm10w] {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.sidebar[b-9xz5ehm10w] {
|
||||
width: 250px;
|
||||
height: 100vh;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w] {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.top-row.auth[b-9xz5ehm10w] a:first-child {
|
||||
flex: 1;
|
||||
text-align: right;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.top-row[b-9xz5ehm10w], article[b-9xz5ehm10w] {
|
||||
padding-left: 2rem !important;
|
||||
padding-right: 1.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
#blazor-error-ui[b-9xz5ehm10w] {
|
||||
background: lightyellow;
|
||||
bottom: 0;
|
||||
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||
display: none;
|
||||
left: 0;
|
||||
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
#blazor-error-ui .dismiss[b-9xz5ehm10w] {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0.75rem;
|
||||
top: 0.5rem;
|
||||
}
|
||||
/* _content/NimbusFlow.Frontend/Components/Layout/NavMenu.razor.rz.scp.css */
|
||||
.navbar-toggler[b-qjlejshrrx] {
|
||||
appearance: none;
|
||||
cursor: pointer;
|
||||
width: 3.5rem;
|
||||
height: 2.5rem;
|
||||
color: white;
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
right: 1rem;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.navbar-toggler:checked[b-qjlejshrrx] {
|
||||
background-color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
.top-row[b-qjlejshrrx] {
|
||||
height: 3.5rem;
|
||||
background-color: rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.navbar-brand[b-qjlejshrrx] {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.bi[b-qjlejshrrx] {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
margin-right: 0.75rem;
|
||||
top: -1px;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.bi-house-door-fill-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-plus-square-fill-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.bi-list-nested-nav-menu[b-qjlejshrrx] {
|
||||
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] {
|
||||
font-size: 0.9rem;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.nav-item:first-of-type[b-qjlejshrrx] {
|
||||
padding-top: 1rem;
|
||||
}
|
||||
|
||||
.nav-item:last-of-type[b-qjlejshrrx] {
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] .nav-link {
|
||||
color: #d7d7d7;
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: 3rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] a.active {
|
||||
background-color: rgba(255,255,255,0.37);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-item[b-qjlejshrrx] .nav-link:hover {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-qjlejshrrx] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.navbar-toggler:checked ~ .nav-scrollable[b-qjlejshrrx] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (min-width: 641px) {
|
||||
.navbar-toggler[b-qjlejshrrx] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.nav-scrollable[b-qjlejshrrx] {
|
||||
/* Never collapse the sidebar for wide screens */
|
||||
display: block;
|
||||
|
||||
/* Allow sidebar to scroll for tall menus */
|
||||
height: calc(100vh - 3.5rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"Hash": "HQj5X023GHr+MwF0GlqlwaxDgNjaO62JkHxsoleuqe0=",
|
||||
"Source": "NimbusFlow.Frontend",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"Mode": "Default",
|
||||
"ManifestType": "Build",
|
||||
"ReferencedProjectsConfiguration": [],
|
||||
"DiscoveryPatterns": [
|
||||
{
|
||||
"Name": "NimbusFlow.Frontend/wwwroot",
|
||||
"Source": "NimbusFlow.Frontend",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"Pattern": "**"
|
||||
}
|
||||
],
|
||||
"Assets": [
|
||||
{
|
||||
"Identity": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css",
|
||||
"SourceId": "NimbusFlow.Frontend",
|
||||
"SourceType": "Computed",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"RelativePath": "NimbusFlow.Frontend.styles.css",
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "CurrentProject",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "ScopedCss",
|
||||
"AssetTraitValue": "ApplicationBundle",
|
||||
"CopyToOutputDirectory": "Never",
|
||||
"CopyToPublishDirectory": "PreserveNewest",
|
||||
"OriginalItemSpec": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css"
|
||||
},
|
||||
{
|
||||
"Identity": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css",
|
||||
"SourceId": "NimbusFlow.Frontend",
|
||||
"SourceType": "Computed",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"RelativePath": "NimbusFlow.Frontend.bundle.scp.css",
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "Reference",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "ScopedCss",
|
||||
"AssetTraitValue": "ProjectBundle",
|
||||
"CopyToOutputDirectory": "Never",
|
||||
"CopyToPublishDirectory": "PreserveNewest",
|
||||
"OriginalItemSpec": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css"
|
||||
},
|
||||
{
|
||||
"Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/app.css",
|
||||
"SourceId": "NimbusFlow.Frontend",
|
||||
"SourceType": "Discovered",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"RelativePath": "app.css",
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
"CopyToOutputDirectory": "Never",
|
||||
"CopyToPublishDirectory": "PreserveNewest",
|
||||
"OriginalItemSpec": "wwwroot/app.css"
|
||||
},
|
||||
{
|
||||
"Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css",
|
||||
"SourceId": "NimbusFlow.Frontend",
|
||||
"SourceType": "Discovered",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"RelativePath": "bootstrap/bootstrap.min.css",
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
"CopyToOutputDirectory": "Never",
|
||||
"CopyToPublishDirectory": "PreserveNewest",
|
||||
"OriginalItemSpec": "wwwroot/bootstrap/bootstrap.min.css"
|
||||
},
|
||||
{
|
||||
"Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css.map",
|
||||
"SourceId": "NimbusFlow.Frontend",
|
||||
"SourceType": "Discovered",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"RelativePath": "bootstrap/bootstrap.min.css.map",
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
"CopyToOutputDirectory": "Never",
|
||||
"CopyToPublishDirectory": "PreserveNewest",
|
||||
"OriginalItemSpec": "wwwroot/bootstrap/bootstrap.min.css.map"
|
||||
},
|
||||
{
|
||||
"Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/css/nimbusflow.css",
|
||||
"SourceId": "NimbusFlow.Frontend",
|
||||
"SourceType": "Discovered",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"RelativePath": "css/nimbusflow.css",
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
"CopyToOutputDirectory": "Never",
|
||||
"CopyToPublishDirectory": "PreserveNewest",
|
||||
"OriginalItemSpec": "wwwroot/css/nimbusflow.css"
|
||||
},
|
||||
{
|
||||
"Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/favicon.png",
|
||||
"SourceId": "NimbusFlow.Frontend",
|
||||
"SourceType": "Discovered",
|
||||
"ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/",
|
||||
"BasePath": "_content/NimbusFlow.Frontend",
|
||||
"RelativePath": "favicon.png",
|
||||
"AssetKind": "All",
|
||||
"AssetMode": "All",
|
||||
"AssetRole": "Primary",
|
||||
"AssetMergeBehavior": "PreferTarget",
|
||||
"AssetMergeSource": "",
|
||||
"RelatedAsset": "",
|
||||
"AssetTraitName": "",
|
||||
"AssetTraitValue": "",
|
||||
"CopyToOutputDirectory": "Never",
|
||||
"CopyToPublishDirectory": "PreserveNewest",
|
||||
"OriginalItemSpec": "wwwroot/favicon.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{"ContentRoots":["/home/t2/Development/nimbusflow/frontend/wwwroot/","/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/"],"Root":{"Children":{"app.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"app.css"},"Patterns":null},"bootstrap":{"Children":{"bootstrap.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css"},"Patterns":null},"bootstrap.min.css.map":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css.map"},"Patterns":null}},"Asset":null,"Patterns":null},"css":{"Children":{"nimbusflow.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"css/nimbusflow.css"},"Patterns":null}},"Asset":null,"Patterns":null},"favicon.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"favicon.png"},"Patterns":null},"NimbusFlow.Frontend.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"NimbusFlow.Frontend.styles.css"},"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"Files": [
|
||||
{
|
||||
"Id": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css",
|
||||
"PackagePath": "staticwebassets/NimbusFlow.Frontend.bundle.scp.css"
|
||||
},
|
||||
{
|
||||
"Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/app.css",
|
||||
"PackagePath": "staticwebassets/app.css"
|
||||
},
|
||||
{
|
||||
"Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css",
|
||||
"PackagePath": "staticwebassets/bootstrap/bootstrap.min.css"
|
||||
},
|
||||
{
|
||||
"Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css.map",
|
||||
"PackagePath": "staticwebassets/bootstrap/bootstrap.min.css.map"
|
||||
},
|
||||
{
|
||||
"Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/css/nimbusflow.css",
|
||||
"PackagePath": "staticwebassets/css/nimbusflow.css"
|
||||
},
|
||||
{
|
||||
"Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/favicon.png",
|
||||
"PackagePath": "staticwebassets/favicon.png"
|
||||
},
|
||||
{
|
||||
"Id": "obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props",
|
||||
"PackagePath": "build\\Microsoft.AspNetCore.StaticWebAssets.props"
|
||||
},
|
||||
{
|
||||
"Id": "obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props",
|
||||
"PackagePath": "build\\NimbusFlow.Frontend.props"
|
||||
},
|
||||
{
|
||||
"Id": "obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props",
|
||||
"PackagePath": "buildMultiTargeting\\NimbusFlow.Frontend.props"
|
||||
},
|
||||
{
|
||||
"Id": "obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props",
|
||||
"PackagePath": "buildTransitive\\NimbusFlow.Frontend.props"
|
||||
}
|
||||
],
|
||||
"ElementsToRemove": []
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
<Project>
|
||||
<ItemGroup>
|
||||
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\app.css))">
|
||||
<SourceType>Package</SourceType>
|
||||
<SourceId>NimbusFlow.Frontend</SourceId>
|
||||
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
|
||||
<BasePath>_content/NimbusFlow.Frontend</BasePath>
|
||||
<RelativePath>app.css</RelativePath>
|
||||
<AssetKind>All</AssetKind>
|
||||
<AssetMode>All</AssetMode>
|
||||
<AssetRole>Primary</AssetRole>
|
||||
<RelatedAsset></RelatedAsset>
|
||||
<AssetTraitName></AssetTraitName>
|
||||
<AssetTraitValue></AssetTraitValue>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\app.css))</OriginalItemSpec>
|
||||
</StaticWebAsset>
|
||||
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css))">
|
||||
<SourceType>Package</SourceType>
|
||||
<SourceId>NimbusFlow.Frontend</SourceId>
|
||||
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
|
||||
<BasePath>_content/NimbusFlow.Frontend</BasePath>
|
||||
<RelativePath>bootstrap/bootstrap.min.css</RelativePath>
|
||||
<AssetKind>All</AssetKind>
|
||||
<AssetMode>All</AssetMode>
|
||||
<AssetRole>Primary</AssetRole>
|
||||
<RelatedAsset></RelatedAsset>
|
||||
<AssetTraitName></AssetTraitName>
|
||||
<AssetTraitValue></AssetTraitValue>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css))</OriginalItemSpec>
|
||||
</StaticWebAsset>
|
||||
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css.map))">
|
||||
<SourceType>Package</SourceType>
|
||||
<SourceId>NimbusFlow.Frontend</SourceId>
|
||||
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
|
||||
<BasePath>_content/NimbusFlow.Frontend</BasePath>
|
||||
<RelativePath>bootstrap/bootstrap.min.css.map</RelativePath>
|
||||
<AssetKind>All</AssetKind>
|
||||
<AssetMode>All</AssetMode>
|
||||
<AssetRole>Primary</AssetRole>
|
||||
<RelatedAsset></RelatedAsset>
|
||||
<AssetTraitName></AssetTraitName>
|
||||
<AssetTraitValue></AssetTraitValue>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css.map))</OriginalItemSpec>
|
||||
</StaticWebAsset>
|
||||
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\css\nimbusflow.css))">
|
||||
<SourceType>Package</SourceType>
|
||||
<SourceId>NimbusFlow.Frontend</SourceId>
|
||||
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
|
||||
<BasePath>_content/NimbusFlow.Frontend</BasePath>
|
||||
<RelativePath>css/nimbusflow.css</RelativePath>
|
||||
<AssetKind>All</AssetKind>
|
||||
<AssetMode>All</AssetMode>
|
||||
<AssetRole>Primary</AssetRole>
|
||||
<RelatedAsset></RelatedAsset>
|
||||
<AssetTraitName></AssetTraitName>
|
||||
<AssetTraitValue></AssetTraitValue>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\css\nimbusflow.css))</OriginalItemSpec>
|
||||
</StaticWebAsset>
|
||||
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\favicon.png))">
|
||||
<SourceType>Package</SourceType>
|
||||
<SourceId>NimbusFlow.Frontend</SourceId>
|
||||
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
|
||||
<BasePath>_content/NimbusFlow.Frontend</BasePath>
|
||||
<RelativePath>favicon.png</RelativePath>
|
||||
<AssetKind>All</AssetKind>
|
||||
<AssetMode>All</AssetMode>
|
||||
<AssetRole>Primary</AssetRole>
|
||||
<RelatedAsset></RelatedAsset>
|
||||
<AssetTraitName></AssetTraitName>
|
||||
<AssetTraitValue></AssetTraitValue>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\favicon.png))</OriginalItemSpec>
|
||||
</StaticWebAsset>
|
||||
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\NimbusFlow.Frontend.bundle.scp.css))">
|
||||
<SourceType>Package</SourceType>
|
||||
<SourceId>NimbusFlow.Frontend</SourceId>
|
||||
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
|
||||
<BasePath>_content/NimbusFlow.Frontend</BasePath>
|
||||
<RelativePath>NimbusFlow.Frontend.bundle.scp.css</RelativePath>
|
||||
<AssetKind>All</AssetKind>
|
||||
<AssetMode>Reference</AssetMode>
|
||||
<AssetRole>Primary</AssetRole>
|
||||
<RelatedAsset></RelatedAsset>
|
||||
<AssetTraitName>ScopedCss</AssetTraitName>
|
||||
<AssetTraitValue>ProjectBundle</AssetTraitValue>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
|
||||
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\NimbusFlow.Frontend.bundle.scp.css))</OriginalItemSpec>
|
||||
</StaticWebAsset>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,3 +0,0 @@
|
||||
<Project>
|
||||
<Import Project="Microsoft.AspNetCore.StaticWebAssets.props" />
|
||||
</Project>
|
||||
@@ -1,3 +0,0 @@
|
||||
<Project>
|
||||
<Import Project="../build/NimbusFlow.Frontend.props" />
|
||||
</Project>
|
||||
@@ -1,3 +0,0 @@
|
||||
<Project>
|
||||
<Import Project="../buildMultiTargeting/NimbusFlow.Frontend.props" />
|
||||
</Project>
|
||||
@@ -1,64 +0,0 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj",
|
||||
"projectName": "NimbusFlow.Frontend",
|
||||
"projectPath": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj",
|
||||
"packagesPath": "/home/t2/.nuget/packages/",
|
||||
"outputPath": "/home/t2/Development/nimbusflow/frontend/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/home/t2/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net8.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.AspNetCore.App": {
|
||||
"privateAssets": "none"
|
||||
},
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/8.0.119/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/t2/.nuget/packages/</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/t2/.nuget/packages/</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.1</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="/home/t2/.nuget/packages/" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -1,2 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
@@ -1,69 +0,0 @@
|
||||
{
|
||||
"version": 3,
|
||||
"targets": {
|
||||
"net8.0": {}
|
||||
},
|
||||
"libraries": {},
|
||||
"projectFileDependencyGroups": {
|
||||
"net8.0": []
|
||||
},
|
||||
"packageFolders": {
|
||||
"/home/t2/.nuget/packages/": {}
|
||||
},
|
||||
"project": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj",
|
||||
"projectName": "NimbusFlow.Frontend",
|
||||
"projectPath": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj",
|
||||
"packagesPath": "/home/t2/.nuget/packages/",
|
||||
"outputPath": "/home/t2/Development/nimbusflow/frontend/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/home/t2/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net8.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
},
|
||||
"warningProperties": {
|
||||
"warnAsError": [
|
||||
"NU1605"
|
||||
]
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net8.0": {
|
||||
"targetAlias": "net8.0",
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48",
|
||||
"net481"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"frameworkReferences": {
|
||||
"Microsoft.AspNetCore.App": {
|
||||
"privateAssets": "none"
|
||||
},
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/8.0.119/PortableRuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "4VM37g4NzGscGHW+DyrAJgqbILrTqjEDnHP1JXPPpgdgYQb1HOBSeMph5AXEVHY4bn19ocXdXWcAV3zg61qCRQ==",
|
||||
"success": true,
|
||||
"projectFilePath": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj",
|
||||
"expectedPackageFiles": [],
|
||||
"logs": []
|
||||
}
|
||||
Reference in New Issue
Block a user