update visitor

main
marszayn 2025-07-07 09:26:22 +07:00
parent 1f9274fa8d
commit 7b878f2f23
44 changed files with 915 additions and 38 deletions

View File

@ -0,0 +1 @@
{"web":{"client_id":"828255704311-0k6389pdp4q8svak19ft6hrnucci05jh.apps.googleusercontent.com","project_id":"web-dlh","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["http://localhost:5221/oauth2callback","https://lingkunganhidup.jakarta.go.id/oauth2callback"],"javascript_origins":["http://localhost","https://lingkunganhidup.jakarta.go.id"]}}

View File

@ -0,0 +1,13 @@
{
"type": "service_account",
"project_id": "web-dlh",
"private_key_id": "cd5131789ecee321f30be0eba05bae5d999538b0",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyOQmCj/RwfwIu\nWhW6rR8CYonMUyXMWPTqh5JmcN2nwneaArkCfbgi+hHxXv9MARp/mhGArMbeGfhR\nSBmijIrHXdpIUIiP6DqMpFFP/vA1EAzG34msCvbHYdH+aDtpPWVJuIHYZ+EQ2enf\nAymFHuEapuQ1FIgalLOkkYsWOdNFJ6/SADvobq5PNcnsFi1sw9dxsbb564kukyFR\nZICGbneCYgY8EtwCEH6EjZJOQFVkciq9hJoSAA8uQTyGPBksnjyeL12N/uEs4YGE\n9PTedLFykAQTh86E2GbEPHiFS1+DqAmTL/efbcM0/X8h7vka0PUGxxYjSDdAmrZs\nKD3XiXljAgMBAAECggEAEkqR+XaZJv3qCo7QAcTof1VUq4XxxatwQNfMLzuwjBoE\ng2fPIXx8rF5PqXRPWGIZRvUC4drEXaF7ClXk3Pl2pCfePM4YeJ3kJcYW2v0hHcO5\nbqRyRpgozrrGk3PoJmYY4fw6m1bB/c7tAVNGQiAyszUOC+KWZhVSlfZ4DhO+Oq+/\n1jIj3VWF9Numxku4SwPtqvPa2MNRDBrpebNpPUZIS7DK7DnduL8X0eRHmcGdhRUS\nFtb9qsxMcvA2gIQNYGQfVCNoGzF2Vhs7MIOClCx/cHjstnKuvesKaJv5j3gHW/gn\nh5DEhFW+BJYuR67QDrAsbMT4xGm0aC1Z/v0ha1pfAQKBgQD5mkJB4L3b82/iXGfC\nNidIyr5SMHYMuAIkm9uPIUyXMQcyoIJd36Kt8L7pbFaHgasKmvjZ0hIr5q19aOyF\nONkQBHCALobCzSe3zdLPe5iXropuzA4cWSBNJqE/MnrcnCodbzZlARAARUq03ile\n6/oTwgqmUBdFZOrm2nh3/y5pAQKBgQC2ym1rc2SZ6cjf4aT4Wd2yY5OpHqg1chII\nrl8I06idCNcW1YtuxDr7kSvEqKZRs0GPHAp3Vy3WuS5WTOWYxN4E7OrcB9oNlJOF\nDTSdTQXeFplNA4xM3PLsKnp0MTdu1xf9mHJ5edMoYuFf6Q7Vd9yqyy6FbbeVaGYJ\neKNbIYjeYwKBgE9TMxN0tWIdr8Uk0OTsCPgdVvcP57SLFkNENTb7wjeaoUr5r/Td\nifn1tPbCM43FK/Km5cdz98pz+VcN7X05X+KzRn22S6XFRYYop4LBKPGrytsDhsiD\nmrxqNny7MkjCaLAKFCNtfwRXATMSF9vO6x80X+YTNhIbzHupmven5bwBAoGBAIdM\n4x1L9sUulS+SmEf0TPOEXYIrXRriapLebx3bfc1vA7a1LlY5Dee0Fw+kPifvZbGG\ncgDQGO/9dl0O4kvoPOasb1OaxD6VIXS0x6M/pf40ABlPbQRf77f74VQsMfnrYKin\ntORR1ojoWCZkHkTISiBp8O92vRLsicqs702/Ts49AoGBAMGPptGkG0UpY8eypdFt\nWTwKrRe7E2fiW2KDYJ2a+DoJqOQ8n8bXBpC9/SmA3JU2xxS3ENJ9I5H9jj/RCyal\ndqqKr2ZLz5PfMFFRwyUeA9HUgkfZ3tsGrh+ifURmdQPRo1ojizhDB4p8ffVn2yTE\n7KqabCAy0KUGSod/hAQELaVe\n-----END PRIVATE KEY-----\n",
"client_email": "web-dlh@web-dlh.iam.gserviceaccount.com",
"client_id": "105872734462526657952",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/web-dlh%40web-dlh.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}

View File

@ -0,0 +1,184 @@
using Microsoft.AspNetCore.Mvc;
using Google.Apis.AnalyticsData.v1beta;
using Google.Apis.AnalyticsData.v1beta.Data;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Caching.Memory;
namespace YourApp.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class VisitorController : ControllerBase
{
private readonly IMemoryCache _cache;
private static string[] Scopes = { AnalyticsDataService.Scope.AnalyticsReadonly };
private static string ApplicationName = "web-dlh";
private static string PropertyId = "493898388";
private static readonly TimeSpan CacheDuration = TimeSpan.FromMinutes(30);
public VisitorController(IMemoryCache cache)
{
_cache = cache;
}
private static string GetCredentialsPath()
{
return Path.Combine(
Directory.GetCurrentDirectory(),
"AppData",
"web-dlh-cd5131789ece.json"
);
}
// Endpoint to get daily visitor count
[HttpGet("daily-visitor")]
public async Task<IActionResult> GetDailyVisitor()
{
try
{
var visitorCount = await GetVisitorCountAsync("yesterday", "yesterday");
return Ok(new { dailyVisitorCount = visitorCount });
}
catch (Exception ex)
{
return StatusCode(500, new { message = "Error fetching daily visitor data", details = ex.Message });
}
}
// Endpoint to get monthly visitor count
[HttpGet("monthly-visitor")]
public async Task<IActionResult> GetMonthlyVisitor()
{
try
{
var visitorCount = await GetVisitorCountAsync("30daysAgo", "yesterday");
return Ok(new { monthlyVisitorCount = visitorCount });
}
catch (Exception ex)
{
return StatusCode(500, new { message = "Error fetching monthly visitor data", details = ex.Message });
}
}
// Endpoint to get both daily and monthly visitor counts
[HttpGet("visitor-stats")]
public async Task<IActionResult> GetVisitorStats()
{
const string cacheKey = "visitor_stats";
try
{
// Check cache first
if (_cache.TryGetValue(cacheKey, out var cachedStats))
{
return Ok(cachedStats);
}
// Fetch from GA4
var dailyTask = GetVisitorCountAsync("yesterday", "yesterday");
var monthlyTask = GetVisitorCountAsync("30daysAgo", "yesterday");
await Task.WhenAll(dailyTask, monthlyTask);
var stats = new
{
dailyVisitorCount = await dailyTask,
monthlyVisitorCount = await monthlyTask,
lastUpdated = DateTime.UtcNow
};
_cache.Set(cacheKey, stats, CacheDuration);
return Ok(stats);
}
catch (Exception ex)
{
if (_cache.TryGetValue(cacheKey, out var expiredStats))
{
return Ok(expiredStats);
}
return StatusCode(500, new
{
message = "Error fetching visitor statistics",
details = ex.Message
});
}
}
// Private method to fetch visitor count from Google Analytics Data API
private async Task<long> GetVisitorCountAsync(string startDate, string endDate)
{
GoogleCredential credential;
var credentialsPath = GetCredentialsPath();
Console.WriteLine($"Using credentials path: {credentialsPath}");
// Check if credentials file exists
if (!System.IO.File.Exists(credentialsPath))
{
throw new FileNotFoundException($"Credentials file not found at: {credentialsPath}");
}
// Authenticate using Service Account
using (var stream = new FileStream(credentialsPath, FileMode.Open, FileAccess.Read))
{
credential = GoogleCredential.FromStream(stream).CreateScoped(Scopes);
}
// Create the AnalyticsDataService instance
var analyticsDataService = new AnalyticsDataService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Prepare the request for the report
var request = new RunReportRequest
{
DateRanges = new List<DateRange>
{
new DateRange
{
StartDate = startDate,
EndDate = endDate
}
},
Metrics = new List<Metric>
{
new Metric { Name = "activeUsers" }
}
};
// Execute the request and get the response
var response = await analyticsDataService.Properties.RunReport(request, $"properties/{PropertyId}").ExecuteAsync();
long visitorCount = 0;
if (response?.Rows?.Count > 0 && response.Rows[0].MetricValues?.Count > 0)
{
if (long.TryParse(response.Rows[0].MetricValues[0].Value, out visitorCount))
{
return visitorCount;
}
}
return visitorCount;
}
[HttpPost("clear-cache")]
public IActionResult ClearCache()
{
_cache.Remove("visitor_stats");
return Ok(new { message = "Cache cleared successfully" });
}
}
}

View File

@ -25,6 +25,34 @@
<p class="text-green-100 text-lg leading-relaxed max-w-sm mx-auto lg:mx-0">
Bersama membangun Jakarta yang hijau dan berkelanjutan untuk generasi mendatang
</p>
@* Pengunjung *@
<div class="flex items-center justify-center lg:justify-start space-x-3 mt-6">
<div class="bg-white/10 backdrop-blur-sm rounded-xl p-4 border border-white/20 hover:bg-white/20 transition-all duration-300 group">
<div class="flex items-center space-x-3">
<div class="w-10 h-10 bg-yellow-300/20 rounded-lg flex items-center justify-center flex-shrink-0">
<i class="text-yellow-300 w-5 h-5" data-lucide="users"></i>
</div>
<div class="text-left">
<div class="text-2xl lg:text-3xl font-bold text-yellow-300 group-hover:text-yellow-200 transition-colors" id="dailyVisitors">0</div>
<div class="text-green-100 text-sm font-medium">Daily Visitor</div>
</div>
</div>
</div>
<div class="bg-white/10 backdrop-blur-sm rounded-xl p-4 border border-white/20 hover:bg-white/20 transition-all duration-300 group">
<div class="flex items-center space-x-3">
<div class="w-10 h-10 bg-yellow-300/20 rounded-lg flex items-center justify-center flex-shrink-0">
<i class="text-yellow-300 w-5 h-5" data-lucide="trending-up"></i>
</div>
<div class="text-left">
<div class="text-2xl lg:text-3xl font-bold text-yellow-300 group-hover:text-yellow-200 transition-colors" id="monthlyVisitors">0</div>
<div class="text-green-100 text-sm font-medium">Monthly Visitor</div>
</div>
</div>
</div>
</div>
</div>
<!-- Center Section -->
@ -404,7 +432,7 @@ document.addEventListener('DOMContentLoaded', function() {
const userInput = document.getElementById("userInput");
// Session configuration
const SESSION_DURATION = 30 * 60 * 1000; // 30 menit dalam milliseconds
const SESSION_DURATION = 30 * 60 * 1000;
const STORAGE_KEY = 'ecobot_chat_session';
// Load chat history from localStorage
@ -589,3 +617,194 @@ document.addEventListener('DOMContentLoaded', function() {
}
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Configuration untuk visitor stats
const CACHE_DURATION = 30 * 60 * 1000; // 30 menit cache
const RETRY_ATTEMPTS = 3;
const RETRY_DELAY = 2000; // 2 detik
const UPDATE_INTERVAL = 60 * 60 * 1000; // 1 jam
const VISITOR_CACHE_KEY = 'visitor_stats_cache'; // Ubah nama untuk menghindari konflik
// Function to get cached data
function getCachedData() {
try {
const cached = localStorage.getItem(VISITOR_CACHE_KEY);
if (cached) {
const data = JSON.parse(cached);
const now = new Date().getTime();
if (now - data.timestamp < CACHE_DURATION) {
return data.stats;
}
}
} catch (error) {
console.error('Error reading cache:', error);
}
return null;
}
// Function to save data to cache
function saveToCache(stats) {
try {
const cacheData = {
timestamp: new Date().getTime(),
stats: stats
};
localStorage.setItem(VISITOR_CACHE_KEY, JSON.stringify(cacheData));
} catch (error) {
console.error('Error saving to cache:', error);
}
}
// Function to clear cache
function clearCache() {
try {
localStorage.removeItem(VISITOR_CACHE_KEY);
} catch (error) {
console.error('Error clearing cache:', error);
}
}
// Sleep function for retry delay
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
// Function to fetch visitor data with retry logic
async function fetchVisitorStats(attempt = 1) {
try {
console.log(`Fetching visitor stats (attempt ${attempt}/${RETRY_ATTEMPTS})...`);
const response = await fetch('/api/Visitor/visitor-stats', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Cache-Control': 'no-cache'
}
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
console.log('Visitor stats fetched successfully:', data);
// Save to cache
saveToCache(data);
return data;
} catch (error) {
console.error(`Attempt ${attempt} failed:`, error);
if (attempt < RETRY_ATTEMPTS) {
console.log(`Retrying in ${RETRY_DELAY}ms...`);
await sleep(RETRY_DELAY);
return fetchVisitorStats(attempt + 1);
} else {
console.error('All retry attempts failed');
throw error;
}
}
}
// Function to update visitor count display
function updateVisitorCount() {
const dailyElement = document.getElementById('dailyVisitors');
const monthlyElement = document.getElementById('monthlyVisitors');
if (!dailyElement || !monthlyElement) {
console.warn('Visitor count elements not found');
return;
}
// Check cache first
const cachedData = getCachedData();
if (cachedData) {
console.log('Using cached visitor data:', cachedData);
animateNumber(dailyElement, cachedData.dailyVisitorCount || 0);
animateNumber(monthlyElement, cachedData.monthlyVisitorCount || 0);
return;
}
// Show loading state
dailyElement.textContent = 'Loading...';
monthlyElement.textContent = 'Loading...';
// Fetch from API
fetchVisitorStats()
.then(data => {
console.log('API Response:', data);
// Animate numbers with actual data
animateNumber(dailyElement, data.dailyVisitorCount || 0);
animateNumber(monthlyElement, data.monthlyVisitorCount || 0);
})
.catch(error => {
console.error('Error fetching visitor data:', error);
// Try to use expired cache as fallback
try {
const expiredCache = localStorage.getItem(VISITOR_CACHE_KEY);
if (expiredCache) {
const data = JSON.parse(expiredCache);
console.log('Using expired cache as fallback:', data.stats);
animateNumber(dailyElement, data.stats.dailyVisitorCount || 0);
animateNumber(monthlyElement, data.stats.monthlyVisitorCount || 0);
return;
}
} catch (cacheError) {
console.error('Error using expired cache:', cacheError);
}
// Final fallback
dailyElement.textContent = 'N/A';
monthlyElement.textContent = 'N/A';
});
}
// Function to animate numbers
function animateNumber(element, target) {
if (!element) return;
let current = 0;
const increment = Math.ceil(target / 50);
const timer = setInterval(() => {
current += increment;
if (current >= target) {
element.textContent = target.toLocaleString();
clearInterval(timer);
} else {
element.textContent = Math.floor(current).toLocaleString();
}
}, 30);
}
// Function to force refresh (bypass cache)
function forceRefresh() {
console.log('Force refreshing visitor stats...');
clearCache();
updateVisitorCount();
}
// Call the function to update visitor count
updateVisitorCount();
// Auto-refresh every hour
setInterval(function() {
console.log('Auto-refreshing visitor stats...');
updateVisitorCount();
}, UPDATE_INTERVAL);
// Make refresh function available globally
window.refreshVisitorStats = forceRefresh;
// Clear cache on page unload if needed
window.addEventListener('beforeunload', function() {
// Optionally clear cache on page unload
// clearCache();
});
});
</script>

View File

@ -0,0 +1 @@
{"web":{"client_id":"828255704311-0k6389pdp4q8svak19ft6hrnucci05jh.apps.googleusercontent.com","project_id":"web-dlh","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["http://localhost:5221/oauth2callback","https://lingkunganhidup.jakarta.go.id/oauth2callback"],"javascript_origins":["http://localhost","https://lingkunganhidup.jakarta.go.id"]}}

View File

@ -0,0 +1,13 @@
{
"type": "service_account",
"project_id": "web-dlh",
"private_key_id": "cd5131789ecee321f30be0eba05bae5d999538b0",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyOQmCj/RwfwIu\nWhW6rR8CYonMUyXMWPTqh5JmcN2nwneaArkCfbgi+hHxXv9MARp/mhGArMbeGfhR\nSBmijIrHXdpIUIiP6DqMpFFP/vA1EAzG34msCvbHYdH+aDtpPWVJuIHYZ+EQ2enf\nAymFHuEapuQ1FIgalLOkkYsWOdNFJ6/SADvobq5PNcnsFi1sw9dxsbb564kukyFR\nZICGbneCYgY8EtwCEH6EjZJOQFVkciq9hJoSAA8uQTyGPBksnjyeL12N/uEs4YGE\n9PTedLFykAQTh86E2GbEPHiFS1+DqAmTL/efbcM0/X8h7vka0PUGxxYjSDdAmrZs\nKD3XiXljAgMBAAECggEAEkqR+XaZJv3qCo7QAcTof1VUq4XxxatwQNfMLzuwjBoE\ng2fPIXx8rF5PqXRPWGIZRvUC4drEXaF7ClXk3Pl2pCfePM4YeJ3kJcYW2v0hHcO5\nbqRyRpgozrrGk3PoJmYY4fw6m1bB/c7tAVNGQiAyszUOC+KWZhVSlfZ4DhO+Oq+/\n1jIj3VWF9Numxku4SwPtqvPa2MNRDBrpebNpPUZIS7DK7DnduL8X0eRHmcGdhRUS\nFtb9qsxMcvA2gIQNYGQfVCNoGzF2Vhs7MIOClCx/cHjstnKuvesKaJv5j3gHW/gn\nh5DEhFW+BJYuR67QDrAsbMT4xGm0aC1Z/v0ha1pfAQKBgQD5mkJB4L3b82/iXGfC\nNidIyr5SMHYMuAIkm9uPIUyXMQcyoIJd36Kt8L7pbFaHgasKmvjZ0hIr5q19aOyF\nONkQBHCALobCzSe3zdLPe5iXropuzA4cWSBNJqE/MnrcnCodbzZlARAARUq03ile\n6/oTwgqmUBdFZOrm2nh3/y5pAQKBgQC2ym1rc2SZ6cjf4aT4Wd2yY5OpHqg1chII\nrl8I06idCNcW1YtuxDr7kSvEqKZRs0GPHAp3Vy3WuS5WTOWYxN4E7OrcB9oNlJOF\nDTSdTQXeFplNA4xM3PLsKnp0MTdu1xf9mHJ5edMoYuFf6Q7Vd9yqyy6FbbeVaGYJ\neKNbIYjeYwKBgE9TMxN0tWIdr8Uk0OTsCPgdVvcP57SLFkNENTb7wjeaoUr5r/Td\nifn1tPbCM43FK/Km5cdz98pz+VcN7X05X+KzRn22S6XFRYYop4LBKPGrytsDhsiD\nmrxqNny7MkjCaLAKFCNtfwRXATMSF9vO6x80X+YTNhIbzHupmven5bwBAoGBAIdM\n4x1L9sUulS+SmEf0TPOEXYIrXRriapLebx3bfc1vA7a1LlY5Dee0Fw+kPifvZbGG\ncgDQGO/9dl0O4kvoPOasb1OaxD6VIXS0x6M/pf40ABlPbQRf77f74VQsMfnrYKin\ntORR1ojoWCZkHkTISiBp8O92vRLsicqs702/Ts49AoGBAMGPptGkG0UpY8eypdFt\nWTwKrRe7E2fiW2KDYJ2a+DoJqOQ8n8bXBpC9/SmA3JU2xxS3ENJ9I5H9jj/RCyal\ndqqKr2ZLz5PfMFFRwyUeA9HUgkfZ3tsGrh+ifURmdQPRo1ojizhDB4p8ffVn2yTE\n7KqabCAy0KUGSod/hAQELaVe\n-----END PRIVATE KEY-----\n",
"client_email": "web-dlh@web-dlh.iam.gserviceaccount.com",
"client_id": "105872734462526657952",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/web-dlh%40web-dlh.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -9,6 +9,8 @@
"dlh-net/1.0.0": {
"dependencies": {
"DynamicSections": "2.0.0",
"Google.Apis.AnalyticsData.v1beta": "1.68.0.3608",
"Google.Apis.Auth": "1.70.0",
"InfiniLore.Lucide": "0.30.516",
"Microsoft.VisualStudio.Web.CodeGeneration.Design": "9.0.0"
},
@ -40,6 +42,53 @@
}
}
},
"Google.Apis/1.70.0": {
"dependencies": {
"Google.Apis.Core": "1.70.0"
},
"runtime": {
"lib/net6.0/Google.Apis.dll": {
"assemblyVersion": "1.70.0.0",
"fileVersion": "1.70.0.0"
}
}
},
"Google.Apis.AnalyticsData.v1beta/1.68.0.3608": {
"dependencies": {
"Google.Apis": "1.70.0",
"Google.Apis.Auth": "1.70.0"
},
"runtime": {
"lib/net6.0/Google.Apis.AnalyticsData.v1beta.dll": {
"assemblyVersion": "1.68.0.3608",
"fileVersion": "1.68.0.3608"
}
}
},
"Google.Apis.Auth/1.70.0": {
"dependencies": {
"Google.Apis": "1.70.0",
"Google.Apis.Core": "1.70.0",
"System.Management": "7.0.2"
},
"runtime": {
"lib/net6.0/Google.Apis.Auth.dll": {
"assemblyVersion": "1.70.0.0",
"fileVersion": "1.70.0.0"
}
}
},
"Google.Apis.Core/1.70.0": {
"dependencies": {
"Newtonsoft.Json": "13.0.3"
},
"runtime": {
"lib/net6.0/Google.Apis.Core.dll": {
"assemblyVersion": "1.70.0.0",
"fileVersion": "1.70.0.0"
}
}
},
"Humanizer/2.14.1": {
"dependencies": {
"Humanizer.Core.af": "2.14.1",
@ -1686,7 +1735,7 @@
},
"Mono.TextTemplating/3.0.0": {
"dependencies": {
"System.CodeDom": "6.0.0"
"System.CodeDom": "7.0.0"
},
"runtime": {
"lib/net6.0/Mono.TextTemplating.dll": {
@ -1917,11 +1966,11 @@
}
},
"System.Buffers/4.5.0": {},
"System.CodeDom/6.0.0": {
"System.CodeDom/7.0.0": {
"runtime": {
"lib/net6.0/System.CodeDom.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.0.21.52210"
"lib/net7.0/System.CodeDom.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51805"
}
}
},
@ -2168,6 +2217,25 @@
"System.Threading": "4.3.0"
}
},
"System.Management/7.0.2": {
"dependencies": {
"System.CodeDom": "7.0.0"
},
"runtime": {
"lib/net7.0/System.Management.dll": {
"assemblyVersion": "7.0.0.2",
"fileVersion": "7.0.723.27404"
}
},
"runtimeTargets": {
"runtimes/win/lib/net7.0/System.Management.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "7.0.0.2",
"fileVersion": "7.0.723.27404"
}
}
},
"System.Net.Http/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.0.0",
@ -2621,6 +2689,34 @@
"path": "dynamicsections/2.0.0",
"hashPath": "dynamicsections.2.0.0.nupkg.sha512"
},
"Google.Apis/1.70.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-K6VKPkHRN1P7pMb84eZu1rFyoie7LIYYsjTPvTnEH2lbscU1sBLR1C1MtsCoSJzgDIjr0yVGmSKnIC4D73ro1g==",
"path": "google.apis/1.70.0",
"hashPath": "google.apis.1.70.0.nupkg.sha512"
},
"Google.Apis.AnalyticsData.v1beta/1.68.0.3608": {
"type": "package",
"serviceable": true,
"sha512": "sha512-y9BdpAyCIKmRSFPUZEwyD2CtqXgzC8L0gqCqfoeDIn2bBu3RBp+uiLfCe/ns20AuArfnyIJgR4unmvap+9CpHQ==",
"path": "google.apis.analyticsdata.v1beta/1.68.0.3608",
"hashPath": "google.apis.analyticsdata.v1beta.1.68.0.3608.nupkg.sha512"
},
"Google.Apis.Auth/1.70.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2gnpcYUaD5WS2/2922J+ji1tEKcNtxu+aQoiNVWhfcGwDqgcc5vk6ND6591M2UaGzJn0EdH325rsNHzi/MvA/A==",
"path": "google.apis.auth/1.70.0",
"hashPath": "google.apis.auth.1.70.0.nupkg.sha512"
},
"Google.Apis.Core/1.70.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-R7Mbea2iB/TN+3BA1LPCqb1eT2HxnILJ+ASl5pdhHHc8uSe95JTTnM2DEVbVBQ3vo9/FpbBxWBRjP1ed9QK9CQ==",
"path": "google.apis.core/1.70.0",
"hashPath": "google.apis.core.1.70.0.nupkg.sha512"
},
"Humanizer/2.14.1": {
"type": "package",
"serviceable": true,
@ -3748,12 +3844,12 @@
"path": "system.buffers/4.5.0",
"hashPath": "system.buffers.4.5.0.nupkg.sha512"
},
"System.CodeDom/6.0.0": {
"System.CodeDom/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
"path": "system.codedom/6.0.0",
"hashPath": "system.codedom.6.0.0.nupkg.sha512"
"sha512": "sha512-GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==",
"path": "system.codedom/7.0.0",
"hashPath": "system.codedom.7.0.0.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
@ -3965,6 +4061,13 @@
"path": "system.linq.expressions/4.3.0",
"hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
},
"System.Management/7.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==",
"path": "system.management/7.0.2",
"hashPath": "system.management.7.0.2.nupkg.sha512"
},
"System.Net.Http/4.3.0": {
"type": "package",
"serviceable": true,

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -9,6 +9,8 @@
<ItemGroup>
<PackageReference Include="DynamicSections" Version="2.0.0" />
<PackageReference Include="Google.Apis.AnalyticsData.v1beta" Version="1.68.0.3608" />
<PackageReference Include="Google.Apis.Auth" Version="1.70.0" />
<PackageReference Include="InfiniLore.Lucide" Version="0.30.516" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
</ItemGroup>

Binary file not shown.

View File

@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("dlh-net")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ef25d4c4616601f974b2ec1defeefc0812373b2")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1f9274fa8d9bba628b315e2c1516139c2b0f1666")]
[assembly: System.Reflection.AssemblyProductAttribute("dlh-net")]
[assembly: System.Reflection.AssemblyTitleAttribute("dlh-net")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
20eac3a7111f9b4d49544ef617ec0b9354847cf0aad7d5f50deb0a49da8bd5ed
3841a76ecb907eaeb4876c34967ea65cb42111efeb7f84a411bb1383b38cec60

View File

@ -1 +1 @@
bf1affb99712d518650989b37d9fa290d52d2395b49f1bb2efc78393de26e876
424597b6428ebf52ab678364ba68fd6f6f11a85bb2028dc0e66b52a40da2eb4a

View File

@ -6447,6 +6447,18 @@ C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\e2z0l6bcef-ki7a902c04.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\l39avdl6vx-k69i61j8qx.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\ne72vumpi5-bbojlneqx7.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\y3bo0g39i1-xjuu8xi95b.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\hc40dw3fux-0wpjv5s038.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\n7i5sq5ry6-tbfrcilj3k.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\hsfclwv881-voefrs1i1z.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\38zlg33mds-z2rm6ucin5.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\sui3n3dcig-zeemzr42oa.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\4l5xp3x7i9-twguidujce.gz
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\tuyqznhcxk-fnqjvm8x5t.gz
C:\laragon\www\dlh-net\bin\Debug\net9.0\AppData\client_secret_828255704311-0k6389pdp4q8svak19ft6hrnucci05jh.apps.googleusercontent.com.json
C:\laragon\www\dlh-net\bin\Debug\net9.0\Google.Apis.dll
C:\laragon\www\dlh-net\bin\Debug\net9.0\Google.Apis.AnalyticsData.v1beta.dll
C:\laragon\www\dlh-net\bin\Debug\net9.0\Google.Apis.Auth.dll
C:\laragon\www\dlh-net\bin\Debug\net9.0\Google.Apis.Core.dll
C:\laragon\www\dlh-net\bin\Debug\net9.0\System.Management.dll
C:\laragon\www\dlh-net\bin\Debug\net9.0\runtimes\win\lib\net7.0\System.Management.dll
C:\laragon\www\dlh-net\obj\Debug\net9.0\compressed\hc40dw3fux-04x5urqn3o.gz
C:\laragon\www\dlh-net\bin\Debug\net9.0\AppData\web-dlh-cd5131789ece.json

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
9Geb1ewOaKysPkkcOwNj3B4gEbe791SvKl6WBt41Rbw=
nQxclxp1TiAkHRIeB+vKI5XJEJimFjEGmJadmJ8Q/oE=

File diff suppressed because one or more lines are too long

View File

@ -48,6 +48,14 @@
"target": "Package",
"version": "[2.0.0, )"
},
"Google.Apis.AnalyticsData.v1beta": {
"target": "Package",
"version": "[1.68.0.3608, )"
},
"Google.Apis.Auth": {
"target": "Package",
"version": "[1.70.0, )"
},
"InfiniLore.Lucide": {
"target": "Package",
"version": "[0.30.516, )"

View File

@ -28,6 +28,73 @@
"lib/netstandard2.0/DynamicSections.dll": {}
}
},
"Google.Apis/1.70.0": {
"type": "package",
"dependencies": {
"Google.Apis.Core": "1.70.0"
},
"compile": {
"lib/net6.0/Google.Apis.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net6.0/Google.Apis.dll": {
"related": ".pdb;.xml"
}
}
},
"Google.Apis.AnalyticsData.v1beta/1.68.0.3608": {
"type": "package",
"dependencies": {
"Google.Apis": "1.68.0",
"Google.Apis.Auth": "1.68.0"
},
"compile": {
"lib/net6.0/Google.Apis.AnalyticsData.v1beta.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net6.0/Google.Apis.AnalyticsData.v1beta.dll": {
"related": ".pdb;.xml"
}
}
},
"Google.Apis.Auth/1.70.0": {
"type": "package",
"dependencies": {
"Google.Apis": "1.70.0",
"Google.Apis.Core": "1.70.0",
"System.Management": "7.0.2"
},
"compile": {
"lib/net6.0/Google.Apis.Auth.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net6.0/Google.Apis.Auth.dll": {
"related": ".pdb;.xml"
}
}
},
"Google.Apis.Core/1.70.0": {
"type": "package",
"dependencies": {
"Newtonsoft.Json": "13.0.3"
},
"compile": {
"lib/net6.0/Google.Apis.Core.dll": {
"related": ".pdb;.xml"
}
},
"runtime": {
"lib/net6.0/Google.Apis.Core.dll": {
"related": ".pdb;.xml"
}
}
},
"Humanizer/2.14.1": {
"type": "package",
"dependencies": {
@ -2752,20 +2819,20 @@
"lib/netcoreapp2.0/_._": {}
}
},
"System.CodeDom/6.0.0": {
"System.CodeDom/7.0.0": {
"type": "package",
"compile": {
"lib/net6.0/System.CodeDom.dll": {
"lib/net7.0/System.CodeDom.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.CodeDom.dll": {
"lib/net7.0/System.CodeDom.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netcoreapp3.1/_._": {}
"buildTransitive/net6.0/_._": {}
}
},
"System.Collections/4.3.0": {
@ -3298,6 +3365,31 @@
"lib/netstandard1.6/System.Linq.Expressions.dll": {}
}
},
"System.Management/7.0.2": {
"type": "package",
"dependencies": {
"System.CodeDom": "7.0.0"
},
"compile": {
"lib/net7.0/System.Management.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net7.0/System.Management.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net6.0/_._": {}
},
"runtimeTargets": {
"runtimes/win/lib/net7.0/System.Management.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"System.Net.Http/4.3.0": {
"type": "package",
"dependencies": {
@ -4247,6 +4339,94 @@
"lib/netstandard2.0/DynamicSections.dll"
]
},
"Google.Apis/1.70.0": {
"sha512": "K6VKPkHRN1P7pMb84eZu1rFyoie7LIYYsjTPvTnEH2lbscU1sBLR1C1MtsCoSJzgDIjr0yVGmSKnIC4D73ro1g==",
"type": "package",
"path": "google.apis/1.70.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE",
"NuGetIcon.png",
"google.apis.1.70.0.nupkg.sha512",
"google.apis.nuspec",
"lib/net462/Google.Apis.dll",
"lib/net462/Google.Apis.pdb",
"lib/net462/Google.Apis.xml",
"lib/net6.0/Google.Apis.dll",
"lib/net6.0/Google.Apis.pdb",
"lib/net6.0/Google.Apis.xml",
"lib/netstandard2.0/Google.Apis.dll",
"lib/netstandard2.0/Google.Apis.pdb",
"lib/netstandard2.0/Google.Apis.xml"
]
},
"Google.Apis.AnalyticsData.v1beta/1.68.0.3608": {
"sha512": "y9BdpAyCIKmRSFPUZEwyD2CtqXgzC8L0gqCqfoeDIn2bBu3RBp+uiLfCe/ns20AuArfnyIJgR4unmvap+9CpHQ==",
"type": "package",
"path": "google.apis.analyticsdata.v1beta/1.68.0.3608",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE",
"NuGetIcon.png",
"google.apis.analyticsdata.v1beta.1.68.0.3608.nupkg.sha512",
"google.apis.analyticsdata.v1beta.nuspec",
"lib/net462/Google.Apis.AnalyticsData.v1beta.dll",
"lib/net462/Google.Apis.AnalyticsData.v1beta.pdb",
"lib/net462/Google.Apis.AnalyticsData.v1beta.xml",
"lib/net6.0/Google.Apis.AnalyticsData.v1beta.dll",
"lib/net6.0/Google.Apis.AnalyticsData.v1beta.pdb",
"lib/net6.0/Google.Apis.AnalyticsData.v1beta.xml",
"lib/netstandard2.0/Google.Apis.AnalyticsData.v1beta.dll",
"lib/netstandard2.0/Google.Apis.AnalyticsData.v1beta.pdb",
"lib/netstandard2.0/Google.Apis.AnalyticsData.v1beta.xml"
]
},
"Google.Apis.Auth/1.70.0": {
"sha512": "2gnpcYUaD5WS2/2922J+ji1tEKcNtxu+aQoiNVWhfcGwDqgcc5vk6ND6591M2UaGzJn0EdH325rsNHzi/MvA/A==",
"type": "package",
"path": "google.apis.auth/1.70.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE",
"NuGetIcon.png",
"google.apis.auth.1.70.0.nupkg.sha512",
"google.apis.auth.nuspec",
"lib/net462/Google.Apis.Auth.dll",
"lib/net462/Google.Apis.Auth.pdb",
"lib/net462/Google.Apis.Auth.xml",
"lib/net6.0/Google.Apis.Auth.dll",
"lib/net6.0/Google.Apis.Auth.pdb",
"lib/net6.0/Google.Apis.Auth.xml",
"lib/netstandard2.0/Google.Apis.Auth.dll",
"lib/netstandard2.0/Google.Apis.Auth.pdb",
"lib/netstandard2.0/Google.Apis.Auth.xml"
]
},
"Google.Apis.Core/1.70.0": {
"sha512": "R7Mbea2iB/TN+3BA1LPCqb1eT2HxnILJ+ASl5pdhHHc8uSe95JTTnM2DEVbVBQ3vo9/FpbBxWBRjP1ed9QK9CQ==",
"type": "package",
"path": "google.apis.core/1.70.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE",
"NuGetIcon.png",
"google.apis.core.1.70.0.nupkg.sha512",
"google.apis.core.nuspec",
"lib/net462/Google.Apis.Core.dll",
"lib/net462/Google.Apis.Core.pdb",
"lib/net462/Google.Apis.Core.xml",
"lib/net6.0/Google.Apis.Core.dll",
"lib/net6.0/Google.Apis.Core.pdb",
"lib/net6.0/Google.Apis.Core.xml",
"lib/netstandard2.0/Google.Apis.Core.dll",
"lib/netstandard2.0/Google.Apis.Core.pdb",
"lib/netstandard2.0/Google.Apis.Core.xml"
]
},
"Humanizer/2.14.1": {
"sha512": "/FUTD3cEceAAmJSCPN9+J+VhGwmL/C12jvwlyM1DFXShEMsBzvLzLqSrJ2rb+k/W2znKw7JyflZgZpyE+tI7lA==",
"type": "package",
@ -8255,25 +8435,29 @@
"version.txt"
]
},
"System.CodeDom/6.0.0": {
"sha512": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
"System.CodeDom/7.0.0": {
"sha512": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==",
"type": "package",
"path": "system.codedom/6.0.0",
"path": "system.codedom/7.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net461/System.CodeDom.targets",
"buildTransitive/net462/_._",
"buildTransitive/net6.0/_._",
"buildTransitive/netcoreapp2.0/System.CodeDom.targets",
"buildTransitive/netcoreapp3.1/_._",
"lib/net461/System.CodeDom.dll",
"lib/net461/System.CodeDom.xml",
"lib/net462/System.CodeDom.dll",
"lib/net462/System.CodeDom.xml",
"lib/net6.0/System.CodeDom.dll",
"lib/net6.0/System.CodeDom.xml",
"lib/net7.0/System.CodeDom.dll",
"lib/net7.0/System.CodeDom.xml",
"lib/netstandard2.0/System.CodeDom.dll",
"lib/netstandard2.0/System.CodeDom.xml",
"system.codedom.6.0.0.nupkg.sha512",
"system.codedom.7.0.0.nupkg.sha512",
"system.codedom.nuspec",
"useSharedDesignerContext.txt"
]
@ -9682,6 +9866,34 @@
"system.linq.expressions.nuspec"
]
},
"System.Management/7.0.2": {
"sha512": "/qEUN91mP/MUQmJnM5y5BdT7ZoPuVrtxnFlbJ8a3kBJGhe2wCzBfnPFtK2wTtEEcf3DMGR9J00GZZfg6HRI6yA==",
"type": "package",
"path": "system.management/7.0.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net6.0/_._",
"buildTransitive/netcoreapp2.0/System.Management.targets",
"lib/net462/_._",
"lib/net6.0/System.Management.dll",
"lib/net6.0/System.Management.xml",
"lib/net7.0/System.Management.dll",
"lib/net7.0/System.Management.xml",
"lib/netstandard2.0/System.Management.dll",
"lib/netstandard2.0/System.Management.xml",
"runtimes/win/lib/net6.0/System.Management.dll",
"runtimes/win/lib/net6.0/System.Management.xml",
"runtimes/win/lib/net7.0/System.Management.dll",
"runtimes/win/lib/net7.0/System.Management.xml",
"system.management.7.0.2.nupkg.sha512",
"system.management.nuspec",
"useSharedDesignerContext.txt"
]
},
"System.Net.Http/4.3.0": {
"sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
"type": "package",
@ -12080,6 +12292,8 @@
"projectFileDependencyGroups": {
"net9.0": [
"DynamicSections >= 2.0.0",
"Google.Apis.AnalyticsData.v1beta >= 1.68.0.3608",
"Google.Apis.Auth >= 1.70.0",
"InfiniLore.Lucide >= 0.30.516",
"Microsoft.VisualStudio.Web.CodeGeneration.Design >= 9.0.0"
]
@ -12131,6 +12345,14 @@
"target": "Package",
"version": "[2.0.0, )"
},
"Google.Apis.AnalyticsData.v1beta": {
"target": "Package",
"version": "[1.68.0.3608, )"
},
"Google.Apis.Auth": {
"target": "Package",
"version": "[1.70.0, )"
},
"InfiniLore.Lucide": {
"target": "Package",
"version": "[0.30.516, )"

View File

@ -1,11 +1,15 @@
{
"version": 2,
"dgSpecHash": "pOjV2E9UBOQ=",
"dgSpecHash": "nQEXpaq6JQQ=",
"success": true,
"projectFilePath": "C:\\laragon\\www\\dlh-net\\dlh-net.csproj",
"expectedPackageFiles": [
"C:\\Users\\offic\\.nuget\\packages\\codeofchaos.extensions.dependencyinjection\\0.68.0\\codeofchaos.extensions.dependencyinjection.0.68.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\dynamicsections\\2.0.0\\dynamicsections.2.0.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\google.apis\\1.70.0\\google.apis.1.70.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\google.apis.analyticsdata.v1beta\\1.68.0.3608\\google.apis.analyticsdata.v1beta.1.68.0.3608.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\google.apis.auth\\1.70.0\\google.apis.auth.1.70.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\google.apis.core\\1.70.0\\google.apis.core.1.70.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\humanizer\\2.14.1\\humanizer.2.14.1.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\humanizer.core\\2.14.1\\humanizer.core.2.14.1.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\humanizer.core.af\\2.14.1\\humanizer.core.af.2.14.1.nupkg.sha512",
@ -167,7 +171,7 @@
"C:\\Users\\offic\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.appcontext\\4.3.0\\system.appcontext.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.buffers\\4.5.0\\system.buffers.4.5.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.codedom\\6.0.0\\system.codedom.6.0.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.codedom\\7.0.0\\system.codedom.7.0.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.collections.immutable\\8.0.0\\system.collections.immutable.8.0.0.nupkg.sha512",
@ -198,6 +202,7 @@
"C:\\Users\\offic\\.nuget\\packages\\system.io.pipelines\\7.0.0\\system.io.pipelines.7.0.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.management\\7.0.2\\system.management.7.0.2.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.net.http\\4.3.0\\system.net.http.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.net.primitives\\4.3.0\\system.net.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\offic\\.nuget\\packages\\system.net.sockets\\4.3.0\\system.net.sockets.4.3.0.nupkg.sha512",

View File

@ -482,6 +482,9 @@
.left-0 {
left: calc(var(--spacing) * 0);
}
.left-1 {
left: calc(var(--spacing) * 1);
}
.left-1\/2 {
left: calc(1/2 * 100%);
}
@ -815,6 +818,9 @@
.mb-auto {
margin-bottom: auto;
}
.ml-0 {
margin-left: calc(var(--spacing) * 0);
}
.ml-0\.5 {
margin-left: calc(var(--spacing) * 0.5);
}
@ -897,6 +903,9 @@
width: calc(var(--spacing) * 6);
height: calc(var(--spacing) * 6);
}
.h-0 {
height: calc(var(--spacing) * 0);
}
.h-0\.5 {
height: calc(var(--spacing) * 0.5);
}
@ -1026,6 +1035,9 @@
.min-h-screen {
min-height: 100vh;
}
.w-1 {
width: calc(var(--spacing) * 1);
}
.w-1\.5 {
width: calc(var(--spacing) * 1.5);
}
@ -1197,6 +1209,10 @@
.border-collapse {
border-collapse: collapse;
}
.-translate-x-1 {
--tw-translate-x: calc(var(--spacing) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.-translate-x-1\/2 {
--tw-translate-x: calc(calc(1/2 * 100%) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
@ -1225,6 +1241,10 @@
--tw-translate-x: -100%;
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.-translate-y-1 {
--tw-translate-y: calc(var(--spacing) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.-translate-y-1\/2 {
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
@ -1237,6 +1257,10 @@
--tw-translate-y: calc(var(--spacing) * -32);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.translate-y-1 {
--tw-translate-y: calc(var(--spacing) * 1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
.translate-y-1\/2 {
--tw-translate-y: calc(1/2 * 100%);
translate: var(--tw-translate-x) var(--tw-translate-y);
@ -1452,6 +1476,13 @@
.gap-x-4 {
column-gap: calc(var(--spacing) * 4);
}
.space-x-1 {
:where(& > :not(:last-child)) {
--tw-space-x-reverse: 0;
margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));
margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));
}
}
.space-x-1\.5 {
:where(& > :not(:last-child)) {
--tw-space-x-reverse: 0;
@ -1968,6 +1999,9 @@
.bg-yellow-100 {
background-color: var(--color-yellow-100);
}
.bg-yellow-300 {
background-color: var(--color-yellow-300);
}
.bg-yellow-300\/20 {
background-color: color-mix(in srgb, oklch(90.5% 0.182 98.111) 20%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@ -2152,6 +2186,11 @@
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-via-stops);
}
.via-black {
--tw-gradient-via: var(--color-black);
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-via-stops);
}
.via-black\/5 {
--tw-gradient-via: color-mix(in srgb, #000 5%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@ -2194,6 +2233,11 @@
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-via-stops);
}
.via-gray-900 {
--tw-gradient-via: var(--color-gray-900);
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-via-stops);
}
.via-gray-900\/60 {
--tw-gradient-via: color-mix(in srgb, oklch(21% 0.034 264.665) 60%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@ -2257,6 +2301,10 @@
--tw-gradient-to: var(--color-amber-800);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
.to-black {
--tw-gradient-to: var(--color-black);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
.to-black\/10 {
--tw-gradient-to: color-mix(in srgb, #000 10%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@ -2292,6 +2340,10 @@
--tw-gradient-to: var(--color-emerald-600);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
.to-emerald-800 {
--tw-gradient-to: var(--color-emerald-800);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
.to-emerald-800\/30 {
--tw-gradient-to: color-mix(in srgb, oklch(43.2% 0.095 166.913) 30%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@ -2371,6 +2423,10 @@
--tw-gradient-to: var(--color-teal-300);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
.to-teal-500 {
--tw-gradient-to: var(--color-teal-500);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
.to-teal-500\/5 {
--tw-gradient-to: color-mix(in srgb, oklch(70.4% 0.14 182.503) 5%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@ -3047,12 +3103,21 @@
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}
.shadow-green-500 {
--tw-shadow-color: oklch(72.3% 0.219 149.579);
@supports (color: color-mix(in lab, red, red)) {
--tw-shadow-color: color-mix(in oklab, var(--color-green-500) var(--tw-shadow-alpha), transparent);
}
}
.shadow-green-500\/50 {
--tw-shadow-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 50%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-shadow-color: color-mix(in oklab, color-mix(in oklab, var(--color-green-500) 50%, transparent) var(--tw-shadow-alpha), transparent);
}
}
.ring-green-600 {
--tw-ring-color: var(--color-green-600);
}
.ring-green-600\/20 {
--tw-ring-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 20%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@ -3370,6 +3435,13 @@
}
}
}
.group-hover\:text-yellow-200 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
color: var(--color-yellow-200);
}
}
}
.group-hover\:opacity-100 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
@ -3679,6 +3751,16 @@
}
}
}
.hover\:bg-white\/20 {
&:hover {
@media (hover: hover) {
background-color: color-mix(in srgb, #fff 20%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
}
}
}
}
.hover\:bg-white\/30 {
&:hover {
@media (hover: hover) {
@ -4765,6 +4847,12 @@
line-height: var(--tw-leading, var(--text-2xl--line-height));
}
}
.lg\:text-3xl {
@media (width >= 64rem) {
font-size: var(--text-3xl);
line-height: var(--tw-leading, var(--text-3xl--line-height));
}
}
.lg\:text-4xl {
@media (width >= 64rem) {
font-size: var(--text-4xl);
@ -4795,6 +4883,12 @@
line-height: var(--tw-leading, var(--text-sm--line-height));
}
}
.lg\:text-xl {
@media (width >= 64rem) {
font-size: var(--text-xl);
line-height: var(--tw-leading, var(--text-xl--line-height));
}
}
.xl\:grid-cols-4 {
@media (width >= 80rem) {
grid-template-columns: repeat(4, minmax(0, 1fr));