update visitor
parent
1f9274fa8d
commit
7b878f2f23
|
@ -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"]}}
|
|
@ -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"
|
||||
}
|
|
@ -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" });
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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>
|
|
@ -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"]}}
|
|
@ -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.
Binary file not shown.
|
@ -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
Binary file not shown.
|
@ -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.
|
@ -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")]
|
||||
|
|
|
@ -1 +1 @@
|
|||
20eac3a7111f9b4d49544ef617ec0b9354847cf0aad7d5f50deb0a49da8bd5ed
|
||||
3841a76ecb907eaeb4876c34967ea65cb42111efeb7f84a411bb1383b38cec60
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
|||
bf1affb99712d518650989b37d9fa290d52d2395b49f1bb2efc78393de26e876
|
||||
424597b6428ebf52ab678364ba68fd6f6f11a85bb2028dc0e66b52a40da2eb4a
|
||||
|
|
|
@ -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
|
@ -1 +1 @@
|
|||
9Geb1ewOaKysPkkcOwNj3B4gEbe791SvKl6WBt41Rbw=
|
||||
nQxclxp1TiAkHRIeB+vKI5XJEJimFjEGmJadmJ8Q/oE=
|
File diff suppressed because one or more lines are too long
|
@ -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, )"
|
||||
|
|
|
@ -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, )"
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in New Issue