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">
|
<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
|
Bersama membangun Jakarta yang hijau dan berkelanjutan untuk generasi mendatang
|
||||||
</p>
|
</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>
|
</div>
|
||||||
|
|
||||||
<!-- Center Section -->
|
<!-- Center Section -->
|
||||||
|
@ -404,7 +432,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
const userInput = document.getElementById("userInput");
|
const userInput = document.getElementById("userInput");
|
||||||
|
|
||||||
// Session configuration
|
// Session configuration
|
||||||
const SESSION_DURATION = 30 * 60 * 1000; // 30 menit dalam milliseconds
|
const SESSION_DURATION = 30 * 60 * 1000;
|
||||||
const STORAGE_KEY = 'ecobot_chat_session';
|
const STORAGE_KEY = 'ecobot_chat_session';
|
||||||
|
|
||||||
// Load chat history from localStorage
|
// Load chat history from localStorage
|
||||||
|
@ -589,3 +617,194 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</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": {
|
"dlh-net/1.0.0": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"DynamicSections": "2.0.0",
|
"DynamicSections": "2.0.0",
|
||||||
|
"Google.Apis.AnalyticsData.v1beta": "1.68.0.3608",
|
||||||
|
"Google.Apis.Auth": "1.70.0",
|
||||||
"InfiniLore.Lucide": "0.30.516",
|
"InfiniLore.Lucide": "0.30.516",
|
||||||
"Microsoft.VisualStudio.Web.CodeGeneration.Design": "9.0.0"
|
"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": {
|
"Humanizer/2.14.1": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Humanizer.Core.af": "2.14.1",
|
"Humanizer.Core.af": "2.14.1",
|
||||||
|
@ -1686,7 +1735,7 @@
|
||||||
},
|
},
|
||||||
"Mono.TextTemplating/3.0.0": {
|
"Mono.TextTemplating/3.0.0": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"System.CodeDom": "6.0.0"
|
"System.CodeDom": "7.0.0"
|
||||||
},
|
},
|
||||||
"runtime": {
|
"runtime": {
|
||||||
"lib/net6.0/Mono.TextTemplating.dll": {
|
"lib/net6.0/Mono.TextTemplating.dll": {
|
||||||
|
@ -1917,11 +1966,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"System.Buffers/4.5.0": {},
|
"System.Buffers/4.5.0": {},
|
||||||
"System.CodeDom/6.0.0": {
|
"System.CodeDom/7.0.0": {
|
||||||
"runtime": {
|
"runtime": {
|
||||||
"lib/net6.0/System.CodeDom.dll": {
|
"lib/net7.0/System.CodeDom.dll": {
|
||||||
"assemblyVersion": "6.0.0.0",
|
"assemblyVersion": "7.0.0.0",
|
||||||
"fileVersion": "6.0.21.52210"
|
"fileVersion": "7.0.22.51805"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -2168,6 +2217,25 @@
|
||||||
"System.Threading": "4.3.0"
|
"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": {
|
"System.Net.Http/4.3.0": {
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.NETCore.Platforms": "2.0.0",
|
"Microsoft.NETCore.Platforms": "2.0.0",
|
||||||
|
@ -2621,6 +2689,34 @@
|
||||||
"path": "dynamicsections/2.0.0",
|
"path": "dynamicsections/2.0.0",
|
||||||
"hashPath": "dynamicsections.2.0.0.nupkg.sha512"
|
"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": {
|
"Humanizer/2.14.1": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"serviceable": true,
|
||||||
|
@ -3748,12 +3844,12 @@
|
||||||
"path": "system.buffers/4.5.0",
|
"path": "system.buffers/4.5.0",
|
||||||
"hashPath": "system.buffers.4.5.0.nupkg.sha512"
|
"hashPath": "system.buffers.4.5.0.nupkg.sha512"
|
||||||
},
|
},
|
||||||
"System.CodeDom/6.0.0": {
|
"System.CodeDom/7.0.0": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"serviceable": true,
|
||||||
"sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
|
"sha512": "sha512-GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==",
|
||||||
"path": "system.codedom/6.0.0",
|
"path": "system.codedom/7.0.0",
|
||||||
"hashPath": "system.codedom.6.0.0.nupkg.sha512"
|
"hashPath": "system.codedom.7.0.0.nupkg.sha512"
|
||||||
},
|
},
|
||||||
"System.Collections/4.3.0": {
|
"System.Collections/4.3.0": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -3965,6 +4061,13 @@
|
||||||
"path": "system.linq.expressions/4.3.0",
|
"path": "system.linq.expressions/4.3.0",
|
||||||
"hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
|
"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": {
|
"System.Net.Http/4.3.0": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"serviceable": true,
|
"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>
|
<ItemGroup>
|
||||||
<PackageReference Include="DynamicSections" Version="2.0.0" />
|
<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="InfiniLore.Lucide" Version="0.30.516" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="9.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
Binary file not shown.
|
@ -13,7 +13,7 @@ using System.Reflection;
|
||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("dlh-net")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("dlh-net")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[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.AssemblyProductAttribute("dlh-net")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("dlh-net")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("dlh-net")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[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\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\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\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\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\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",
|
"target": "Package",
|
||||||
"version": "[2.0.0, )"
|
"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": {
|
"InfiniLore.Lucide": {
|
||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[0.30.516, )"
|
"version": "[0.30.516, )"
|
||||||
|
|
|
@ -28,6 +28,73 @@
|
||||||
"lib/netstandard2.0/DynamicSections.dll": {}
|
"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": {
|
"Humanizer/2.14.1": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -2752,20 +2819,20 @@
|
||||||
"lib/netcoreapp2.0/_._": {}
|
"lib/netcoreapp2.0/_._": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"System.CodeDom/6.0.0": {
|
"System.CodeDom/7.0.0": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"compile": {
|
"compile": {
|
||||||
"lib/net6.0/System.CodeDom.dll": {
|
"lib/net7.0/System.CodeDom.dll": {
|
||||||
"related": ".xml"
|
"related": ".xml"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"runtime": {
|
"runtime": {
|
||||||
"lib/net6.0/System.CodeDom.dll": {
|
"lib/net7.0/System.CodeDom.dll": {
|
||||||
"related": ".xml"
|
"related": ".xml"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"buildTransitive/netcoreapp3.1/_._": {}
|
"buildTransitive/net6.0/_._": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"System.Collections/4.3.0": {
|
"System.Collections/4.3.0": {
|
||||||
|
@ -3298,6 +3365,31 @@
|
||||||
"lib/netstandard1.6/System.Linq.Expressions.dll": {}
|
"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": {
|
"System.Net.Http/4.3.0": {
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -4247,6 +4339,94 @@
|
||||||
"lib/netstandard2.0/DynamicSections.dll"
|
"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": {
|
"Humanizer/2.14.1": {
|
||||||
"sha512": "/FUTD3cEceAAmJSCPN9+J+VhGwmL/C12jvwlyM1DFXShEMsBzvLzLqSrJ2rb+k/W2znKw7JyflZgZpyE+tI7lA==",
|
"sha512": "/FUTD3cEceAAmJSCPN9+J+VhGwmL/C12jvwlyM1DFXShEMsBzvLzLqSrJ2rb+k/W2znKw7JyflZgZpyE+tI7lA==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -8255,25 +8435,29 @@
|
||||||
"version.txt"
|
"version.txt"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"System.CodeDom/6.0.0": {
|
"System.CodeDom/7.0.0": {
|
||||||
"sha512": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
|
"sha512": "GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
"path": "system.codedom/6.0.0",
|
"path": "system.codedom/7.0.0",
|
||||||
"files": [
|
"files": [
|
||||||
".nupkg.metadata",
|
".nupkg.metadata",
|
||||||
".signature.p7s",
|
".signature.p7s",
|
||||||
"Icon.png",
|
"Icon.png",
|
||||||
"LICENSE.TXT",
|
"LICENSE.TXT",
|
||||||
"THIRD-PARTY-NOTICES.TXT",
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"buildTransitive/net461/System.CodeDom.targets",
|
||||||
|
"buildTransitive/net462/_._",
|
||||||
|
"buildTransitive/net6.0/_._",
|
||||||
"buildTransitive/netcoreapp2.0/System.CodeDom.targets",
|
"buildTransitive/netcoreapp2.0/System.CodeDom.targets",
|
||||||
"buildTransitive/netcoreapp3.1/_._",
|
"lib/net462/System.CodeDom.dll",
|
||||||
"lib/net461/System.CodeDom.dll",
|
"lib/net462/System.CodeDom.xml",
|
||||||
"lib/net461/System.CodeDom.xml",
|
|
||||||
"lib/net6.0/System.CodeDom.dll",
|
"lib/net6.0/System.CodeDom.dll",
|
||||||
"lib/net6.0/System.CodeDom.xml",
|
"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.dll",
|
||||||
"lib/netstandard2.0/System.CodeDom.xml",
|
"lib/netstandard2.0/System.CodeDom.xml",
|
||||||
"system.codedom.6.0.0.nupkg.sha512",
|
"system.codedom.7.0.0.nupkg.sha512",
|
||||||
"system.codedom.nuspec",
|
"system.codedom.nuspec",
|
||||||
"useSharedDesignerContext.txt"
|
"useSharedDesignerContext.txt"
|
||||||
]
|
]
|
||||||
|
@ -9682,6 +9866,34 @@
|
||||||
"system.linq.expressions.nuspec"
|
"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": {
|
"System.Net.Http/4.3.0": {
|
||||||
"sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
|
"sha512": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
|
||||||
"type": "package",
|
"type": "package",
|
||||||
|
@ -12080,6 +12292,8 @@
|
||||||
"projectFileDependencyGroups": {
|
"projectFileDependencyGroups": {
|
||||||
"net9.0": [
|
"net9.0": [
|
||||||
"DynamicSections >= 2.0.0",
|
"DynamicSections >= 2.0.0",
|
||||||
|
"Google.Apis.AnalyticsData.v1beta >= 1.68.0.3608",
|
||||||
|
"Google.Apis.Auth >= 1.70.0",
|
||||||
"InfiniLore.Lucide >= 0.30.516",
|
"InfiniLore.Lucide >= 0.30.516",
|
||||||
"Microsoft.VisualStudio.Web.CodeGeneration.Design >= 9.0.0"
|
"Microsoft.VisualStudio.Web.CodeGeneration.Design >= 9.0.0"
|
||||||
]
|
]
|
||||||
|
@ -12131,6 +12345,14 @@
|
||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[2.0.0, )"
|
"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": {
|
"InfiniLore.Lucide": {
|
||||||
"target": "Package",
|
"target": "Package",
|
||||||
"version": "[0.30.516, )"
|
"version": "[0.30.516, )"
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"dgSpecHash": "pOjV2E9UBOQ=",
|
"dgSpecHash": "nQEXpaq6JQQ=",
|
||||||
"success": true,
|
"success": true,
|
||||||
"projectFilePath": "C:\\laragon\\www\\dlh-net\\dlh-net.csproj",
|
"projectFilePath": "C:\\laragon\\www\\dlh-net\\dlh-net.csproj",
|
||||||
"expectedPackageFiles": [
|
"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\\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\\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\\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\\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",
|
"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\\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.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.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\\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.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",
|
"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.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\\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.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.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.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",
|
"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-0 {
|
||||||
left: calc(var(--spacing) * 0);
|
left: calc(var(--spacing) * 0);
|
||||||
}
|
}
|
||||||
|
.left-1 {
|
||||||
|
left: calc(var(--spacing) * 1);
|
||||||
|
}
|
||||||
.left-1\/2 {
|
.left-1\/2 {
|
||||||
left: calc(1/2 * 100%);
|
left: calc(1/2 * 100%);
|
||||||
}
|
}
|
||||||
|
@ -815,6 +818,9 @@
|
||||||
.mb-auto {
|
.mb-auto {
|
||||||
margin-bottom: auto;
|
margin-bottom: auto;
|
||||||
}
|
}
|
||||||
|
.ml-0 {
|
||||||
|
margin-left: calc(var(--spacing) * 0);
|
||||||
|
}
|
||||||
.ml-0\.5 {
|
.ml-0\.5 {
|
||||||
margin-left: calc(var(--spacing) * 0.5);
|
margin-left: calc(var(--spacing) * 0.5);
|
||||||
}
|
}
|
||||||
|
@ -897,6 +903,9 @@
|
||||||
width: calc(var(--spacing) * 6);
|
width: calc(var(--spacing) * 6);
|
||||||
height: calc(var(--spacing) * 6);
|
height: calc(var(--spacing) * 6);
|
||||||
}
|
}
|
||||||
|
.h-0 {
|
||||||
|
height: calc(var(--spacing) * 0);
|
||||||
|
}
|
||||||
.h-0\.5 {
|
.h-0\.5 {
|
||||||
height: calc(var(--spacing) * 0.5);
|
height: calc(var(--spacing) * 0.5);
|
||||||
}
|
}
|
||||||
|
@ -1026,6 +1035,9 @@
|
||||||
.min-h-screen {
|
.min-h-screen {
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
.w-1 {
|
||||||
|
width: calc(var(--spacing) * 1);
|
||||||
|
}
|
||||||
.w-1\.5 {
|
.w-1\.5 {
|
||||||
width: calc(var(--spacing) * 1.5);
|
width: calc(var(--spacing) * 1.5);
|
||||||
}
|
}
|
||||||
|
@ -1197,6 +1209,10 @@
|
||||||
.border-collapse {
|
.border-collapse {
|
||||||
border-collapse: 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 {
|
.-translate-x-1\/2 {
|
||||||
--tw-translate-x: calc(calc(1/2 * 100%) * -1);
|
--tw-translate-x: calc(calc(1/2 * 100%) * -1);
|
||||||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
||||||
|
@ -1225,6 +1241,10 @@
|
||||||
--tw-translate-x: -100%;
|
--tw-translate-x: -100%;
|
||||||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
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 {
|
.-translate-y-1\/2 {
|
||||||
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
|
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
|
||||||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
||||||
|
@ -1237,6 +1257,10 @@
|
||||||
--tw-translate-y: calc(var(--spacing) * -32);
|
--tw-translate-y: calc(var(--spacing) * -32);
|
||||||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
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 {
|
.translate-y-1\/2 {
|
||||||
--tw-translate-y: calc(1/2 * 100%);
|
--tw-translate-y: calc(1/2 * 100%);
|
||||||
translate: var(--tw-translate-x) var(--tw-translate-y);
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
||||||
|
@ -1452,6 +1476,13 @@
|
||||||
.gap-x-4 {
|
.gap-x-4 {
|
||||||
column-gap: calc(var(--spacing) * 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 {
|
.space-x-1\.5 {
|
||||||
:where(& > :not(:last-child)) {
|
:where(& > :not(:last-child)) {
|
||||||
--tw-space-x-reverse: 0;
|
--tw-space-x-reverse: 0;
|
||||||
|
@ -1968,6 +1999,9 @@
|
||||||
.bg-yellow-100 {
|
.bg-yellow-100 {
|
||||||
background-color: var(--color-yellow-100);
|
background-color: var(--color-yellow-100);
|
||||||
}
|
}
|
||||||
|
.bg-yellow-300 {
|
||||||
|
background-color: var(--color-yellow-300);
|
||||||
|
}
|
||||||
.bg-yellow-300\/20 {
|
.bg-yellow-300\/20 {
|
||||||
background-color: color-mix(in srgb, oklch(90.5% 0.182 98.111) 20%, transparent);
|
background-color: color-mix(in srgb, oklch(90.5% 0.182 98.111) 20%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@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-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);
|
--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 {
|
.via-black\/5 {
|
||||||
--tw-gradient-via: color-mix(in srgb, #000 5%, transparent);
|
--tw-gradient-via: color-mix(in srgb, #000 5%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@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-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);
|
--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 {
|
.via-gray-900\/60 {
|
||||||
--tw-gradient-via: color-mix(in srgb, oklch(21% 0.034 264.665) 60%, transparent);
|
--tw-gradient-via: color-mix(in srgb, oklch(21% 0.034 264.665) 60%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@supports (color: color-mix(in lab, red, red)) {
|
||||||
|
@ -2257,6 +2301,10 @@
|
||||||
--tw-gradient-to: var(--color-amber-800);
|
--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));
|
--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 {
|
.to-black\/10 {
|
||||||
--tw-gradient-to: color-mix(in srgb, #000 10%, transparent);
|
--tw-gradient-to: color-mix(in srgb, #000 10%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@supports (color: color-mix(in lab, red, red)) {
|
||||||
|
@ -2292,6 +2340,10 @@
|
||||||
--tw-gradient-to: var(--color-emerald-600);
|
--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));
|
--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 {
|
.to-emerald-800\/30 {
|
||||||
--tw-gradient-to: color-mix(in srgb, oklch(43.2% 0.095 166.913) 30%, transparent);
|
--tw-gradient-to: color-mix(in srgb, oklch(43.2% 0.095 166.913) 30%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@supports (color: color-mix(in lab, red, red)) {
|
||||||
|
@ -2371,6 +2423,10 @@
|
||||||
--tw-gradient-to: var(--color-teal-300);
|
--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));
|
--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 {
|
.to-teal-500\/5 {
|
||||||
--tw-gradient-to: color-mix(in srgb, oklch(70.4% 0.14 182.503) 5%, transparent);
|
--tw-gradient-to: color-mix(in srgb, oklch(70.4% 0.14 182.503) 5%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@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);
|
--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);
|
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 {
|
.shadow-green-500\/50 {
|
||||||
--tw-shadow-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 50%, transparent);
|
--tw-shadow-color: color-mix(in srgb, oklch(72.3% 0.219 149.579) 50%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@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);
|
--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 {
|
.ring-green-600\/20 {
|
||||||
--tw-ring-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 20%, transparent);
|
--tw-ring-color: color-mix(in srgb, oklch(62.7% 0.194 149.214) 20%, transparent);
|
||||||
@supports (color: color-mix(in lab, red, red)) {
|
@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 {
|
.group-hover\:opacity-100 {
|
||||||
&:is(:where(.group):hover *) {
|
&:is(:where(.group):hover *) {
|
||||||
@media (hover: 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\:bg-white\/30 {
|
||||||
&:hover {
|
&:hover {
|
||||||
@media (hover: hover) {
|
@media (hover: hover) {
|
||||||
|
@ -4765,6 +4847,12 @@
|
||||||
line-height: var(--tw-leading, var(--text-2xl--line-height));
|
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 {
|
.lg\:text-4xl {
|
||||||
@media (width >= 64rem) {
|
@media (width >= 64rem) {
|
||||||
font-size: var(--text-4xl);
|
font-size: var(--text-4xl);
|
||||||
|
@ -4795,6 +4883,12 @@
|
||||||
line-height: var(--tw-leading, var(--text-sm--line-height));
|
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 {
|
.xl\:grid-cols-4 {
|
||||||
@media (width >= 80rem) {
|
@media (width >= 80rem) {
|
||||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||||
|
|
Loading…
Reference in New Issue