diff --git a/.gitignore b/.gitignore
index f76b2b3..0109cf6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,6 +40,8 @@ filing/
*.p12
*.jks
*.keystore
+frontend/android/app/libs/push/*.aar
+!frontend/android/app/libs/push/README.md
!frontend/android/app/src/internal/res/raw/
!frontend/android/app/src/internal/res/raw/sakura_frp_test_ca.pem
diff --git a/admin-web/src/App.vue b/admin-web/src/App.vue
index 0c0d402..44d76fc 100644
--- a/admin-web/src/App.vue
+++ b/admin-web/src/App.vue
@@ -2,7 +2,8 @@
import { ref, watch } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { DashboardOutlined, SettingOutlined, ControlOutlined, SmileOutlined,
- GithubOutlined, PictureOutlined, TeamOutlined, AppstoreOutlined } from '@ant-design/icons-vue'
+ GithubOutlined, PictureOutlined, TeamOutlined, AppstoreOutlined,
+ NotificationOutlined } from '@ant-design/icons-vue'
const router = useRouter()
const route = useRoute()
@@ -20,6 +21,7 @@ const nav = [
{ key: 'Avatars', icon: GithubOutlined, label: 'AI 形象' },
{ key: 'Stickers', icon: PictureOutlined, label: '表情包库' },
{ key: 'Users', icon: TeamOutlined, label: '用户管理' },
+ { key: 'PushCampaigns', icon: NotificationOutlined, label: '推送管理' },
]
@@ -37,7 +39,7 @@ const nav = [
{{ n.label }}
-
v20260718-1630
+ v20260726-0130
diff --git a/admin-web/src/api/index.ts b/admin-web/src/api/index.ts
index 9ab0076..0749e1f 100644
--- a/admin-web/src/api/index.ts
+++ b/admin-web/src/api/index.ts
@@ -44,9 +44,18 @@ export const api = {
sysCategories: () => http.get('/api/admin/categories').then(r => r.data),
createSysCategory: (d: { name: string; iconKey: string; type: string }) => http.post('/api/admin/categories', d).then(r => r.data),
updateSysCategory: (id: number, d: { name: string; iconKey: string; type: string }) => http.put(`/api/admin/categories/${id}`, d).then(r => r.data),
- deleteSysCategory: (id: number) => http.delete(`/api/admin/categories/${id}`),
- testLlm: () => http.post('/api/admin/llm/test').then(r => r.data),
-}
+ deleteSysCategory: (id: number) => http.delete(`/api/admin/categories/${id}`),
+ testLlm: () => http.post('/api/admin/llm/test').then(r => r.data),
+ pushCampaigns: (params: { page: number; limit: number }) => http.get('/api/admin/push/campaigns', { params }).then(r => r.data),
+ estimatePushCampaign: (data: any) => http.post('/api/admin/push/campaigns/estimate', data).then(r => r.data),
+ createPushCampaign: (data: any) => http.post('/api/admin/push/campaigns', data).then(r => r.data),
+ updatePushCampaign: (id: number, data: any) => http.put(`/api/admin/push/campaigns/${id}`, data).then(r => r.data),
+ sendPushCampaign: (id: number, scheduledAt?: string) => http.post(`/api/admin/push/campaigns/${id}/send`, { scheduledAt }).then(r => r.data),
+ cancelPushCampaign: (id: number) => http.post(`/api/admin/push/campaigns/${id}/cancel`).then(r => r.data),
+ pushDevices: (params: { search?: string; limit?: number }) => http.get('/api/admin/push/devices', { params }).then(r => r.data),
+ testPush: (data: any) => http.post('/api/admin/push/test', data).then(r => r.data),
+ pushHealth: () => http.get('/api/admin/push/health').then(r => r.data),
+}
export default http
diff --git a/admin-web/src/router/index.ts b/admin-web/src/router/index.ts
index d9d2407..035b62b 100644
--- a/admin-web/src/router/index.ts
+++ b/admin-web/src/router/index.ts
@@ -12,7 +12,8 @@ const router = createRouter({
{ path: '/avatars', name: 'Avatars', component: () => import('../views/Avatars.vue') },
{ path: '/stickers', name: 'Stickers', component: () => import('../views/Stickers.vue') },
{ path: '/users', name: 'Users', component: () => import('../views/Users.vue') },
+ { path: '/push', name: 'PushCampaigns', component: () => import('../views/PushCampaigns.vue') },
],
})
-export default router
\ No newline at end of file
+export default router
diff --git a/admin-web/src/views/PushCampaigns.vue b/admin-web/src/views/PushCampaigns.vue
new file mode 100644
index 0000000..6acc783
--- /dev/null
+++ b/admin-web/src/views/PushCampaigns.vue
@@ -0,0 +1,618 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ env.flavor === 'production' ? '正式' : '内测' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ record.title }}
+ {{ record.body }}
+ {{ categoryLabels[record.category] || record.category }}
+ {{ actionLabels[record.action] || record.action }}
+
+
+ {{ record.flavor === 'production' ? '正式环境' : '内测环境' }}
+
+ {{ record.provider ? providerLabels[record.provider] : '全部厂商' }}
+ · 用户 {{ record.targetUserId }}
+
+
+ 版本 {{ record.minVersionCode || 1 }} - {{ record.maxVersionCode || '不限' }}
+
+
+
+ {{ state(record).label }}
+
+
+
+ 成功 {{ record.deliveries.accepted }}
+ 处理中 {{ record.deliveries.queued + record.deliveries.sending }}
+ 失败 {{ record.deliveries.failed }}
+ 跳过 {{ record.deliveries.skipped }}
+
+
+
+ {{ record.scheduledAt ? '计划 ' + formatTime(record.scheduledAt) : formatTime(record.createdAt) }}
+ 完成 {{ formatTime(record.completedAt) }}
+
+
+
+ 编辑
+
+ 发送
+
+
+ 取消
+
+
+
+
+
+
+
+
+
+
+
+
+ #{{ record.id }} · ...{{ record.tokenSuffix }}
+ {{ record.packageName }}
+
+
+ {{ record.username }}
+ 用户 {{ record.userId }}
+
+
+ {{ providerLabels[record.provider] || record.provider }}
+
+
+ {{ record.appVersion }} ({{ record.versionCode }})
+ {{ record.flavor === 'production' ? '正式' : '内测' }}
+
+
+
+ {{ record.disabledReason }}
+
+ {{ formatTime(record.lastSeenAt) }}
+
+ 测试
+
+
+
+
+
+
+
+
+
+
+ {{ label }}
+
+
+
+
+ {{ label }}
+
+
+
+ 目标范围
+
+ {{ label }}
+
+
+
+
+
+
估算目标设备
+
当前条件下预计投递 {{ estimate }} 台设备
+
+
+
+
+
+
关闭
+
保存草稿
+
定时发送
+
+ 立即发送
+
+
+
+
+
+
+
+
+
+
+ {{ device.username }} · {{ providerLabels[device.provider] }} · #{{ device.id }} · {{ device.appVersion }}
+
+
+
+
+
+
+ {{ label }}
+ {{ label }}
+
+
+
+
+
+
+
diff --git a/backend/MiaoJiZhang.Api.Tests/ApiIntegrationTests.cs b/backend/MiaoJiZhang.Api.Tests/ApiIntegrationTests.cs
index 8117f6e..56393ae 100644
--- a/backend/MiaoJiZhang.Api.Tests/ApiIntegrationTests.cs
+++ b/backend/MiaoJiZhang.Api.Tests/ApiIntegrationTests.cs
@@ -41,9 +41,13 @@ public sealed class ApiFixture : IAsyncLifetime
Environment.SetEnvironmentVariable(
"Jwt__Secret",
"test-only-jwt-secret-at-least-thirty-two-characters");
- Environment.SetEnvironmentVariable(
- "Admin__Key",
- "test-only-admin-key-at-least-24-characters");
+ Environment.SetEnvironmentVariable(
+ "Admin__Key",
+ "test-only-admin-key-at-least-24-characters");
+ Environment.SetEnvironmentVariable(
+ "Push__TokenEncryptionKey",
+ Convert.ToBase64String(Enumerable.Range(1, 32).Select(value => (byte)value).ToArray()));
+ Environment.SetEnvironmentVariable("RateLimiting__AuthPermitLimit", "1000");
Factory = new WebApplicationFactory().WithWebHostBuilder(
builder =>
@@ -65,8 +69,10 @@ public sealed class ApiFixture : IAsyncLifetime
Factory?.Dispose();
await _database.DisposeAsync();
Environment.SetEnvironmentVariable("ConnectionStrings__Default", null);
- Environment.SetEnvironmentVariable("Jwt__Secret", null);
- Environment.SetEnvironmentVariable("Admin__Key", null);
+ Environment.SetEnvironmentVariable("Jwt__Secret", null);
+ Environment.SetEnvironmentVariable("Admin__Key", null);
+ Environment.SetEnvironmentVariable("Push__TokenEncryptionKey", null);
+ Environment.SetEnvironmentVariable("RateLimiting__AuthPermitLimit", null);
}
public async Task RegisterAsync(string username)
@@ -395,7 +401,7 @@ public sealed class ApiIntegrationTests(ApiFixture fixture)
[Fact]
public async Task RecognitionBatch_PreservesThreeConsecutiveTransfers_AndIsIdempotent()
{
- using var client = await fixture.RegisterAsync("recognition_batch_three_transfers");
+ using var client = await fixture.RegisterAsync("recognition_batch_transfers");
var ledgers = await client.GetFromJsonAsync("/api/ledgers");
var ledgerId = ledgers[0].GetProperty("id").GetInt64();
var categories = await client.GetFromJsonAsync(
diff --git a/backend/MiaoJiZhang.Api.Tests/PushIntegrationTests.cs b/backend/MiaoJiZhang.Api.Tests/PushIntegrationTests.cs
new file mode 100644
index 0000000..9e77a7e
--- /dev/null
+++ b/backend/MiaoJiZhang.Api.Tests/PushIntegrationTests.cs
@@ -0,0 +1,309 @@
+using System.Net;
+using System.Net.Http.Json;
+using System.Text.Json;
+using MiaoJiZhang.Domain.Entities;
+using MiaoJiZhang.Infrastructure.Persistence;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace MiaoJiZhang.Api.Tests;
+
+[Collection(ApiCollection.Name)]
+public sealed class PushIntegrationTests(ApiFixture fixture)
+{
+ private const string AdminKey = "test-only-admin-key-at-least-24-characters";
+
+ [Fact]
+ public async Task Preferences_DefaultOff_AndPersistAllCategories()
+ {
+ using var client = await fixture.RegisterAsync("push_preferences");
+
+ var defaults = await client.GetFromJsonAsync("/api/push/preferences");
+ Assert.False(defaults.GetProperty("system").GetBoolean());
+ Assert.False(defaults.GetProperty("budget").GetBoolean());
+ Assert.False(defaults.GetProperty("operations").GetBoolean());
+
+ var update = await client.PutAsJsonAsync(
+ "/api/push/preferences",
+ new { system = true, budget = false, operations = true });
+ update.EnsureSuccessStatusCode();
+
+ var persisted = await client.GetFromJsonAsync("/api/push/preferences");
+ Assert.True(persisted.GetProperty("system").GetBoolean());
+ Assert.False(persisted.GetProperty("budget").GetBoolean());
+ Assert.True(persisted.GetProperty("operations").GetBoolean());
+
+ await using var scope = fixture.Factory.Services.CreateAsyncScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var userId = await db.Users.Where(user => user.Username == "push_preferences")
+ .Select(user => user.Id).SingleAsync();
+ var preferences = await db.UserPushPreferences.Where(item => item.UserId == userId)
+ .ToDictionaryAsync(item => item.Category, item => item.IsEnabled);
+ Assert.Equal(3, preferences.Count);
+ Assert.True(preferences[PushCategories.System]);
+ Assert.False(preferences[PushCategories.Budget]);
+ Assert.True(preferences[PushCategories.Operations]);
+ }
+
+ [Fact]
+ public async Task DeviceRegistration_RebindsInstallation_AndRotatesAnonymousUnbindToken()
+ {
+ using var firstUser = await fixture.RegisterAsync("push_device_first");
+ using var secondUser = await fixture.RegisterAsync("push_device_second");
+ await EnableSystemAsync(firstUser);
+ await EnableSystemAsync(secondUser);
+ var installationId = Guid.NewGuid().ToString();
+
+ var firstRegistration = await RegisterDeviceAsync(
+ firstUser,
+ installationId,
+ "first-device-token");
+ var firstPayload = await firstRegistration.Content.ReadFromJsonAsync();
+ var deviceId = firstPayload.GetProperty("deviceId").GetInt64();
+ var oldUnbindToken = firstPayload.GetProperty("unbindToken").GetString()!;
+
+ var secondRegistration = await RegisterDeviceAsync(
+ secondUser,
+ installationId,
+ "second-device-token");
+ var secondPayload = await secondRegistration.Content.ReadFromJsonAsync();
+ Assert.Equal(deviceId, secondPayload.GetProperty("deviceId").GetInt64());
+ var newUnbindToken = secondPayload.GetProperty("unbindToken").GetString()!;
+ Assert.NotEqual(oldUnbindToken, newUnbindToken);
+
+ using var anonymous = fixture.Factory.CreateClient();
+ await DeleteWithUnbindToken(anonymous, installationId, oldUnbindToken);
+ Assert.True(await DeviceExists(deviceId));
+
+ var unauthenticated = await anonymous.DeleteAsync($"/api/push/devices/{installationId}");
+ Assert.Equal(HttpStatusCode.Unauthorized, unauthenticated.StatusCode);
+ Assert.True(await DeviceExists(deviceId));
+
+ var removed = await DeleteWithUnbindToken(anonymous, installationId, newUnbindToken);
+ Assert.Equal(HttpStatusCode.NoContent, removed.StatusCode);
+ Assert.False(await DeviceExists(deviceId));
+ }
+
+ [Fact]
+ public async Task BudgetPush_CreatesMessagesOnlyWhenCrossingEnabledThresholds()
+ {
+ using var client = await fixture.RegisterAsync("push_budget_crossings");
+ var preference = await client.PutAsJsonAsync(
+ "/api/push/preferences",
+ new { system = false, budget = true, operations = false });
+ preference.EnsureSuccessStatusCode();
+ var (userId, ledgerId, categoryId) = await FinanceContext(client);
+ await PutBudget(client, ledgerId, categoryId, 100);
+
+ await CreateExpense(client, ledgerId, categoryId, 79, "budget-crossing-79");
+ Assert.Equal((0, 0), await BudgetCounts(userId));
+
+ await CreateExpense(client, ledgerId, categoryId, 1, "budget-crossing-80");
+ Assert.Equal((1, 1), await BudgetCounts(userId));
+
+ await CreateExpense(client, ledgerId, categoryId, 20, "budget-crossing-100");
+ Assert.Equal((2, 2), await BudgetCounts(userId));
+
+ await using var scope = fixture.Factory.Services.CreateAsyncScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var messages = await db.PushMessages.Where(item => item.TargetUserId == userId && item.Source == "budget")
+ .OrderBy(item => item.Id).ToListAsync();
+ Assert.Equal("预算接近上限", messages[0].Title);
+ Assert.Equal("预算已达到上限", messages[1].Title);
+ Assert.All(messages, item => Assert.Equal(PushActions.Budget, item.Action));
+ }
+
+ [Fact]
+ public async Task BudgetPush_OneStepCrossingAggregatesMessage_AndDisabledPreferenceDoesNotBackfill()
+ {
+ using var enabled = await fixture.RegisterAsync("push_budget_one_step");
+ var enabledPreference = await enabled.PutAsJsonAsync(
+ "/api/push/preferences",
+ new { system = false, budget = true, operations = false });
+ enabledPreference.EnsureSuccessStatusCode();
+ var (enabledUserId, enabledLedgerId, enabledCategoryId) = await FinanceContext(enabled);
+ await PutBudget(enabled, enabledLedgerId, enabledCategoryId, 100);
+ await CreateExpense(enabled, enabledLedgerId, enabledCategoryId, 100, "budget-one-step");
+ Assert.Equal((2, 1), await BudgetCounts(enabledUserId));
+
+ using var disabled = await fixture.RegisterAsync("push_budget_disabled");
+ var (disabledUserId, disabledLedgerId, disabledCategoryId) = await FinanceContext(disabled);
+ await PutBudget(disabled, disabledLedgerId, disabledCategoryId, 100);
+ await CreateExpense(disabled, disabledLedgerId, disabledCategoryId, 100, "budget-disabled");
+ Assert.Equal((2, 0), await BudgetCounts(disabledUserId));
+
+ var disabledPreference = await disabled.PutAsJsonAsync(
+ "/api/push/preferences",
+ new { system = false, budget = true, operations = false });
+ disabledPreference.EnsureSuccessStatusCode();
+ await CreateExpense(disabled, disabledLedgerId, disabledCategoryId, 1, "budget-no-backfill");
+ Assert.Equal((2, 0), await BudgetCounts(disabledUserId));
+ }
+
+ [Fact]
+ public async Task AdminCampaign_ValidatesEstimatesSchedulesCancelsAndQueues()
+ {
+ using var user = await fixture.RegisterAsync("push_campaign_target");
+ await EnableSystemAsync(user);
+ var profile = await user.GetFromJsonAsync("/api/users/me");
+ var userId = profile.GetProperty("userId").GetInt64();
+ await RegisterDeviceAsync(user, Guid.NewGuid().ToString(), "campaign-device-token");
+
+ using var admin = fixture.Factory.CreateClient();
+ admin.DefaultRequestHeaders.Add("X-Admin-Key", AdminKey);
+ var request = new
+ {
+ title = "系统维护通知",
+ body = "今晚 23:00 将进行短时维护",
+ category = "system",
+ action = "home",
+ flavor = "production",
+ provider = "xiaomi",
+ targetUserId = userId,
+ minVersionCode = 1,
+ maxVersionCode = 99999999,
+ ttlSeconds = 3600,
+ };
+
+ var estimate = await admin.PostAsJsonAsync("/api/admin/push/campaigns/estimate", request);
+ estimate.EnsureSuccessStatusCode();
+ Assert.Equal(
+ 1,
+ (await estimate.Content.ReadFromJsonAsync()).GetProperty("devices").GetInt32());
+
+ var invalid = await admin.PostAsJsonAsync(
+ "/api/admin/push/campaigns",
+ new { request.title, request.body, category = "unknown", request.action, request.flavor });
+ Assert.Equal(HttpStatusCode.BadRequest, invalid.StatusCode);
+
+ var created = await admin.PostAsJsonAsync("/api/admin/push/campaigns", request);
+ created.EnsureSuccessStatusCode();
+ var campaign = await created.Content.ReadFromJsonAsync();
+ var campaignId = campaign.GetProperty("id").GetInt64();
+ Assert.Equal(PushMessageStates.Draft, campaign.GetProperty("state").GetString());
+
+ var scheduled = await admin.PostAsJsonAsync(
+ $"/api/admin/push/campaigns/{campaignId}/send",
+ new { scheduledAt = DateTime.UtcNow.AddHours(1) });
+ scheduled.EnsureSuccessStatusCode();
+ Assert.Equal(
+ PushMessageStates.Scheduled,
+ (await scheduled.Content.ReadFromJsonAsync()).GetProperty("state").GetString());
+
+ var cancelled = await admin.PostAsync($"/api/admin/push/campaigns/{campaignId}/cancel", null);
+ cancelled.EnsureSuccessStatusCode();
+ var sendCancelled = await admin.PostAsJsonAsync(
+ $"/api/admin/push/campaigns/{campaignId}/send",
+ new { scheduledAt = (DateTime?)null });
+ Assert.Equal(HttpStatusCode.Conflict, sendCancelled.StatusCode);
+
+ var immediateDraft = await admin.PostAsJsonAsync(
+ "/api/admin/push/campaigns",
+ new { request.title, body = "立即发送", request.category, request.action, request.flavor, request.targetUserId });
+ immediateDraft.EnsureSuccessStatusCode();
+ var immediateId = (await immediateDraft.Content.ReadFromJsonAsync()).GetProperty("id").GetInt64();
+ var queued = await admin.PostAsJsonAsync(
+ $"/api/admin/push/campaigns/{immediateId}/send",
+ new { scheduledAt = (DateTime?)null });
+ queued.EnsureSuccessStatusCode();
+ Assert.Equal(
+ PushMessageStates.Queued,
+ (await queued.Content.ReadFromJsonAsync()).GetProperty("state").GetString());
+ }
+
+ private static async Task EnableSystemAsync(HttpClient client)
+ {
+ var response = await client.PutAsJsonAsync(
+ "/api/push/preferences",
+ new { system = true, budget = false, operations = false });
+ response.EnsureSuccessStatusCode();
+ }
+
+ private static async Task RegisterDeviceAsync(
+ HttpClient client,
+ string installationId,
+ string token)
+ {
+ var response = await client.PutAsJsonAsync(
+ $"/api/push/devices/{installationId}",
+ new
+ {
+ provider = "xiaomi",
+ token,
+ packageName = "com.nx.miaoji",
+ flavor = "production",
+ appVersion = "20260725-test",
+ versionCode = 20260725,
+ notificationsAllowed = true,
+ });
+ response.EnsureSuccessStatusCode();
+ return response;
+ }
+
+ private static async Task DeleteWithUnbindToken(
+ HttpClient client,
+ string installationId,
+ string token)
+ {
+ using var request = new HttpRequestMessage(HttpMethod.Delete, $"/api/push/devices/{installationId}");
+ request.Headers.Add("X-Push-Unbind-Token", token);
+ return await client.SendAsync(request);
+ }
+
+ private async Task DeviceExists(long id)
+ {
+ await using var scope = fixture.Factory.Services.CreateAsyncScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ return await db.PushDevices.AnyAsync(item => item.Id == id);
+ }
+
+ private static async Task<(long UserId, long LedgerId, long CategoryId)> FinanceContext(HttpClient client)
+ {
+ var profile = await client.GetFromJsonAsync("/api/users/me");
+ var ledgers = await client.GetFromJsonAsync("/api/ledgers");
+ var categories = await client.GetFromJsonAsync("/api/categories?type=expense");
+ return (
+ profile.GetProperty("userId").GetInt64(),
+ ledgers[0].GetProperty("id").GetInt64(),
+ categories[0].GetProperty("id").GetInt64());
+ }
+
+ private static async Task PutBudget(HttpClient client, long ledgerId, long categoryId, decimal amount)
+ {
+ var response = await client.PutAsJsonAsync(
+ $"/api/budgets?year=2026&month=7&ledgerId={ledgerId}",
+ new { categoryId, amount, recurring = false });
+ response.EnsureSuccessStatusCode();
+ }
+
+ private static async Task CreateExpense(
+ HttpClient client,
+ long ledgerId,
+ long categoryId,
+ decimal amount,
+ string clientRequestId)
+ {
+ var response = await client.PostAsJsonAsync(
+ "/api/transactions",
+ new
+ {
+ ledgerId,
+ categoryId,
+ type = "expense",
+ amount,
+ occurredAt = "2026-07-25T12:00:00+08:00",
+ source = "manual",
+ clientRequestId,
+ });
+ response.EnsureSuccessStatusCode();
+ }
+
+ private async Task<(int Receipts, int Messages)> BudgetCounts(long userId)
+ {
+ await using var scope = fixture.Factory.Services.CreateAsyncScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ return (
+ await db.BudgetNotificationReceipts.CountAsync(item => item.UserId == userId),
+ await db.PushMessages.CountAsync(item => item.TargetUserId == userId && item.Source == "budget"));
+ }
+}
diff --git a/backend/MiaoJiZhang.Api.Tests/PushProviderTests.cs b/backend/MiaoJiZhang.Api.Tests/PushProviderTests.cs
new file mode 100644
index 0000000..75f6349
--- /dev/null
+++ b/backend/MiaoJiZhang.Api.Tests/PushProviderTests.cs
@@ -0,0 +1,154 @@
+using System.Net;
+using System.Net.Http.Headers;
+using MiaoJiZhang.Api.Services;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.Logging.Abstractions;
+
+namespace MiaoJiZhang.Api.Tests;
+
+public sealed class PushProviderTests
+{
+ private static readonly PushEnvelope Message = new(
+ "message-1",
+ "测试标题",
+ "测试正文",
+ "system",
+ "home",
+ null,
+ 3600);
+
+ [Fact]
+ public async Task Xiaomi_Http200BusinessFailure_IsNotAccepted()
+ {
+ var factory = new StubHttpClientFactory(_ => Json(
+ """{"result":"error","code":70000003,"description":"invalid registration_id"}"""));
+ var provider = Provider("xiaomi", factory, new Dictionary
+ {
+ ["Push:Providers:xiaomi:production:Enabled"] = "true",
+ ["Push:Providers:xiaomi:production:AppSecret"] = "server-secret",
+ });
+
+ var result = await provider.SendAsync(
+ "production",
+ "com.nx.miaoji",
+ "invalid-token",
+ Message,
+ CancellationToken.None);
+
+ Assert.False(result.Accepted);
+ Assert.True(result.InvalidToken);
+ Assert.Equal("provider_error", result.ErrorCode);
+ }
+
+ [Fact]
+ public async Task Xiaomi_Http200Success_IsAccepted()
+ {
+ var factory = new StubHttpClientFactory(_ => Json(
+ """{"result":"ok","code":0,"data":{"id":"xiaomi-message"}}"""));
+ var provider = Provider("xiaomi", factory, new Dictionary
+ {
+ ["Push:Providers:xiaomi:production:Enabled"] = "true",
+ ["Push:Providers:xiaomi:production:AppSecret"] = "server-secret",
+ });
+
+ var result = await provider.SendAsync(
+ "production",
+ "com.nx.miaoji",
+ "valid-token",
+ Message,
+ CancellationToken.None);
+
+ Assert.True(result.Accepted);
+ Assert.False(result.Retryable);
+ Assert.False(result.InvalidToken);
+ }
+
+ [Fact]
+ public async Task Huawei_AccessTokens_AreCachedPerFlavor()
+ {
+ var authCalls = new Dictionary();
+ var sendTokens = new Dictionary>();
+ var factory = new StubHttpClientFactory(request =>
+ {
+ var path = request.RequestUri!.AbsolutePath;
+ var flavor = path.Contains("production", StringComparison.Ordinal)
+ ? "production"
+ : "internal";
+ if (path.EndsWith("/auth", StringComparison.Ordinal))
+ {
+ authCalls[flavor] = authCalls.GetValueOrDefault(flavor) + 1;
+ return Json($$"""{"access_token":"{{flavor}}-token","expires_in":3600}""");
+ }
+
+ sendTokens.TryAdd(flavor, []);
+ sendTokens[flavor].Add(request.Headers.Authorization?.Parameter ?? "");
+ return Json("""{"code":"80000000","requestId":"huawei-message"}""");
+ });
+ var provider = Provider("huawei", factory, new Dictionary
+ {
+ ["Push:Providers:huawei:production:Enabled"] = "true",
+ ["Push:Providers:huawei:production:AppId"] = "production-app",
+ ["Push:Providers:huawei:production:AppSecret"] = "production-secret",
+ ["Push:Providers:huawei:production:AuthUrl"] = "https://push.test/production/auth",
+ ["Push:Providers:huawei:production:SendUrl"] = "https://push.test/production/send",
+ ["Push:Providers:huawei:internal:Enabled"] = "true",
+ ["Push:Providers:huawei:internal:AppId"] = "internal-app",
+ ["Push:Providers:huawei:internal:AppSecret"] = "internal-secret",
+ ["Push:Providers:huawei:internal:AuthUrl"] = "https://push.test/internal/auth",
+ ["Push:Providers:huawei:internal:SendUrl"] = "https://push.test/internal/send",
+ });
+
+ Assert.True((await provider.SendAsync(
+ "production", "com.nx.miaoji", "token-1", Message, CancellationToken.None)).Accepted);
+ Assert.True((await provider.SendAsync(
+ "internal", "com.nx.miaoji.internal", "token-2", Message, CancellationToken.None)).Accepted);
+ Assert.True((await provider.SendAsync(
+ "production", "com.nx.miaoji", "token-3", Message, CancellationToken.None)).Accepted);
+
+ Assert.Equal(1, authCalls["production"]);
+ Assert.Equal(1, authCalls["internal"]);
+ Assert.Equal(["production-token", "production-token"], sendTokens["production"]);
+ Assert.Equal(["internal-token"], sendTokens["internal"]);
+ }
+
+ private static OfficialPushProvider Provider(
+ string name,
+ IHttpClientFactory factory,
+ Dictionary values)
+ {
+ var configuration = new ConfigurationBuilder()
+ .AddInMemoryCollection(values)
+ .Build();
+ return new OfficialPushProvider(
+ name,
+ configuration,
+ factory,
+ NullLogger.Instance);
+ }
+
+ private static HttpResponseMessage Json(string body) => new(HttpStatusCode.OK)
+ {
+ Content = new StringContent(body),
+ };
+
+ private sealed class StubHttpClientFactory : IHttpClientFactory
+ {
+ private readonly HttpClient client;
+
+ public StubHttpClientFactory(Func response)
+ {
+ client = new HttpClient(new StubHandler(response));
+ }
+
+ public HttpClient CreateClient(string name) => client;
+ }
+
+ private sealed class StubHandler(Func response)
+ : HttpMessageHandler
+ {
+ protected override Task SendAsync(
+ HttpRequestMessage request,
+ CancellationToken cancellationToken) =>
+ Task.FromResult(response(request));
+ }
+}
diff --git a/backend/MiaoJiZhang.Api/Contracts/PushContracts.cs b/backend/MiaoJiZhang.Api/Contracts/PushContracts.cs
new file mode 100644
index 0000000..516a9db
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/Contracts/PushContracts.cs
@@ -0,0 +1,43 @@
+namespace MiaoJiZhang.Api.Contracts;
+
+public record PushPreferencesResponse(bool System, bool Budget, bool Operations);
+public record UpdatePushPreferencesRequest(bool System, bool Budget, bool Operations);
+
+public record RegisterPushDeviceRequest(
+ string Provider,
+ string Token,
+ string PackageName,
+ string Flavor,
+ string AppVersion,
+ int VersionCode,
+ bool NotificationsAllowed);
+
+public record PushDeviceRegistrationResponse(
+ long DeviceId,
+ string InstallationId,
+ string Provider,
+ bool Active,
+ string UnbindToken);
+
+public record CreatePushCampaignRequest(
+ string Title,
+ string Body,
+ string Category,
+ string Action = "none",
+ string? EntityId = null,
+ string Flavor = "production",
+ string? Provider = null,
+ int? MinVersionCode = null,
+ int? MaxVersionCode = null,
+ long? TargetUserId = null,
+ int? TtlSeconds = null);
+
+public record SchedulePushCampaignRequest(DateTime? ScheduledAt = null);
+
+public record TestPushRequest(
+ long DeviceId,
+ string Title,
+ string Body,
+ string Category = "system",
+ string Action = "none",
+ string? EntityId = null);
diff --git a/backend/MiaoJiZhang.Api/Controllers/AdminPushController.cs b/backend/MiaoJiZhang.Api/Controllers/AdminPushController.cs
new file mode 100644
index 0000000..3a3709b
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/Controllers/AdminPushController.cs
@@ -0,0 +1,326 @@
+using MiaoJiZhang.Api.Contracts;
+using MiaoJiZhang.Api.Services;
+using MiaoJiZhang.Domain.Entities;
+using MiaoJiZhang.Infrastructure.Persistence;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+
+namespace MiaoJiZhang.Api.Controllers;
+
+[ApiController]
+[AdminAuth]
+[Route("api/admin/push")]
+public class AdminPushController(
+ AppDbContext db,
+ PushProviderRegistry providers,
+ IConfiguration configuration) : ControllerBase
+{
+ [HttpGet("campaigns")]
+ public async Task Campaigns(
+ [FromQuery] int page = 1,
+ [FromQuery] int limit = 20,
+ CancellationToken ct = default)
+ {
+ page = Math.Max(1, page);
+ limit = Math.Clamp(limit, 1, 100);
+ var query = db.PushMessages.AsNoTracking().Where(message => message.Source == "admin");
+ var total = await query.CountAsync(ct);
+ var messages = await query.OrderByDescending(message => message.CreatedAt)
+ .Skip((page - 1) * limit).Take(limit).ToListAsync(ct);
+ var ids = messages.Select(message => message.Id).ToList();
+ var counts = await db.PushDeliveries.Where(delivery => ids.Contains(delivery.PushMessageId))
+ .GroupBy(delivery => new { delivery.PushMessageId, delivery.State })
+ .Select(group => new { group.Key.PushMessageId, group.Key.State, Count = group.Count() })
+ .ToListAsync(ct);
+ return Ok(new
+ {
+ total,
+ page,
+ list = messages.Select(message => ToDto(message, counts
+ .Where(item => item.PushMessageId == message.Id)
+ .ToDictionary(item => item.State, item => item.Count))),
+ });
+ }
+
+ [HttpPost("campaigns/estimate")]
+ public async Task Estimate(CreatePushCampaignRequest request, CancellationToken ct)
+ {
+ var error = Validate(request);
+ if (error is not null) return BadRequest(error);
+ var count = await EligibleDevices(request).CountAsync(ct);
+ return Ok(new { devices = count });
+ }
+
+ [HttpPost("campaigns")]
+ public async Task Create(CreatePushCampaignRequest request, CancellationToken ct)
+ {
+ var error = Validate(request);
+ if (error is not null) return BadRequest(error);
+ if (request.TargetUserId.HasValue &&
+ !await db.Users.AnyAsync(user => user.Id == request.TargetUserId.Value, ct))
+ return BadRequest(new ApiError("PUSH_TARGET_INVALID", "目标用户不存在"));
+
+ var now = DateTime.UtcNow;
+ var message = Map(request, new PushMessage
+ {
+ PublicId = Guid.NewGuid().ToString(),
+ Source = "admin",
+ State = PushMessageStates.Draft,
+ CreatedAt = now,
+ }, now);
+ db.PushMessages.Add(message);
+ await db.SaveChangesAsync(ct);
+ return Ok(ToDto(message, new Dictionary()));
+ }
+
+ [HttpPut("campaigns/{id:long}")]
+ public async Task Update(long id, CreatePushCampaignRequest request, CancellationToken ct)
+ {
+ var error = Validate(request);
+ if (error is not null) return BadRequest(error);
+ if (request.TargetUserId.HasValue &&
+ !await db.Users.AnyAsync(user => user.Id == request.TargetUserId.Value, ct))
+ return BadRequest(new ApiError("PUSH_TARGET_INVALID", "目标用户不存在"));
+ var message = await db.PushMessages.FirstOrDefaultAsync(item => item.Id == id && item.Source == "admin", ct);
+ if (message is null) return NotFound();
+ if (message.State is not (PushMessageStates.Draft or PushMessageStates.Scheduled))
+ return Conflict(new ApiError("PUSH_CAMPAIGN_LOCKED", "推送已开始发送,不能再编辑"));
+ Map(request, message, DateTime.UtcNow);
+ await db.SaveChangesAsync(ct);
+ return Ok(ToDto(message, new Dictionary()));
+ }
+
+ [HttpPost("campaigns/{id:long}/send")]
+ public async Task Send(
+ long id,
+ SchedulePushCampaignRequest request,
+ CancellationToken ct)
+ {
+ var message = await db.PushMessages.FirstOrDefaultAsync(item => item.Id == id && item.Source == "admin", ct);
+ if (message is null) return NotFound();
+ if (message.State is not (PushMessageStates.Draft or PushMessageStates.Scheduled))
+ return Conflict(new ApiError("PUSH_CAMPAIGN_LOCKED", "推送已开始发送或已经结束"));
+
+ var now = DateTime.UtcNow;
+ var scheduledAt = request.ScheduledAt?.ToUniversalTime();
+ message.ScheduledAt = scheduledAt;
+ message.State = scheduledAt.HasValue && scheduledAt.Value > now.AddSeconds(5)
+ ? PushMessageStates.Scheduled
+ : PushMessageStates.Queued;
+ message.UpdatedAt = now;
+ await db.SaveChangesAsync(ct);
+ return Ok(ToDto(message, new Dictionary()));
+ }
+
+ [HttpPost("campaigns/{id:long}/cancel")]
+ public async Task Cancel(long id, CancellationToken ct)
+ {
+ var now = DateTime.UtcNow;
+ var cancelled = await db.PushMessages
+ .Where(message => message.Id == id && message.Source == "admin" &&
+ (message.State == PushMessageStates.Draft ||
+ message.State == PushMessageStates.Scheduled ||
+ message.State == PushMessageStates.Queued) &&
+ message.StartedAt == null)
+ .ExecuteUpdateAsync(setters => setters
+ .SetProperty(message => message.State, PushMessageStates.Cancelled)
+ .SetProperty(message => message.CancelledAt, now)
+ .SetProperty(message => message.UpdatedAt, now), ct);
+ if (cancelled != 1)
+ {
+ var exists = await db.PushMessages.AnyAsync(
+ message => message.Id == id && message.Source == "admin", ct);
+ return exists
+ ? Conflict(new ApiError("PUSH_CAMPAIGN_LOCKED", "推送已经开始,不能取消"))
+ : NotFound();
+ }
+ var message = await db.PushMessages.AsNoTracking().FirstAsync(item => item.Id == id, ct);
+ return Ok(ToDto(message, new Dictionary()));
+ }
+
+ [HttpGet("devices")]
+ public async Task Devices(
+ [FromQuery] string? search = null,
+ [FromQuery] int limit = 50,
+ CancellationToken ct = default)
+ {
+ limit = Math.Clamp(limit, 1, 100);
+ var query = db.PushDevices.AsNoTracking().Include(device => device.User).AsQueryable();
+ if (!string.IsNullOrWhiteSpace(search))
+ {
+ var term = search.Trim();
+ query = query.Where(device => device.User.Username.Contains(term) ||
+ device.InstallationId.Contains(term));
+ }
+ var devices = await query.OrderByDescending(device => device.LastSeenAt).Take(limit).ToListAsync(ct);
+ return Ok(devices.Select(device => new
+ {
+ device.Id,
+ device.UserId,
+ device.User.Username,
+ device.Provider,
+ device.PackageName,
+ device.Flavor,
+ device.AppVersion,
+ device.VersionCode,
+ device.NotificationsAllowed,
+ device.IsActive,
+ device.DisabledReason,
+ tokenSuffix = device.TokenHash[^Math.Min(8, device.TokenHash.Length)..],
+ device.LastSeenAt,
+ }));
+ }
+
+ [HttpPost("test")]
+ public async Task Test(TestPushRequest request, CancellationToken ct)
+ {
+ if (request.Title.Trim().Length is < 1 or > 80 || request.Body.Trim().Length is < 1 or > 240 ||
+ !PushCategories.All.Contains(request.Category) || !PushActions.All.Contains(request.Action))
+ return BadRequest(new ApiError("PUSH_MESSAGE_INVALID", "测试推送内容或分类无效"));
+ var device = await db.PushDevices.FirstOrDefaultAsync(item => item.Id == request.DeviceId, ct);
+ if (device is null || !device.IsActive || !device.NotificationsAllowed)
+ return BadRequest(new ApiError("PUSH_DEVICE_INACTIVE", "测试设备不存在或当前不可投递"));
+ var now = DateTime.UtcNow;
+ var message = new PushMessage
+ {
+ PublicId = Guid.NewGuid().ToString(),
+ Source = "admin",
+ State = PushMessageStates.Queued,
+ Category = request.Category.ToLowerInvariant(),
+ Title = request.Title.Trim(),
+ Body = request.Body.Trim(),
+ Action = request.Action.ToLowerInvariant(),
+ EntityId = request.EntityId?.Trim(),
+ TargetUserId = device.UserId,
+ Flavor = device.Flavor,
+ ProviderFilter = device.Provider,
+ TtlSeconds = DefaultTtl(request.Category),
+ IsTest = true,
+ TestDeviceId = device.Id,
+ CreatedAt = now,
+ UpdatedAt = now,
+ };
+ db.PushMessages.Add(message);
+ await db.SaveChangesAsync(ct);
+ return Ok(new { message.Id, message.PublicId, message.State });
+ }
+
+ [HttpGet("health")]
+ public IActionResult Health()
+ {
+ var flavors = new[] { "production", "internal" };
+ return Ok(new
+ {
+ enabled = configuration.GetValue("Push:Enabled"),
+ tokenEncryptionConfigured = !string.IsNullOrWhiteSpace(configuration["Push:TokenEncryptionKey"]),
+ providers = providers.All.Select(provider => new
+ {
+ provider = provider.Provider,
+ environments = flavors.Select(flavor => new
+ {
+ flavor,
+ enabled = provider.IsEnabled(flavor),
+ errors = provider.ConfigurationErrors(flavor),
+ }),
+ }),
+ });
+ }
+
+ private IQueryable EligibleDevices(CreatePushCampaignRequest request)
+ {
+ var category = request.Category.Trim().ToLowerInvariant();
+ var query = db.PushDevices.Where(device =>
+ device.IsActive && device.NotificationsAllowed &&
+ !device.User.IsBanned && device.User.AccountClosureScheduledAt == null &&
+ db.UserPushPreferences.Any(preference => preference.UserId == device.UserId &&
+ preference.Category == category && preference.IsEnabled) &&
+ device.Flavor == request.Flavor.ToLowerInvariant());
+ if (request.TargetUserId.HasValue)
+ query = query.Where(device => device.UserId == request.TargetUserId.Value);
+ if (!string.IsNullOrWhiteSpace(request.Provider))
+ query = query.Where(device => device.Provider == request.Provider.ToLowerInvariant());
+ if (request.MinVersionCode.HasValue)
+ query = query.Where(device => device.VersionCode >= request.MinVersionCode.Value);
+ if (request.MaxVersionCode.HasValue)
+ query = query.Where(device => device.VersionCode <= request.MaxVersionCode.Value);
+ return query;
+ }
+
+ private static PushMessage Map(CreatePushCampaignRequest request, PushMessage message, DateTime now)
+ {
+ message.Title = request.Title.Trim();
+ message.Body = request.Body.Trim();
+ message.Category = request.Category.Trim().ToLowerInvariant();
+ message.Action = request.Action.Trim().ToLowerInvariant();
+ message.EntityId = string.IsNullOrWhiteSpace(request.EntityId) ? null : request.EntityId.Trim();
+ message.Flavor = request.Flavor.Trim().ToLowerInvariant();
+ message.ProviderFilter = string.IsNullOrWhiteSpace(request.Provider)
+ ? null
+ : request.Provider.Trim().ToLowerInvariant();
+ message.MinVersionCode = request.MinVersionCode;
+ message.MaxVersionCode = request.MaxVersionCode;
+ message.TargetUserId = request.TargetUserId;
+ message.TtlSeconds = request.TtlSeconds ?? DefaultTtl(message.Category);
+ message.UpdatedAt = now;
+ return message;
+ }
+
+ private static ApiError? Validate(CreatePushCampaignRequest request)
+ {
+ if (request.Title.Trim().Length is < 1 or > 80)
+ return new ApiError("PUSH_TITLE_INVALID", "标题长度必须在 1 到 80 个字符之间");
+ if (request.Body.Trim().Length is < 1 or > 240)
+ return new ApiError("PUSH_BODY_INVALID", "正文长度必须在 1 到 240 个字符之间");
+ if (!PushCategories.All.Contains(request.Category))
+ return new ApiError("PUSH_CATEGORY_INVALID", "推送分类无效");
+ if (!PushActions.All.Contains(request.Action))
+ return new ApiError("PUSH_ACTION_INVALID", "点击动作无效");
+ if (request.Flavor is not ("production" or "internal"))
+ return new ApiError("PUSH_FLAVOR_INVALID", "推送环境无效");
+ if (!string.IsNullOrWhiteSpace(request.Provider) && !PushProviders.All.Contains(request.Provider))
+ return new ApiError("PUSH_PROVIDER_INVALID", "推送厂商无效");
+ if (request.MinVersionCode is < 1 || request.MaxVersionCode is < 1 ||
+ request.MinVersionCode > request.MaxVersionCode)
+ return new ApiError("PUSH_VERSION_RANGE_INVALID", "版本号范围无效");
+ if (request.TtlSeconds.HasValue && request.TtlSeconds is < 60 or > 604800)
+ return new ApiError("PUSH_TTL_INVALID", "消息有效期必须在 60 秒到 7 天之间");
+ return null;
+ }
+
+ private static int DefaultTtl(string category) => category.ToLowerInvariant() switch
+ {
+ PushCategories.System => 72 * 3600,
+ _ => 24 * 3600,
+ };
+
+ private static object ToDto(PushMessage message, IReadOnlyDictionary counts) => new
+ {
+ message.Id,
+ message.PublicId,
+ message.State,
+ message.Title,
+ message.Body,
+ message.Category,
+ message.Action,
+ message.EntityId,
+ message.Flavor,
+ provider = message.ProviderFilter,
+ message.MinVersionCode,
+ message.MaxVersionCode,
+ message.TargetUserId,
+ message.TtlSeconds,
+ message.ScheduledAt,
+ message.CreatedAt,
+ message.StartedAt,
+ message.CompletedAt,
+ message.CancelledAt,
+ deliveries = new
+ {
+ queued = counts.GetValueOrDefault(PushDeliveryStates.Queued),
+ sending = counts.GetValueOrDefault(PushDeliveryStates.Sending),
+ accepted = counts.GetValueOrDefault(PushDeliveryStates.Accepted),
+ failed = counts.GetValueOrDefault(PushDeliveryStates.Failed),
+ skipped = counts.GetValueOrDefault(PushDeliveryStates.Skipped),
+ },
+ };
+}
diff --git a/backend/MiaoJiZhang.Api/Controllers/PushController.cs b/backend/MiaoJiZhang.Api/Controllers/PushController.cs
new file mode 100644
index 0000000..6527c5b
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/Controllers/PushController.cs
@@ -0,0 +1,184 @@
+using System.Security.Claims;
+using MiaoJiZhang.Api.Contracts;
+using MiaoJiZhang.Api.Services;
+using MiaoJiZhang.Domain.Entities;
+using MiaoJiZhang.Infrastructure.Persistence;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+
+namespace MiaoJiZhang.Api.Controllers;
+
+[ApiController]
+[Authorize]
+[Route("api/push")]
+public class PushController(AppDbContext db, PushTokenProtector tokenProtector) : ControllerBase
+{
+ private long Uid => long.Parse(
+ User.FindFirstValue(ClaimTypes.NameIdentifier) ?? User.FindFirstValue("sub")!);
+
+ [HttpGet("preferences")]
+ public async Task> Preferences(CancellationToken ct)
+ {
+ var enabled = await db.UserPushPreferences
+ .Where(item => item.UserId == Uid && item.IsEnabled)
+ .Select(item => item.Category)
+ .ToListAsync(ct);
+ return Ok(new PushPreferencesResponse(
+ enabled.Contains(PushCategories.System),
+ enabled.Contains(PushCategories.Budget),
+ enabled.Contains(PushCategories.Operations)));
+ }
+
+ [HttpPut("preferences")]
+ public async Task> UpdatePreferences(
+ UpdatePushPreferencesRequest request,
+ CancellationToken ct)
+ {
+ var desired = new Dictionary
+ {
+ [PushCategories.System] = request.System,
+ [PushCategories.Budget] = request.Budget,
+ [PushCategories.Operations] = request.Operations,
+ };
+ var existing = await db.UserPushPreferences
+ .Where(item => item.UserId == Uid)
+ .ToDictionaryAsync(item => item.Category, ct);
+ var now = DateTime.UtcNow;
+ foreach (var (category, enabled) in desired)
+ {
+ if (!existing.TryGetValue(category, out var preference))
+ {
+ preference = new UserPushPreference
+ {
+ UserId = Uid,
+ Category = category,
+ };
+ db.UserPushPreferences.Add(preference);
+ }
+ preference.IsEnabled = enabled;
+ preference.UpdatedAt = now;
+ }
+ if (!desired.Values.Any(value => value))
+ {
+ var devices = await db.PushDevices
+ .Where(device => device.UserId == Uid && device.IsActive)
+ .ToListAsync(ct);
+ foreach (var device in devices)
+ {
+ device.IsActive = false;
+ device.DisabledReason = "all_categories_disabled";
+ device.UpdatedAt = now;
+ }
+ }
+ await db.SaveChangesAsync(ct);
+ return Ok(new PushPreferencesResponse(request.System, request.Budget, request.Operations));
+ }
+
+ [HttpPut("devices/{installationId}")]
+ public async Task> RegisterDevice(
+ string installationId,
+ RegisterPushDeviceRequest request,
+ CancellationToken ct)
+ {
+ var validation = ValidateDevice(installationId, request);
+ if (validation is not null) return validation;
+ if (!tokenProtector.IsConfigured)
+ return StatusCode(StatusCodes.Status503ServiceUnavailable,
+ new ApiError("PUSH_NOT_CONFIGURED", "推送服务尚未完成安全配置"));
+
+ var provider = request.Provider.Trim().ToLowerInvariant();
+ var token = request.Token.Trim();
+ var tokenHash = PushTokenProtector.Hash(token);
+ var duplicate = await db.PushDevices.FirstOrDefaultAsync(device =>
+ device.Provider == provider &&
+ device.PackageName == request.PackageName &&
+ device.TokenHash == tokenHash &&
+ device.InstallationId != installationId, ct);
+ if (duplicate is not null) db.PushDevices.Remove(duplicate);
+
+ var device = await db.PushDevices.FirstOrDefaultAsync(item =>
+ item.PackageName == request.PackageName &&
+ item.InstallationId == installationId, ct);
+ var now = DateTime.UtcNow;
+ if (device is null)
+ {
+ device = new PushDevice
+ {
+ UserId = Uid,
+ InstallationId = installationId,
+ PackageName = request.PackageName,
+ CreatedAt = now,
+ };
+ db.PushDevices.Add(device);
+ }
+
+ var unbindToken = PushTokenProtector.CreateUnbindToken();
+ device.UserId = Uid;
+ device.Provider = provider;
+ device.TokenCiphertext = tokenProtector.Protect(token);
+ device.TokenHash = tokenHash;
+ device.UnbindTokenHash = PushTokenProtector.Hash(unbindToken);
+ device.Flavor = request.Flavor.Trim().ToLowerInvariant();
+ device.AppVersion = request.AppVersion.Trim();
+ device.VersionCode = request.VersionCode;
+ device.NotificationsAllowed = request.NotificationsAllowed;
+ device.IsActive = request.NotificationsAllowed;
+ device.DisabledReason = request.NotificationsAllowed ? null : "notification_permission_denied";
+ device.UpdatedAt = now;
+ device.LastSeenAt = now;
+ await db.SaveChangesAsync(ct);
+
+ return Ok(new PushDeviceRegistrationResponse(
+ device.Id,
+ device.InstallationId,
+ device.Provider,
+ device.IsActive,
+ unbindToken));
+ }
+
+ [HttpDelete("devices/{installationId}")]
+ [AllowAnonymous]
+ public async Task UnregisterDevice(
+ string installationId,
+ [FromHeader(Name = "X-Push-Unbind-Token")] string? unbindToken,
+ CancellationToken ct)
+ {
+ var userIdValue = User.FindFirstValue(ClaimTypes.NameIdentifier) ?? User.FindFirstValue("sub");
+ var hasUser = long.TryParse(userIdValue, out var userId);
+ var unbindHash = string.IsNullOrWhiteSpace(unbindToken)
+ ? null
+ : PushTokenProtector.Hash(unbindToken);
+ var device = await db.PushDevices.FirstOrDefaultAsync(item =>
+ item.InstallationId == installationId &&
+ ((hasUser && item.UserId == userId) ||
+ (unbindHash != null && item.UnbindTokenHash == unbindHash)), ct);
+ if (device is null)
+ return hasUser || unbindHash is not null ? NoContent() : Unauthorized();
+
+ db.PushDevices.Remove(device);
+ await db.SaveChangesAsync(ct);
+ return NoContent();
+ }
+
+ private ActionResult? ValidateDevice(string installationId, RegisterPushDeviceRequest request)
+ {
+ if (!Guid.TryParse(installationId, out _))
+ return BadRequest(new ApiError("INSTALLATION_ID_INVALID", "设备安装标识无效"));
+ if (!PushProviders.All.Contains(request.Provider))
+ return BadRequest(new ApiError("PUSH_PROVIDER_INVALID", "不支持该设备推送厂商"));
+ if (string.IsNullOrWhiteSpace(request.Token) || request.Token.Length > 4096)
+ return BadRequest(new ApiError("PUSH_TOKEN_INVALID", "推送令牌无效"));
+ var expectedFlavor = request.PackageName switch
+ {
+ "com.nx.miaoji" => "production",
+ "com.nx.miaoji.internal" => "internal",
+ _ => null,
+ };
+ if (expectedFlavor is null || !string.Equals(expectedFlavor, request.Flavor, StringComparison.OrdinalIgnoreCase))
+ return BadRequest(new ApiError("PUSH_PACKAGE_INVALID", "推送包名或环境无效"));
+ if (request.AppVersion.Length is < 1 or > 32 || request.VersionCode < 1)
+ return BadRequest(new ApiError("APP_VERSION_INVALID", "应用版本无效"));
+ return null;
+ }
+}
diff --git a/backend/MiaoJiZhang.Api/Controllers/TransactionsController.cs b/backend/MiaoJiZhang.Api/Controllers/TransactionsController.cs
index 2b9aa00..da5eaf9 100644
--- a/backend/MiaoJiZhang.Api/Controllers/TransactionsController.cs
+++ b/backend/MiaoJiZhang.Api/Controllers/TransactionsController.cs
@@ -13,7 +13,10 @@ namespace MiaoJiZhang.Api.Controllers;
[ApiController]
[Authorize]
[Route("api/transactions")]
-public class TransactionsController(AppDbContext db, LedgerResolver ledgers) : ControllerBase
+public class TransactionsController(
+ AppDbContext db,
+ LedgerResolver ledgers,
+ BudgetPushService budgetPush) : ControllerBase
{
private long Uid => long.Parse(User.FindFirstValue(ClaimTypes.NameIdentifier) ?? User.FindFirstValue("sub")!);
@@ -68,13 +71,22 @@ public class TransactionsController(AppDbContext db, LedgerResolver ledgers) : C
UpdatedAt = DateTime.UtcNow,
};
db.Transactions.Add(tx);
+ await using var writeScope = await db.Database.BeginTransactionAsync();
try
{
await db.SaveChangesAsync();
+ if (tx.Type == TransactionType.Expense)
+ {
+ await budgetPush.EvaluateAsync(Uid,
+ [new BudgetExpenseChange(tx.LedgerId, tx.CategoryId, tx.OccurredAt, tx.Amount)]);
+ await db.SaveChangesAsync();
+ }
+ await writeScope.CommitAsync();
return Ok(ToDto(tx, cat));
}
catch (DbUpdateException) when (clientRequestId is not null)
{
+ await writeScope.RollbackAsync();
// Another channel may have committed the same recognition candidate
// after the initial lookup. Resolve the unique-key race as idempotent success.
db.Entry(tx).State = EntityState.Detached;
@@ -161,6 +173,17 @@ public class TransactionsController(AppDbContext db, LedgerResolver ledgers) : C
}
try
{
+ await db.SaveChangesAsync(ct);
+ var expenseChanges = mapped
+ .Where(item => !existing.ContainsKey(item.Transaction.ClientRequestId ?? "") &&
+ item.Transaction.Type == TransactionType.Expense)
+ .Select(item => new BudgetExpenseChange(
+ item.Transaction.LedgerId,
+ item.Transaction.CategoryId,
+ item.Transaction.OccurredAt,
+ item.Transaction.Amount))
+ .ToList();
+ await budgetPush.EvaluateAsync(Uid, expenseChanges, ct);
await db.SaveChangesAsync(ct);
await transactionScope.CommitAsync(ct);
return Ok(mapped.Select(item => new RecognitionBatchTransactionDto(
@@ -223,6 +246,10 @@ public class TransactionsController(AppDbContext db, LedgerResolver ledgers) : C
message = "账单已在其他设备修改,请选择保留本地或云端版本",
server = ToDto(tx, await db.Categories.FindAsync(tx.CategoryId) ?? category),
});
+ var expenseChanges = new List();
+ if (tx.Type == TransactionType.Expense)
+ expenseChanges.Add(new BudgetExpenseChange(
+ tx.LedgerId, tx.CategoryId, tx.OccurredAt, -tx.Amount));
tx.LedgerId = ledgerId.Value;
tx.CategoryId = category.Id;
tx.Category = category;
@@ -232,7 +259,14 @@ public class TransactionsController(AppDbContext db, LedgerResolver ledgers) : C
tx.PaymentMethod = req.PaymentMethod?.Trim();
tx.OccurredAt = NormalizeOccurredAt(req.OccurredAt);
tx.UpdatedAt = DateTime.UtcNow;
+ if (tx.Type == TransactionType.Expense)
+ expenseChanges.Add(new BudgetExpenseChange(
+ tx.LedgerId, tx.CategoryId, tx.OccurredAt, tx.Amount));
+ await using var writeScope = await db.Database.BeginTransactionAsync();
await db.SaveChangesAsync();
+ await budgetPush.EvaluateAsync(Uid, expenseChanges);
+ await db.SaveChangesAsync();
+ await writeScope.CommitAsync();
return Ok(ToDto(tx, category));
}
@@ -291,7 +325,15 @@ public class TransactionsController(AppDbContext db, LedgerResolver ledgers) : C
}); tx.IsDeleted = false;
tx.DeletedAt = null;
tx.UpdatedAt = DateTime.UtcNow;
+ await using var writeScope = await db.Database.BeginTransactionAsync();
await db.SaveChangesAsync();
+ if (tx.Type == TransactionType.Expense)
+ {
+ await budgetPush.EvaluateAsync(Uid,
+ [new BudgetExpenseChange(tx.LedgerId, tx.CategoryId, tx.OccurredAt, tx.Amount)]);
+ await db.SaveChangesAsync();
+ }
+ await writeScope.CommitAsync();
return Ok(ToDto(tx, tx.Category));
}
diff --git a/backend/MiaoJiZhang.Api/Program.cs b/backend/MiaoJiZhang.Api/Program.cs
index dc73dda..94d992c 100644
--- a/backend/MiaoJiZhang.Api/Program.cs
+++ b/backend/MiaoJiZhang.Api/Program.cs
@@ -9,9 +9,10 @@ using Microsoft.IdentityModel.Tokens;
var builder = WebApplication.CreateBuilder(args);
-builder.Services.AddControllers();
-builder.Services.AddOpenApi();
-builder.Services.AddRateLimiter(options =>
+builder.Services.AddControllers();
+builder.Services.AddOpenApi();
+var authPermitLimit = Math.Max(1, builder.Configuration.GetValue("RateLimiting:AuthPermitLimit", 10));
+builder.Services.AddRateLimiter(options =>
{
options.RejectionStatusCode = StatusCodes.Status429TooManyRequests;
options.AddPolicy("auth", context =>
@@ -19,7 +20,7 @@ builder.Services.AddRateLimiter(options =>
context.Connection.RemoteIpAddress?.ToString() ?? "unknown",
_ => new FixedWindowRateLimiterOptions
{
- PermitLimit = 10,
+ PermitLimit = authPermitLimit,
Window = TimeSpan.FromMinutes(1),
QueueLimit = 0,
}));
@@ -50,13 +51,32 @@ builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
builder.Services.AddScoped();
-builder.Services.AddScoped();
-builder.Services.AddHttpClient("LlmClient");
+builder.Services.AddScoped();
+builder.Services.AddSingleton();
+builder.Services.AddScoped();
+builder.Services.AddHttpClient("LlmClient");
+builder.Services.AddHttpClient("PushProviders", client =>
+{
+ client.Timeout = TimeSpan.FromSeconds(20);
+});
+foreach (var provider in new[]
+{
+ "huawei", "honor", "xiaomi", "oppo", "vivo", "meizu",
+})
+{
+ builder.Services.AddSingleton(services => new OfficialPushProvider(
+ provider,
+ services.GetRequiredService(),
+ services.GetRequiredService(),
+ services.GetRequiredService>()));
+}
+builder.Services.AddSingleton();
builder.Services.AddSingleton();
builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddHostedService();
builder.Services.AddScoped();
-builder.Services.AddHostedService();
+builder.Services.AddHostedService();
+builder.Services.AddHostedService();
var conn = builder.Configuration.GetConnectionString("Default");
if (string.IsNullOrWhiteSpace(conn))
@@ -64,9 +84,19 @@ if (string.IsNullOrWhiteSpace(conn))
var jwtSecret = builder.Configuration["Jwt:Secret"];
if (string.IsNullOrWhiteSpace(jwtSecret) || jwtSecret.Length < 32)
throw new InvalidOperationException("必须通过 Jwt__Secret 配置至少 32 位的 JWT 密钥");
-var adminKey = builder.Configuration["Admin:Key"];
+var adminKey = builder.Configuration["Admin:Key"];
if (string.IsNullOrWhiteSpace(adminKey) || adminKey.Length < 24)
- throw new InvalidOperationException("必须通过 Admin__Key 配置至少 24 位的管理密钥");
+ throw new InvalidOperationException("必须通过 Admin__Key 配置至少 24 位的管理密钥");
+if (builder.Configuration.GetValue("Push:Enabled"))
+{
+ var pushKey = builder.Configuration["Push:TokenEncryptionKey"];
+ byte[]? key = null;
+ try { key = string.IsNullOrWhiteSpace(pushKey) ? null : Convert.FromBase64String(pushKey); }
+ catch (FormatException) { }
+ if (key?.Length != 32)
+ throw new InvalidOperationException(
+ "启用推送时必须通过 Push__TokenEncryptionKey 配置 base64 编码的 32 字节密钥");
+}
builder.Services.AddDbContext(o =>
o.UseMySql(conn, ServerVersion.AutoDetect(conn)));
diff --git a/backend/MiaoJiZhang.Api/Services/AccountDataEraser.cs b/backend/MiaoJiZhang.Api/Services/AccountDataEraser.cs
index ce54421..1fdc57c 100644
--- a/backend/MiaoJiZhang.Api/Services/AccountDataEraser.cs
+++ b/backend/MiaoJiZhang.Api/Services/AccountDataEraser.cs
@@ -9,6 +9,18 @@ public class AccountDataEraser(AppDbContext db)
{
await using var transaction =
await db.Database.BeginTransactionAsync(ct);
+ await db.PushMessages
+ .Where(message => message.TargetUserId == userId)
+ .ExecuteDeleteAsync(ct);
+ await db.PushDevices
+ .Where(device => device.UserId == userId)
+ .ExecuteDeleteAsync(ct);
+ await db.UserPushPreferences
+ .Where(preference => preference.UserId == userId)
+ .ExecuteDeleteAsync(ct);
+ await db.BudgetNotificationReceipts
+ .Where(receipt => receipt.UserId == userId)
+ .ExecuteDeleteAsync(ct);
await db.ChatMessages
.Where(message => message.UserId == userId)
.ExecuteDeleteAsync(ct);
diff --git a/backend/MiaoJiZhang.Api/Services/AgentService.cs b/backend/MiaoJiZhang.Api/Services/AgentService.cs
index 86bb14f..139f260 100644
--- a/backend/MiaoJiZhang.Api/Services/AgentService.cs
+++ b/backend/MiaoJiZhang.Api/Services/AgentService.cs
@@ -14,6 +14,7 @@ public record AgentTurnResult(
public class AgentService(
AppDbContext db,
ILlmClient llm,
+ BudgetPushService budgetPush,
ILogger logger)
{
private static readonly JsonSerializerOptions JsonOptions =
@@ -330,12 +331,23 @@ public class AgentService(
}
db.Transactions.AddRange(pending);
+ await using var writeScope = await db.Database.BeginTransactionAsync(ct);
try
{
await db.SaveChangesAsync(ct);
+ await budgetPush.EvaluateAsync(userId, pending
+ .Where(transaction => transaction.Type == TransactionType.Expense)
+ .Select(transaction => new BudgetExpenseChange(
+ transaction.LedgerId,
+ transaction.CategoryId,
+ transaction.OccurredAt,
+ transaction.Amount)), ct);
+ await db.SaveChangesAsync(ct);
+ await writeScope.CommitAsync(ct);
}
catch
{
+ await writeScope.RollbackAsync(ct);
foreach (var transaction in pending)
db.Entry(transaction).State = EntityState.Detached;
throw;
diff --git a/backend/MiaoJiZhang.Api/Services/BudgetPushService.cs b/backend/MiaoJiZhang.Api/Services/BudgetPushService.cs
new file mode 100644
index 0000000..66ce7d9
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/Services/BudgetPushService.cs
@@ -0,0 +1,142 @@
+using MiaoJiZhang.Domain.Entities;
+using MiaoJiZhang.Domain.Enums;
+using MiaoJiZhang.Infrastructure.Persistence;
+using Microsoft.EntityFrameworkCore;
+
+namespace MiaoJiZhang.Api.Services;
+
+public sealed record BudgetExpenseChange(
+ long LedgerId,
+ long CategoryId,
+ DateTime OccurredAt,
+ decimal Delta);
+
+public sealed class BudgetPushService(AppDbContext db)
+{
+ private static readonly int[] Thresholds = [80, 100];
+
+ public async Task EvaluateAsync(
+ long userId,
+ IEnumerable rawChanges,
+ CancellationToken ct = default)
+ {
+ var changes = rawChanges
+ .Where(change => change.Delta != 0)
+ .Select(change => new
+ {
+ Change = change,
+ Local = ChinaClock.ToLocal(change.OccurredAt),
+ })
+ .Select(item => new ChangeWithPeriod(
+ item.Change.LedgerId,
+ item.Change.CategoryId,
+ item.Local.Year * 100 + item.Local.Month,
+ item.Change.Delta))
+ .ToList();
+ if (changes.Count == 0) return;
+
+ var crossed = new List();
+ foreach (var group in changes.GroupBy(change => new { change.LedgerId, change.Period }))
+ {
+ var period = group.Key.Period;
+ var year = period / 100;
+ var month = period % 100;
+ if (month is < 1 or > 12) continue;
+ var rows = await db.Budgets
+ .Where(budget => budget.UserId == userId && budget.LedgerId == group.Key.LedgerId &&
+ (budget.Period == period || budget.Period == 0) && budget.Amount > 0)
+ .ToListAsync(ct);
+ var budgets = rows.GroupBy(budget => budget.CategoryId)
+ .Select(items => items.FirstOrDefault(item => item.Period == period) ??
+ items.First(item => item.Period == 0))
+ .ToList();
+ if (budgets.Count == 0) continue;
+
+ var (start, end) = ChinaClock.MonthRangeUtc(year, month);
+ var spent = await db.Transactions
+ .Where(transaction => transaction.UserId == userId &&
+ transaction.LedgerId == group.Key.LedgerId &&
+ transaction.Type == TransactionType.Expense &&
+ transaction.OccurredAt >= start && transaction.OccurredAt < end)
+ .GroupBy(transaction => transaction.CategoryId)
+ .Select(items => new { CategoryId = items.Key, Amount = items.Sum(item => item.Amount) })
+ .ToDictionaryAsync(item => item.CategoryId, item => item.Amount, ct);
+ var existing = await db.BudgetNotificationReceipts
+ .Where(receipt => receipt.UserId == userId && receipt.Period == period &&
+ budgets.Select(budget => budget.Id).Contains(receipt.BudgetId))
+ .Select(receipt => new { receipt.BudgetId, receipt.Threshold })
+ .ToListAsync(ct);
+ var existingKeys = existing.Select(item => (item.BudgetId, item.Threshold)).ToHashSet();
+
+ foreach (var budget in budgets)
+ {
+ var currentSpent = budget.CategoryId.HasValue
+ ? spent.GetValueOrDefault(budget.CategoryId.Value)
+ : spent.Values.Sum();
+ var delta = budget.CategoryId.HasValue
+ ? group.Where(change => change.CategoryId == budget.CategoryId.Value).Sum(change => change.Delta)
+ : group.Sum(change => change.Delta);
+ var previousSpent = currentSpent - delta;
+ var highestCrossed = 0;
+ foreach (var threshold in Thresholds)
+ {
+ if (currentSpent * 100 < budget.Amount * threshold ||
+ existingKeys.Contains((budget.Id, threshold))) continue;
+ db.BudgetNotificationReceipts.Add(new BudgetNotificationReceipt
+ {
+ UserId = userId,
+ BudgetId = budget.Id,
+ Period = period,
+ Threshold = threshold,
+ CreatedAt = DateTime.UtcNow,
+ });
+ existingKeys.Add((budget.Id, threshold));
+ if (delta > 0 && previousSpent * 100 < budget.Amount * threshold)
+ highestCrossed = threshold;
+ }
+ if (highestCrossed > 0)
+ crossed.Add(new CrossedBudget(budget.CategoryId, highestCrossed));
+ }
+ }
+
+ if (crossed.Count == 0) return;
+ var notificationsEnabled = await db.UserPushPreferences.AnyAsync(preference =>
+ preference.UserId == userId && preference.Category == PushCategories.Budget &&
+ preference.IsEnabled, ct);
+ if (!notificationsEnabled) return;
+
+ var categoryIds = crossed.Where(item => item.CategoryId.HasValue)
+ .Select(item => item.CategoryId!.Value).Distinct().ToList();
+ var names = await db.Categories.Where(category => categoryIds.Contains(category.Id))
+ .ToDictionaryAsync(category => category.Id, category => category.Name, ct);
+ var details = crossed
+ .OrderByDescending(item => item.Threshold)
+ .ThenBy(item => item.CategoryId)
+ .Select(item =>
+ $"{(item.CategoryId.HasValue ? names.GetValueOrDefault(item.CategoryId.Value, "分类预算") : "总预算")}" +
+ (item.Threshold >= 100 ? "已用完" : "已使用 80%"))
+ .Distinct()
+ .ToList();
+ var body = string.Join(";", details);
+ if (body.Length > 240) body = body[..237] + "...";
+ var now = DateTime.UtcNow;
+ db.PushMessages.Add(new PushMessage
+ {
+ PublicId = Guid.NewGuid().ToString(),
+ Source = "budget",
+ State = PushMessageStates.Queued,
+ Category = PushCategories.Budget,
+ Title = crossed.Any(item => item.Threshold >= 100) ? "预算已达到上限" : "预算接近上限",
+ Body = body,
+ Action = PushActions.Budget,
+ TargetUserId = userId,
+ Flavor = "",
+ TtlSeconds = 24 * 3600,
+ CreatedAt = now,
+ UpdatedAt = now,
+ });
+ }
+
+ private sealed record ChangeWithPeriod(long LedgerId, long CategoryId, int Period, decimal Delta);
+ private sealed record CrossedBudget(long? CategoryId, int Threshold);
+}
diff --git a/backend/MiaoJiZhang.Api/Services/PushDispatchService.cs b/backend/MiaoJiZhang.Api/Services/PushDispatchService.cs
new file mode 100644
index 0000000..2d020e8
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/Services/PushDispatchService.cs
@@ -0,0 +1,358 @@
+using MiaoJiZhang.Domain.Entities;
+using MiaoJiZhang.Infrastructure.Persistence;
+using Microsoft.EntityFrameworkCore;
+
+namespace MiaoJiZhang.Api.Services;
+
+public sealed class PushDispatchService(
+ IServiceScopeFactory scopeFactory,
+ IConfiguration configuration,
+ ILogger logger) : BackgroundService
+{
+ private static readonly TimeSpan[] RetrySchedule =
+ [
+ TimeSpan.FromMinutes(1),
+ TimeSpan.FromMinutes(5),
+ TimeSpan.FromMinutes(30),
+ TimeSpan.FromHours(2),
+ TimeSpan.FromHours(6),
+ ];
+
+ private DateTime nextCleanupAt = DateTime.MinValue;
+
+ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
+ {
+ using var timer = new PeriodicTimer(TimeSpan.FromSeconds(5));
+ while (!stoppingToken.IsCancellationRequested)
+ {
+ if (configuration.GetValue("Push:Enabled"))
+ {
+ try
+ {
+ await RecoverAndFinalizeMessages(stoppingToken);
+ await ExpandMessages(stoppingToken);
+ await DispatchDeliveries(stoppingToken);
+ if (nextCleanupAt <= DateTime.UtcNow)
+ {
+ await Cleanup(stoppingToken);
+ nextCleanupAt = DateTime.UtcNow.AddHours(6);
+ }
+ }
+ catch (OperationCanceledException) when (stoppingToken.IsCancellationRequested)
+ {
+ break;
+ }
+ catch (Exception exception)
+ {
+ logger.LogError(exception, "Push dispatch loop failed");
+ }
+ }
+ await timer.WaitForNextTickAsync(stoppingToken);
+ }
+ }
+
+ private async Task RecoverAndFinalizeMessages(CancellationToken ct)
+ {
+ using var scope = scopeFactory.CreateScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var now = DateTime.UtcNow;
+ var staleBefore = now.AddMinutes(-3);
+ await db.PushMessages
+ .Where(message => message.State == PushMessageStates.Sending &&
+ message.StartedAt <= staleBefore &&
+ !db.PushDeliveries.Any(delivery => delivery.PushMessageId == message.Id))
+ .ExecuteUpdateAsync(setters => setters
+ .SetProperty(message => message.State, PushMessageStates.Queued)
+ .SetProperty(message => message.StartedAt, (DateTime?)null)
+ .SetProperty(message => message.UpdatedAt, now), ct);
+
+ var ready = await db.PushMessages
+ .Where(message => message.State == PushMessageStates.Sending &&
+ db.PushDeliveries.Any(delivery => delivery.PushMessageId == message.Id) &&
+ !db.PushDeliveries.Any(delivery => delivery.PushMessageId == message.Id &&
+ (delivery.State == PushDeliveryStates.Queued ||
+ delivery.State == PushDeliveryStates.Sending)))
+ .Select(message => message.Id)
+ .Take(100)
+ .ToListAsync(ct);
+ foreach (var messageId in ready)
+ await FinalizeMessage(db, messageId, ct);
+ }
+
+ private async Task ExpandMessages(CancellationToken ct)
+ {
+ using var scope = scopeFactory.CreateScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var now = DateTime.UtcNow;
+ var candidates = await db.PushMessages
+ .Where(message =>
+ message.State == PushMessageStates.Queued ||
+ (message.State == PushMessageStates.Scheduled && message.ScheduledAt <= now))
+ .OrderBy(message => message.ScheduledAt ?? message.CreatedAt)
+ .Select(message => message.Id)
+ .Take(20)
+ .ToListAsync(ct);
+
+ foreach (var id in candidates)
+ {
+ var claimed = await db.PushMessages
+ .Where(message => message.Id == id &&
+ (message.State == PushMessageStates.Queued ||
+ (message.State == PushMessageStates.Scheduled && message.ScheduledAt <= now)))
+ .ExecuteUpdateAsync(setters => setters
+ .SetProperty(message => message.State, PushMessageStates.Sending)
+ .SetProperty(message => message.StartedAt, now)
+ .SetProperty(message => message.UpdatedAt, now), ct);
+ if (claimed != 1) continue;
+
+ var message = await db.PushMessages.FirstAsync(item => item.Id == id, ct);
+ var deviceQuery = db.PushDevices
+ .Where(device => device.IsActive && device.NotificationsAllowed &&
+ !device.User.IsBanned && device.User.AccountClosureScheduledAt == null);
+ if (message.IsTest)
+ {
+ deviceQuery = deviceQuery.Where(device => device.Id == message.TestDeviceId);
+ }
+ else
+ {
+ deviceQuery = deviceQuery.Where(device =>
+ db.UserPushPreferences.Any(preference =>
+ preference.UserId == device.UserId &&
+ preference.Category == message.Category &&
+ preference.IsEnabled));
+ if (message.TargetUserId.HasValue)
+ deviceQuery = deviceQuery.Where(device => device.UserId == message.TargetUserId.Value);
+ if (!string.IsNullOrWhiteSpace(message.Flavor))
+ deviceQuery = deviceQuery.Where(device => device.Flavor == message.Flavor);
+ if (!string.IsNullOrWhiteSpace(message.ProviderFilter))
+ deviceQuery = deviceQuery.Where(device => device.Provider == message.ProviderFilter);
+ if (message.MinVersionCode.HasValue)
+ deviceQuery = deviceQuery.Where(device => device.VersionCode >= message.MinVersionCode.Value);
+ if (message.MaxVersionCode.HasValue)
+ deviceQuery = deviceQuery.Where(device => device.VersionCode <= message.MaxVersionCode.Value);
+ }
+
+ var devices = await deviceQuery.Select(device => new
+ {
+ device.Id,
+ device.UserId,
+ device.Provider,
+ }).ToListAsync(ct);
+ var existing = await db.PushDeliveries
+ .Where(delivery => delivery.PushMessageId == id)
+ .Select(delivery => delivery.PushDeviceId)
+ .ToListAsync(ct);
+ var existingIds = existing.ToHashSet();
+ foreach (var device in devices.Where(device => !existingIds.Contains(device.Id)))
+ {
+ db.PushDeliveries.Add(new PushDelivery
+ {
+ PushMessageId = id,
+ PushDeviceId = device.Id,
+ UserId = device.UserId,
+ Provider = device.Provider,
+ State = PushDeliveryStates.Queued,
+ NextAttemptAt = now,
+ CreatedAt = now,
+ UpdatedAt = now,
+ });
+ }
+ if (devices.Count == 0)
+ {
+ message.State = PushMessageStates.Completed;
+ message.CompletedAt = now;
+ message.UpdatedAt = now;
+ }
+ await db.SaveChangesAsync(ct);
+ }
+ }
+
+ private async Task DispatchDeliveries(CancellationToken ct)
+ {
+ using var scope = scopeFactory.CreateScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var registry = scope.ServiceProvider.GetRequiredService();
+ var tokenProtector = scope.ServiceProvider.GetRequiredService();
+ var now = DateTime.UtcNow;
+ var candidates = await db.PushDeliveries
+ .Where(delivery =>
+ (delivery.State == PushDeliveryStates.Queued && delivery.NextAttemptAt <= now) ||
+ (delivery.State == PushDeliveryStates.Sending && delivery.LeaseExpiresAt <= now))
+ .OrderBy(delivery => delivery.NextAttemptAt)
+ .Select(delivery => delivery.Id)
+ .Take(50)
+ .ToListAsync(ct);
+ var affectedMessages = new HashSet();
+
+ foreach (var id in candidates)
+ {
+ var claimNow = DateTime.UtcNow;
+ var leaseId = Guid.NewGuid().ToString();
+ var leaseUntil = claimNow.AddMinutes(2);
+ var claimed = await db.PushDeliveries
+ .Where(delivery => delivery.Id == id &&
+ ((delivery.State == PushDeliveryStates.Queued && delivery.NextAttemptAt <= claimNow) ||
+ (delivery.State == PushDeliveryStates.Sending && delivery.LeaseExpiresAt <= claimNow)))
+ .ExecuteUpdateAsync(setters => setters
+ .SetProperty(delivery => delivery.State, PushDeliveryStates.Sending)
+ .SetProperty(delivery => delivery.LeaseId, leaseId)
+ .SetProperty(delivery => delivery.LeaseExpiresAt, leaseUntil)
+ .SetProperty(delivery => delivery.AttemptCount, delivery => delivery.AttemptCount + 1)
+ .SetProperty(delivery => delivery.UpdatedAt, claimNow), ct);
+ if (claimed != 1) continue;
+
+ var delivery = await db.PushDeliveries
+ .Include(item => item.PushMessage)
+ .Include(item => item.PushDevice).ThenInclude(device => device.User)
+ .FirstAsync(item => item.Id == id, ct);
+ affectedMessages.Add(delivery.PushMessageId);
+ await SendOne(db, registry, tokenProtector, delivery, ct);
+ }
+
+ foreach (var messageId in affectedMessages)
+ await FinalizeMessage(db, messageId, ct);
+ }
+
+ private static async Task SendOne(
+ AppDbContext db,
+ PushProviderRegistry registry,
+ PushTokenProtector tokenProtector,
+ PushDelivery delivery,
+ CancellationToken ct)
+ {
+ var now = DateTime.UtcNow;
+ var message = delivery.PushMessage;
+ var device = delivery.PushDevice;
+ var expiresAt = (message.ScheduledAt ?? message.CreatedAt).AddSeconds(message.TtlSeconds);
+ if (expiresAt <= now)
+ {
+ Skip(delivery, "message_expired", now);
+ await db.SaveChangesAsync(ct);
+ return;
+ }
+ if (!device.IsActive || !device.NotificationsAllowed ||
+ device.User.IsBanned || device.User.AccountClosureScheduledAt.HasValue)
+ {
+ Skip(delivery, "device_or_account_inactive", now);
+ await db.SaveChangesAsync(ct);
+ return;
+ }
+ if (!message.IsTest && !await db.UserPushPreferences.AnyAsync(preference =>
+ preference.UserId == device.UserId && preference.Category == message.Category &&
+ preference.IsEnabled, ct))
+ {
+ Skip(delivery, "category_disabled", now);
+ await db.SaveChangesAsync(ct);
+ return;
+ }
+
+ var provider = registry.Find(device.Provider);
+ if (provider is null)
+ {
+ Fail(delivery, "provider_unknown", "Unknown push provider", now);
+ await db.SaveChangesAsync(ct);
+ return;
+ }
+ var envelope = new PushEnvelope(
+ message.PublicId,
+ message.Title,
+ message.Body,
+ message.Category,
+ message.Action,
+ message.EntityId,
+ Math.Max(60, (int)(expiresAt - now).TotalSeconds));
+ var result = await provider.SendAsync(
+ device.Flavor,
+ device.PackageName,
+ tokenProtector.Unprotect(device.TokenCiphertext),
+ envelope,
+ ct);
+ if (result.Accepted)
+ {
+ delivery.State = PushDeliveryStates.Accepted;
+ delivery.AcceptedAt = now;
+ delivery.ProviderMessageId = result.ProviderMessageId;
+ delivery.ErrorCode = null;
+ delivery.ErrorMessage = null;
+ ClearLease(delivery, now);
+ }
+ else if (result.Retryable && delivery.AttemptCount <= RetrySchedule.Length && expiresAt > now)
+ {
+ var retry = result.RetryAfter ?? RetrySchedule[Math.Clamp(delivery.AttemptCount - 1, 0, RetrySchedule.Length - 1)];
+ delivery.State = PushDeliveryStates.Queued;
+ delivery.NextAttemptAt = now.Add(retry) < expiresAt ? now.Add(retry) : expiresAt;
+ delivery.ErrorCode = result.ErrorCode;
+ delivery.ErrorMessage = result.ErrorMessage;
+ ClearLease(delivery, now);
+ }
+ else
+ {
+ Fail(delivery, result.ErrorCode ?? "provider_rejected", result.ErrorMessage, now);
+ }
+ if (result.InvalidToken)
+ {
+ device.IsActive = false;
+ device.DisabledReason = "provider_invalid_token";
+ device.UpdatedAt = now;
+ }
+ await db.SaveChangesAsync(ct);
+ }
+
+ private static async Task FinalizeMessage(AppDbContext db, long messageId, CancellationToken ct)
+ {
+ var pending = await db.PushDeliveries.AnyAsync(delivery =>
+ delivery.PushMessageId == messageId &&
+ (delivery.State == PushDeliveryStates.Queued || delivery.State == PushDeliveryStates.Sending), ct);
+ if (pending) return;
+ var failed = await db.PushDeliveries.AnyAsync(delivery =>
+ delivery.PushMessageId == messageId && delivery.State == PushDeliveryStates.Failed, ct);
+ var now = DateTime.UtcNow;
+ await db.PushMessages.Where(message => message.Id == messageId)
+ .ExecuteUpdateAsync(setters => setters
+ .SetProperty(message => message.State,
+ failed ? PushMessageStates.PartiallyFailed : PushMessageStates.Completed)
+ .SetProperty(message => message.CompletedAt, now)
+ .SetProperty(message => message.UpdatedAt, now), ct);
+ }
+
+ private async Task Cleanup(CancellationToken ct)
+ {
+ using var scope = scopeFactory.CreateScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var staleBefore = DateTime.UtcNow.AddDays(-90);
+ await db.PushDevices
+ .Where(device => device.IsActive && device.LastSeenAt < staleBefore)
+ .ExecuteUpdateAsync(setters => setters
+ .SetProperty(device => device.IsActive, false)
+ .SetProperty(device => device.DisabledReason, "stale_device")
+ .SetProperty(device => device.UpdatedAt, DateTime.UtcNow), ct);
+ await db.PushDeliveries
+ .Where(delivery => delivery.UpdatedAt < staleBefore &&
+ delivery.State != PushDeliveryStates.Queued &&
+ delivery.State != PushDeliveryStates.Sending)
+ .ExecuteDeleteAsync(ct);
+ }
+
+ private static void Skip(PushDelivery delivery, string code, DateTime now)
+ {
+ delivery.State = PushDeliveryStates.Skipped;
+ delivery.ErrorCode = code;
+ delivery.ErrorMessage = null;
+ ClearLease(delivery, now);
+ }
+
+ private static void Fail(PushDelivery delivery, string code, string? message, DateTime now)
+ {
+ delivery.State = PushDeliveryStates.Failed;
+ delivery.ErrorCode = code;
+ delivery.ErrorMessage = message is { Length: > 400 } ? message[..400] : message;
+ ClearLease(delivery, now);
+ }
+
+ private static void ClearLease(PushDelivery delivery, DateTime now)
+ {
+ delivery.LeaseId = null;
+ delivery.LeaseExpiresAt = null;
+ delivery.UpdatedAt = now;
+ }
+}
diff --git a/backend/MiaoJiZhang.Api/Services/PushProviders.cs b/backend/MiaoJiZhang.Api/Services/PushProviders.cs
new file mode 100644
index 0000000..1bf459d
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/Services/PushProviders.cs
@@ -0,0 +1,571 @@
+using System.Net;
+using System.Net.Http.Headers;
+using System.Security.Cryptography;
+using System.Text;
+using System.Text.Json;
+using System.Collections.Concurrent;
+using MiaoJiZhang.Domain.Entities;
+
+namespace MiaoJiZhang.Api.Services;
+
+public sealed record PushEnvelope(
+ string MessageId,
+ string Title,
+ string Body,
+ string Category,
+ string Action,
+ string? EntityId,
+ int TtlSeconds);
+
+public sealed record PushSendResult(
+ bool Accepted,
+ bool Retryable,
+ bool InvalidToken,
+ string? ProviderMessageId = null,
+ string? ErrorCode = null,
+ string? ErrorMessage = null,
+ TimeSpan? RetryAfter = null);
+
+public interface IPushProvider
+{
+ string Provider { get; }
+ bool IsEnabled(string flavor);
+ IReadOnlyList ConfigurationErrors(string flavor);
+ Task SendAsync(
+ string flavor,
+ string packageName,
+ string token,
+ PushEnvelope message,
+ CancellationToken ct);
+}
+
+public sealed class PushProviderRegistry(IEnumerable providers)
+{
+ private readonly IReadOnlyDictionary items = providers
+ .ToDictionary(provider => provider.Provider, StringComparer.OrdinalIgnoreCase);
+
+ public IReadOnlyCollection All => items.Values.ToArray();
+ public IPushProvider? Find(string provider) => items.GetValueOrDefault(provider);
+}
+
+public sealed class OfficialPushProvider(
+ string provider,
+ IConfiguration configuration,
+ IHttpClientFactory httpClientFactory,
+ ILogger logger) : IPushProvider
+{
+ private readonly SemaphoreSlim tokenLock = new(1, 1);
+ private readonly ConcurrentDictionary accessTokens =
+ new(StringComparer.OrdinalIgnoreCase);
+
+ public string Provider { get; } = provider;
+
+ public bool IsEnabled(string flavor) =>
+ configuration.GetValue($"Push:Providers:{Provider}:{flavor}:Enabled");
+
+ public IReadOnlyList ConfigurationErrors(string flavor)
+ {
+ if (!IsEnabled(flavor)) return ["disabled"];
+ var required = Provider switch
+ {
+ PushProviders.Huawei or PushProviders.Honor => new[] { "AppId", "AppSecret" },
+ PushProviders.Xiaomi => new[] { "AppSecret" },
+ PushProviders.Oppo => new[] { "AppKey", "MasterSecret" },
+ PushProviders.Vivo => new[] { "AppId", "AppKey", "AppSecret" },
+ PushProviders.Meizu => new[] { "AppId", "AppSecret" },
+ _ => [],
+ };
+ return required
+ .Where(key => string.IsNullOrWhiteSpace(Value(flavor, key)))
+ .Select(key => $"missing_{key.ToLowerInvariant()}")
+ .ToList();
+ }
+
+ public async Task SendAsync(
+ string flavor,
+ string packageName,
+ string token,
+ PushEnvelope message,
+ CancellationToken ct)
+ {
+ var errors = ConfigurationErrors(flavor);
+ if (errors.Count > 0)
+ return new(false, false, false, ErrorCode: "provider_not_configured",
+ ErrorMessage: string.Join(',', errors));
+ try
+ {
+ return Provider switch
+ {
+ PushProviders.Huawei => await SendHuaweiLike(flavor, packageName, token, message, false, ct),
+ PushProviders.Honor => await SendHuaweiLike(flavor, packageName, token, message, true, ct),
+ PushProviders.Xiaomi => await SendXiaomi(flavor, packageName, token, message, ct),
+ PushProviders.Oppo => await SendOppo(flavor, packageName, token, message, ct),
+ PushProviders.Vivo => await SendVivo(flavor, packageName, token, message, ct),
+ PushProviders.Meizu => await SendMeizu(flavor, packageName, token, message, ct),
+ _ => new(false, false, false, ErrorCode: "provider_unknown"),
+ };
+ }
+ catch (OperationCanceledException) when (!ct.IsCancellationRequested)
+ {
+ return new(false, true, false, ErrorCode: "provider_timeout", ErrorMessage: "Provider request timed out");
+ }
+ catch (HttpRequestException exception)
+ {
+ logger.LogWarning(exception, "Push provider {Provider} request failed", Provider);
+ return new(false, true, false, ErrorCode: "provider_network_error", ErrorMessage: exception.Message);
+ }
+ catch (Exception exception)
+ {
+ logger.LogError(exception, "Push provider {Provider} failed unexpectedly", Provider);
+ return new(false, false, false, ErrorCode: "provider_internal_error", ErrorMessage: exception.Message);
+ }
+ }
+
+ private async Task SendHuaweiLike(
+ string flavor,
+ string packageName,
+ string token,
+ PushEnvelope message,
+ bool honor,
+ CancellationToken ct)
+ {
+ var accessToken = await GetOAuthToken(flavor, honor, ct);
+ if (accessToken.Result is not null) return accessToken.Result;
+ var appId = Value(flavor, "AppId")!;
+ var defaultUrl = honor
+ ? $"https://push-api.cloud.hihonor.com/api/v1/{appId}/sendMessage"
+ : $"https://push-api.cloud.huawei.com/v1/{appId}/messages:send";
+ var url = Value(flavor, "SendUrl") ?? defaultUrl;
+ var intent = IntentUri(packageName, message);
+ object payload = honor
+ ? new
+ {
+ message = new
+ {
+ notification = new { title = message.Title, body = message.Body },
+ android = new
+ {
+ ttl = $"{message.TtlSeconds}s",
+ data = PayloadJson(message),
+ notification = new
+ {
+ channel_id = Channel(flavor, message.Category),
+ click_action = new { type = 1, intent },
+ },
+ },
+ token = new[] { token },
+ },
+ }
+ : new
+ {
+ validate_only = false,
+ message = new
+ {
+ notification = new { title = message.Title, body = message.Body },
+ android = new
+ {
+ ttl = $"{message.TtlSeconds}s",
+ data = PayloadJson(message),
+ notification = new
+ {
+ channel_id = Channel(flavor, message.Category),
+ notify_id = StableNotificationId(message.MessageId),
+ click_action = new { type = 1, intent },
+ },
+ },
+ token = new[] { token },
+ },
+ };
+ using var request = JsonRequest(HttpMethod.Post, url, payload);
+ request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken.Token);
+ return await Send(request, ct);
+ }
+
+ private async Task<(string? Token, PushSendResult? Result)> GetOAuthToken(
+ string flavor,
+ bool honor,
+ CancellationToken ct)
+ {
+ if (FreshAccessToken(flavor) is { } cached) return (cached, null);
+ await tokenLock.WaitAsync(ct);
+ try
+ {
+ if (FreshAccessToken(flavor) is { } lockedCached) return (lockedCached, null);
+ var defaultUrl = honor
+ ? "https://iam.developer.hihonor.com/auth/token"
+ : "https://oauth-login.cloud.huawei.com/oauth2/v3/token";
+ var url = Value(flavor, "AuthUrl") ?? defaultUrl;
+ using var request = new HttpRequestMessage(HttpMethod.Post, url)
+ {
+ Content = new FormUrlEncodedContent(new Dictionary
+ {
+ ["grant_type"] = "client_credentials",
+ ["client_id"] = Value(flavor, "AppId")!,
+ ["client_secret"] = Value(flavor, "AppSecret")!,
+ }),
+ };
+ using var response = await Client().SendAsync(request, ct);
+ var body = await response.Content.ReadAsStringAsync(ct);
+ if (!response.IsSuccessStatusCode)
+ return (null, FromFailure(response, body));
+ using var json = JsonDocument.Parse(body);
+ if (!TryString(json.RootElement, out var value, "access_token", "accessToken", "token"))
+ return (null, new(false, false, false, ErrorCode: "provider_auth_invalid", ErrorMessage: Trim(body)));
+ var expires = TryInt(json.RootElement, "expires_in", "expiresIn") ?? 3600;
+ accessTokens[flavor] = new CachedAccessToken(
+ value!,
+ DateTime.UtcNow.AddSeconds(Math.Max(expires, 300)));
+ return (value, null);
+ }
+ finally
+ {
+ tokenLock.Release();
+ }
+ }
+
+ private async Task SendXiaomi(
+ string flavor,
+ string packageName,
+ string token,
+ PushEnvelope message,
+ CancellationToken ct)
+ {
+ var url = Value(flavor, "SendUrl") ?? "https://api.xmpush.xiaomi.com/v3/message/regid";
+ using var request = new HttpRequestMessage(HttpMethod.Post, url)
+ {
+ Content = new FormUrlEncodedContent(new Dictionary
+ {
+ ["registration_id"] = token,
+ ["restricted_package_name"] = packageName,
+ ["title"] = message.Title,
+ ["description"] = message.Body,
+ ["notify_id"] = StableNotificationId(message.MessageId).ToString(),
+ ["time_to_live"] = (message.TtlSeconds * 1000L).ToString(),
+ ["extra.notify_effect"] = "2",
+ ["extra.intent_uri"] = IntentUri(packageName, message),
+ ["extra.jz_payload"] = PayloadJson(message),
+ ["extra.channel_id"] = Channel(flavor, message.Category),
+ }),
+ };
+ request.Headers.TryAddWithoutValidation("Authorization", $"key={Value(flavor, "AppSecret")}");
+ return await Send(request, ct);
+ }
+
+ private async Task SendOppo(
+ string flavor,
+ string packageName,
+ string token,
+ PushEnvelope message,
+ CancellationToken ct)
+ {
+ var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
+ var appKey = Value(flavor, "AppKey")!;
+ var sign = Sha256Hex(appKey + timestamp + Value(flavor, "MasterSecret"));
+ var authUrl = Value(flavor, "AuthUrl") ?? "https://api.push.oppomobile.com/server/v1/auth";
+ using var authRequest = new HttpRequestMessage(HttpMethod.Post, authUrl)
+ {
+ Content = new FormUrlEncodedContent(new Dictionary
+ {
+ ["app_key"] = appKey,
+ ["timestamp"] = timestamp,
+ ["sign"] = sign,
+ }),
+ };
+ using var authResponse = await Client().SendAsync(authRequest, ct);
+ var authBody = await authResponse.Content.ReadAsStringAsync(ct);
+ if (!authResponse.IsSuccessStatusCode) return FromFailure(authResponse, authBody);
+ using var authJson = JsonDocument.Parse(authBody);
+ if (!TryNestedString(authJson.RootElement, out var authToken, "data", "auth_token") &&
+ !TryString(authJson.RootElement, out authToken, "auth_token", "authToken"))
+ return new(false, false, false, ErrorCode: "provider_auth_invalid", ErrorMessage: Trim(authBody));
+
+ var notification = JsonSerializer.Serialize(new
+ {
+ app_message_id = message.MessageId,
+ title = message.Title,
+ content = message.Body,
+ click_action_type = 1,
+ click_action_activity = $"{packageName}/com.nx.miaoji.MainActivity",
+ action_parameters = PayloadJson(message),
+ off_line = true,
+ off_line_ttl = message.TtlSeconds,
+ channel_id = Channel(flavor, message.Category),
+ });
+ var sendUrl = Value(flavor, "SendUrl") ??
+ "https://api.push.oppomobile.com/server/v1/message/notification/unicast";
+ using var request = new HttpRequestMessage(HttpMethod.Post, sendUrl)
+ {
+ Content = new FormUrlEncodedContent(new Dictionary
+ {
+ ["auth_token"] = authToken!,
+ ["registration_id"] = token,
+ ["message"] = notification,
+ }),
+ };
+ return await Send(request, ct);
+ }
+
+ private async Task SendVivo(
+ string flavor,
+ string packageName,
+ string token,
+ PushEnvelope message,
+ CancellationToken ct)
+ {
+ var appId = Value(flavor, "AppId")!;
+ var appKey = Value(flavor, "AppKey")!;
+ var timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString();
+ var sign = Md5Hex(appId + appKey + timestamp + Value(flavor, "AppSecret"));
+ var authUrl = Value(flavor, "AuthUrl") ?? "https://api-push.vivo.com.cn/message/auth";
+ using var authRequest = JsonRequest(HttpMethod.Post, authUrl, new
+ {
+ appId = int.TryParse(appId, out var id) ? id : 0,
+ appKey,
+ timestamp = long.Parse(timestamp),
+ sign,
+ });
+ using var authResponse = await Client().SendAsync(authRequest, ct);
+ var authBody = await authResponse.Content.ReadAsStringAsync(ct);
+ if (!authResponse.IsSuccessStatusCode) return FromFailure(authResponse, authBody);
+ using var authJson = JsonDocument.Parse(authBody);
+ if (!TryString(authJson.RootElement, out var authToken, "authToken", "auth_token"))
+ return new(false, false, false, ErrorCode: "provider_auth_invalid", ErrorMessage: Trim(authBody));
+
+ var sendUrl = Value(flavor, "SendUrl") ?? "https://api-push.vivo.com.cn/message/send";
+ using var request = JsonRequest(HttpMethod.Post, sendUrl, new
+ {
+ regId = token,
+ notifyType = 4,
+ title = message.Title,
+ content = message.Body,
+ timeToLive = message.TtlSeconds,
+ skipType = 3,
+ skipContent = IntentUri(packageName, message),
+ requestId = message.MessageId,
+ classification = message.Category == PushCategories.Operations ? 1 : 0,
+ clientCustomMap = new Dictionary { ["jz_payload"] = PayloadJson(message) },
+ });
+ request.Headers.TryAddWithoutValidation("authToken", authToken);
+ return await Send(request, ct);
+ }
+
+ private async Task SendMeizu(
+ string flavor,
+ string packageName,
+ string token,
+ PushEnvelope message,
+ CancellationToken ct)
+ {
+ var appId = Value(flavor, "AppId")!;
+ var messageJson = JsonSerializer.Serialize(new
+ {
+ noticeBarInfo = new
+ {
+ title = message.Title,
+ content = message.Body,
+ noticeBarType = 0,
+ },
+ clickTypeInfo = new
+ {
+ clickType = 3,
+ parameters = new Dictionary { ["jz_payload"] = PayloadJson(message) },
+ uri = IntentUri(packageName, message),
+ },
+ pushTimeInfo = new { offLine = true, validTime = message.TtlSeconds / 3600 },
+ advanceInfo = new { notifyId = StableNotificationId(message.MessageId) },
+ });
+ var values = new SortedDictionary(StringComparer.Ordinal)
+ {
+ ["appId"] = appId,
+ ["pushIds"] = JsonSerializer.Serialize(new[] { token }),
+ ["messageJson"] = messageJson,
+ };
+ var signSource = string.Concat(values.Select(item => item.Key + item.Value)) + Value(flavor, "AppSecret");
+ values["sign"] = Md5Hex(signSource);
+ var url = Value(flavor, "SendUrl") ??
+ "https://server-api-push.meizu.com/garcia/api/server/push/varnished/pushByPushId";
+ using var request = new HttpRequestMessage(HttpMethod.Post, url)
+ {
+ Content = new FormUrlEncodedContent(values),
+ };
+ return await Send(request, ct);
+ }
+
+ private async Task Send(HttpRequestMessage request, CancellationToken ct)
+ {
+ using var response = await Client().SendAsync(request, ct);
+ var body = await response.Content.ReadAsStringAsync(ct);
+ if (!response.IsSuccessStatusCode) return FromFailure(response, body);
+ string? providerId = null;
+ try
+ {
+ using var json = JsonDocument.Parse(body);
+ var businessFailure = FromBusinessFailure(json.RootElement, body);
+ if (businessFailure is not null) return businessFailure;
+ TryString(json.RootElement, out providerId,
+ "requestId", "request_id", "taskId", "msgId", "messageId", "code");
+ }
+ catch (JsonException)
+ {
+ // Some providers return an empty or non-JSON success body.
+ }
+ return new(true, false, false, providerId);
+ }
+
+ private PushSendResult? FromBusinessFailure(JsonElement root, string body)
+ {
+ string? code = null;
+ var failed = Provider switch
+ {
+ PushProviders.Huawei or PushProviders.Honor =>
+ HasUnexpectedValue(root, ["0", "200", "80000000"], out code, "code"),
+ PushProviders.Xiaomi =>
+ HasUnexpectedValue(root, ["ok", "success"], out code, "result") ||
+ HasUnexpectedValue(root, ["0"], out code, "code"),
+ PushProviders.Oppo =>
+ HasUnexpectedValue(root, ["0"], out code, "code"),
+ PushProviders.Vivo =>
+ HasUnexpectedValue(root, ["0"], out code, "result", "code"),
+ PushProviders.Meizu =>
+ HasUnexpectedValue(root, ["200"], out code, "code"),
+ _ => false,
+ };
+ if (!failed && TryString(root, out var error, "error", "error_description") &&
+ !string.IsNullOrWhiteSpace(error))
+ {
+ code = error;
+ failed = true;
+ }
+ if (!failed) return null;
+
+ var normalized = body.ToLowerInvariant();
+ var retryable = normalized.Contains("rate limit") || normalized.Contains("too many") ||
+ normalized.Contains("frequency") || normalized.Contains("system busy") ||
+ normalized.Contains("try again");
+ return new PushSendResult(
+ false,
+ retryable,
+ LooksLikeInvalidToken(normalized),
+ ErrorCode: $"provider_{NormalizeCode(code)}",
+ ErrorMessage: Trim(body));
+ }
+
+ private static PushSendResult FromFailure(HttpResponseMessage response, string body)
+ {
+ var normalized = body.ToLowerInvariant();
+ var retryable = response.StatusCode == HttpStatusCode.TooManyRequests ||
+ (int)response.StatusCode >= 500;
+ TimeSpan? retryAfter = response.Headers.RetryAfter?.Delta;
+ return new(false, retryable, LooksLikeInvalidToken(normalized),
+ ErrorCode: $"http_{(int)response.StatusCode}",
+ ErrorMessage: Trim(body), RetryAfter: retryAfter);
+ }
+
+ private string? FreshAccessToken(string flavor) =>
+ accessTokens.TryGetValue(flavor, out var cached) &&
+ cached.ExpiresAt > DateTime.UtcNow.AddMinutes(2)
+ ? cached.Token
+ : null;
+
+ private HttpClient Client() => httpClientFactory.CreateClient("PushProviders");
+ private string? Value(string flavor, string key) =>
+ configuration[$"Push:Providers:{Provider}:{flavor}:{key}"];
+ private string Channel(string flavor, string category) =>
+ Value(flavor, $"Channels:{category}") ?? $"jizhi_{category}";
+
+ private static HttpRequestMessage JsonRequest(HttpMethod method, string url, object body) => new(method, url)
+ {
+ Content = new StringContent(JsonSerializer.Serialize(body), Encoding.UTF8, "application/json"),
+ };
+
+ private static string PayloadJson(PushEnvelope message) => JsonSerializer.Serialize(new
+ {
+ v = 1,
+ messageId = message.MessageId,
+ category = message.Category,
+ action = message.Action,
+ entityId = message.EntityId,
+ });
+
+ private static string IntentUri(string packageName, PushEnvelope message)
+ {
+ var entity = message.EntityId is null ? "" : $"&entityId={Uri.EscapeDataString(message.EntityId)}";
+ return $"miaoji://push/open?messageId={Uri.EscapeDataString(message.MessageId)}" +
+ $"&category={Uri.EscapeDataString(message.Category)}&action={Uri.EscapeDataString(message.Action)}{entity}";
+ }
+
+ private static int StableNotificationId(string messageId)
+ {
+ var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(messageId));
+ return BitConverter.ToInt32(bytes, 0) & int.MaxValue;
+ }
+
+ private static string Sha256Hex(string value) =>
+ Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(value))).ToLowerInvariant();
+ private static string Md5Hex(string value) =>
+ Convert.ToHexString(MD5.HashData(Encoding.UTF8.GetBytes(value))).ToLowerInvariant();
+ private static string Trim(string value) => value.Length <= 400 ? value : value[..400];
+
+ private static bool HasUnexpectedValue(
+ JsonElement root,
+ string[] accepted,
+ out string? value,
+ params string[] names)
+ {
+ foreach (var name in names)
+ {
+ if (!TryString(root, out value, name)) continue;
+ return !accepted.Contains(value!);
+ }
+ value = null;
+ return false;
+ }
+
+ private static bool LooksLikeInvalidToken(string normalized) =>
+ normalized.Contains("invalid token") || normalized.Contains("invalid reg") ||
+ normalized.Contains("registration_id_invalid") || normalized.Contains("target invalid") ||
+ normalized.Contains("pushid") && normalized.Contains("invalid");
+
+ private static string NormalizeCode(string? value)
+ {
+ if (string.IsNullOrWhiteSpace(value)) return "rejected";
+ var normalized = new string(value.Where(character => char.IsLetterOrDigit(character) || character == '_')
+ .Take(48).ToArray());
+ return string.IsNullOrEmpty(normalized) ? "rejected" : normalized.ToLowerInvariant();
+ }
+
+ private static bool TryString(JsonElement root, out string? value, params string[] names)
+ {
+ foreach (var name in names)
+ {
+ if (root.ValueKind == JsonValueKind.Object && root.TryGetProperty(name, out var element))
+ {
+ value = element.ValueKind == JsonValueKind.String ? element.GetString() : element.ToString();
+ if (!string.IsNullOrWhiteSpace(value)) return true;
+ }
+ }
+ value = null;
+ return false;
+ }
+
+ private static bool TryNestedString(JsonElement root, out string? value, string parent, string child)
+ {
+ if (root.ValueKind == JsonValueKind.Object && root.TryGetProperty(parent, out var nested))
+ return TryString(nested, out value, child);
+ value = null;
+ return false;
+ }
+
+ private static int? TryInt(JsonElement root, params string[] names)
+ {
+ foreach (var name in names)
+ {
+ if (!root.TryGetProperty(name, out var value)) continue;
+ if (value.TryGetInt32(out var parsed)) return parsed;
+ if (int.TryParse(value.ToString(), out parsed)) return parsed;
+ }
+ return null;
+ }
+
+ private sealed record CachedAccessToken(string Token, DateTime ExpiresAt);
+}
diff --git a/backend/MiaoJiZhang.Api/Services/PushTokenProtector.cs b/backend/MiaoJiZhang.Api/Services/PushTokenProtector.cs
new file mode 100644
index 0000000..ab26b85
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/Services/PushTokenProtector.cs
@@ -0,0 +1,67 @@
+using System.Security.Cryptography;
+using System.Text;
+
+namespace MiaoJiZhang.Api.Services;
+
+public sealed class PushTokenProtector(IConfiguration configuration)
+{
+ private readonly byte[]? key = ReadKey(configuration["Push:TokenEncryptionKey"]);
+
+ public bool IsConfigured => key is { Length: 32 };
+
+ public string Protect(string value)
+ {
+ if (key is null)
+ throw new InvalidOperationException("Push__TokenEncryptionKey must be a base64-encoded 32-byte key");
+
+ var plaintext = Encoding.UTF8.GetBytes(value);
+ var nonce = RandomNumberGenerator.GetBytes(12);
+ var tag = new byte[16];
+ var ciphertext = new byte[plaintext.Length];
+ using var aes = new AesGcm(key, tag.Length);
+ aes.Encrypt(nonce, plaintext, ciphertext, tag);
+
+ var envelope = new byte[nonce.Length + tag.Length + ciphertext.Length];
+ Buffer.BlockCopy(nonce, 0, envelope, 0, nonce.Length);
+ Buffer.BlockCopy(tag, 0, envelope, nonce.Length, tag.Length);
+ Buffer.BlockCopy(ciphertext, 0, envelope, nonce.Length + tag.Length, ciphertext.Length);
+ return Convert.ToBase64String(envelope);
+ }
+
+ public string Unprotect(string value)
+ {
+ if (key is null)
+ throw new InvalidOperationException("Push__TokenEncryptionKey must be a base64-encoded 32-byte key");
+
+ var envelope = Convert.FromBase64String(value);
+ if (envelope.Length < 29) throw new CryptographicException("Invalid push token envelope");
+ var nonce = envelope.AsSpan(0, 12);
+ var tag = envelope.AsSpan(12, 16);
+ var ciphertext = envelope.AsSpan(28);
+ var plaintext = new byte[ciphertext.Length];
+ using var aes = new AesGcm(key, tag.Length);
+ aes.Decrypt(nonce, ciphertext, tag, plaintext);
+ return Encoding.UTF8.GetString(plaintext);
+ }
+
+ public static string Hash(string value) =>
+ Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(value)));
+
+ public static string CreateUnbindToken() =>
+ Convert.ToBase64String(RandomNumberGenerator.GetBytes(32))
+ .TrimEnd('=').Replace('+', '-').Replace('/', '_');
+
+ private static byte[]? ReadKey(string? value)
+ {
+ if (string.IsNullOrWhiteSpace(value)) return null;
+ try
+ {
+ var parsed = Convert.FromBase64String(value);
+ return parsed.Length == 32 ? parsed : null;
+ }
+ catch (FormatException)
+ {
+ return null;
+ }
+ }
+}
diff --git a/backend/MiaoJiZhang.Api/appsettings.json b/backend/MiaoJiZhang.Api/appsettings.json
index d27d5a3..91f1909 100644
--- a/backend/MiaoJiZhang.Api/appsettings.json
+++ b/backend/MiaoJiZhang.Api/appsettings.json
@@ -18,5 +18,17 @@
"AllowedHosts": "*",
"Admin": {
"Key": ""
- }
+ },
+ "Push": {
+ "Enabled": false,
+ "TokenEncryptionKey": "",
+ "Providers": {
+ "huawei": { "production": { "Enabled": false }, "internal": { "Enabled": false } },
+ "honor": { "production": { "Enabled": false }, "internal": { "Enabled": false } },
+ "xiaomi": { "production": { "Enabled": false }, "internal": { "Enabled": false } },
+ "oppo": { "production": { "Enabled": false }, "internal": { "Enabled": false } },
+ "vivo": { "production": { "Enabled": false }, "internal": { "Enabled": false } },
+ "meizu": { "production": { "Enabled": false }, "internal": { "Enabled": false } }
+ }
+ }
}
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-C3PMIHdp.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-C3PMIHdp.js
deleted file mode 100644
index aac42ec..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-C3PMIHdp.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{n as g,r as _,t as v}from"./EditOutlined-CeylGsUo.js";import{t as y}from"./api-BV_Zb8mM.js";var b={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},x=t({__name:`Avatars`,setup(t){let x=a([]),S=a(!0),C=a(!1),w=a(null),T=a({key:``,name:``,speechTic:``,imageUrl:``,isEnabled:!0}),E=[{title:`Key`,dataIndex:`key`,key:`key`,width:90},{title:`默认名`,dataIndex:`defaultName`,key:`name`,width:100},{title:`口癖`,dataIndex:`speechTic`,key:`tic`,width:80},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(D);async function D(){S.value=!0;try{x.value=await y.avatars()}finally{S.value=!1}}function O(){w.value=null,T.value={key:``,name:``,speechTic:``,imageUrl:``,isEnabled:!0},C.value=!0}function k(e){w.value=e,T.value={key:e.key,name:e.defaultName,speechTic:e.speechTic,imageUrl:e.imageUrl||``,isEnabled:e.isEnabled},C.value=!0}async function A(){let e={...T.value,imageUrl:T.value.imageUrl||null};w.value?await y.updateAvatar(w.value.id,e):await y.createAvatar(e),c.success(w.value?`已更新`:`已创建`),C.value=!1,D()}async function j(e){await y.deleteAvatar(e),c.success(`已删除`),D()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),y=e(`a-popconfirm`),D=e(`a-table`),M=e(`a-input`),N=e(`a-form-item`),P=e(`a-col`),F=e(`a-row`),I=e(`a-switch`),L=e(`a-form`),R=e(`a-modal`);return r(),u(d,null,[s(`div`,b,[i[7]||=s(`h2`,null,`AI 形象管理`,-1),o(a,{type:`primary`,onClick:O},{default:n(()=>[o(l(_)),i[6]||=m(` 新建形象`,-1)]),_:1})]),o(D,{columns:E,dataSource:x.value,loading:S.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`on`?(r(),p(c,{key:0,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>k(t)},{default:n(()=>[o(l(v))]),_:1},8,[`onClick`]),o(y,{title:`确定删除?`,onConfirm:e=>j(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(g))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(R,{open:C.value,"onUpdate:open":i[5]||=e=>C.value=e,title:w.value?`编辑形象`:`新建形象`,onOk:A,width:500},{default:n(()=>[o(L,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(F,{gutter:12},{default:n(()=>[o(P,{span:12},{default:n(()=>[o(N,{label:`Key`},{default:n(()=>[o(M,{value:T.value.key,"onUpdate:value":i[0]||=e=>T.value.key=e,placeholder:`cat`},null,8,[`value`])]),_:1})]),_:1}),o(P,{span:12},{default:n(()=>[o(N,{label:`默认名`},{default:n(()=>[o(M,{value:T.value.name,"onUpdate:value":i[1]||=e=>T.value.name=e,placeholder:`小账喵`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(N,{label:`口癖后缀`},{default:n(()=>[o(M,{value:T.value.speechTic,"onUpdate:value":i[2]||=e=>T.value.speechTic=e,placeholder:`喵 / 汪 / 留空=无口癖`},null,8,[`value`]),i[8]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},`口癖跟随形象——决策 20`,-1)]),_:1}),o(N,{label:`头像图片 URL`},{default:n(()=>[o(M,{value:T.value.imageUrl,"onUpdate:value":i[3]||=e=>T.value.imageUrl=e,placeholder:`可选,CDN 地址`},null,8,[`value`])]),_:1}),o(N,{label:`是否启用`},{default:n(()=>[o(I,{checked:T.value.isEnabled,"onUpdate:checked":i[4]||=e=>T.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-MuMOZ3tF.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-MuMOZ3tF.js
deleted file mode 100644
index 2fb9b07..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-MuMOZ3tF.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{n as g,r as _,t as v}from"./EditOutlined-CeylGsUo.js";import{t as y}from"./api-C4vz6nB3.js";var b={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},x=t({__name:`Avatars`,setup(t){let x=a([]),S=a(!0),C=a(!1),w=a(null),T=a({key:``,name:``,speechTic:``,imageUrl:``,isEnabled:!0}),E=[{title:`Key`,dataIndex:`key`,key:`key`,width:90},{title:`默认名`,dataIndex:`defaultName`,key:`name`,width:100},{title:`口癖`,dataIndex:`speechTic`,key:`tic`,width:80},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(D);async function D(){S.value=!0;try{x.value=await y.avatars()}finally{S.value=!1}}function O(){w.value=null,T.value={key:``,name:``,speechTic:``,imageUrl:``,isEnabled:!0},C.value=!0}function k(e){w.value=e,T.value={key:e.key,name:e.defaultName,speechTic:e.speechTic,imageUrl:e.imageUrl||``,isEnabled:e.isEnabled},C.value=!0}async function A(){let e={...T.value,imageUrl:T.value.imageUrl||null};w.value?await y.updateAvatar(w.value.id,e):await y.createAvatar(e),c.success(w.value?`已更新`:`已创建`),C.value=!1,D()}async function j(e){await y.deleteAvatar(e),c.success(`已删除`),D()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),y=e(`a-popconfirm`),D=e(`a-table`),M=e(`a-input`),N=e(`a-form-item`),P=e(`a-col`),F=e(`a-row`),I=e(`a-switch`),L=e(`a-form`),R=e(`a-modal`);return r(),u(d,null,[s(`div`,b,[i[7]||=s(`h2`,null,`AI 形象管理`,-1),o(a,{type:`primary`,onClick:O},{default:n(()=>[o(l(_)),i[6]||=m(` 新建形象`,-1)]),_:1})]),o(D,{columns:E,dataSource:x.value,loading:S.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`on`?(r(),p(c,{key:0,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>k(t)},{default:n(()=>[o(l(v))]),_:1},8,[`onClick`]),o(y,{title:`确定删除?`,onConfirm:e=>j(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(g))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(R,{open:C.value,"onUpdate:open":i[5]||=e=>C.value=e,title:w.value?`编辑形象`:`新建形象`,onOk:A,width:500},{default:n(()=>[o(L,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(F,{gutter:12},{default:n(()=>[o(P,{span:12},{default:n(()=>[o(N,{label:`Key`},{default:n(()=>[o(M,{value:T.value.key,"onUpdate:value":i[0]||=e=>T.value.key=e,placeholder:`cat`},null,8,[`value`])]),_:1})]),_:1}),o(P,{span:12},{default:n(()=>[o(N,{label:`默认名`},{default:n(()=>[o(M,{value:T.value.name,"onUpdate:value":i[1]||=e=>T.value.name=e,placeholder:`小账喵`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(N,{label:`口癖后缀`},{default:n(()=>[o(M,{value:T.value.speechTic,"onUpdate:value":i[2]||=e=>T.value.speechTic=e,placeholder:`喵 / 汪 / 留空=无口癖`},null,8,[`value`]),i[8]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},`口癖跟随形象——决策 20`,-1)]),_:1}),o(N,{label:`头像图片 URL`},{default:n(()=>[o(M,{value:T.value.imageUrl,"onUpdate:value":i[3]||=e=>T.value.imageUrl=e,placeholder:`可选,CDN 地址`},null,8,[`value`])]),_:1}),o(N,{label:`是否启用`},{default:n(()=>[o(I,{checked:T.value.isEnabled,"onUpdate:checked":i[4]||=e=>T.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-_cLWzrux.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-_cLWzrux.js
new file mode 100644
index 0000000..d6b47fe
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/Avatars-_cLWzrux.js
@@ -0,0 +1 @@
+import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{n as g,t as _}from"./EditOutlined-h6ScL3Qz.js";import{t as v}from"./DeleteOutlined-yVoeJ3Fd.js";import{t as y}from"./api-wmB-hCXT.js";var b={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},x=t({__name:`Avatars`,setup(t){let x=a([]),S=a(!0),C=a(!1),w=a(null),T=a({key:``,name:``,speechTic:``,imageUrl:``,isEnabled:!0}),E=[{title:`Key`,dataIndex:`key`,key:`key`,width:90},{title:`默认名`,dataIndex:`defaultName`,key:`name`,width:100},{title:`口癖`,dataIndex:`speechTic`,key:`tic`,width:80},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(D);async function D(){S.value=!0;try{x.value=await y.avatars()}finally{S.value=!1}}function O(){w.value=null,T.value={key:``,name:``,speechTic:``,imageUrl:``,isEnabled:!0},C.value=!0}function k(e){w.value=e,T.value={key:e.key,name:e.defaultName,speechTic:e.speechTic,imageUrl:e.imageUrl||``,isEnabled:e.isEnabled},C.value=!0}async function A(){let e={...T.value,imageUrl:T.value.imageUrl||null};w.value?await y.updateAvatar(w.value.id,e):await y.createAvatar(e),c.success(w.value?`已更新`:`已创建`),C.value=!1,D()}async function j(e){await y.deleteAvatar(e),c.success(`已删除`),D()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),y=e(`a-popconfirm`),D=e(`a-table`),M=e(`a-input`),N=e(`a-form-item`),P=e(`a-col`),F=e(`a-row`),I=e(`a-switch`),L=e(`a-form`),R=e(`a-modal`);return r(),u(d,null,[s(`div`,b,[i[7]||=s(`h2`,null,`AI 形象管理`,-1),o(a,{type:`primary`,onClick:O},{default:n(()=>[o(l(g)),i[6]||=m(` 新建形象`,-1)]),_:1})]),o(D,{columns:E,dataSource:x.value,loading:S.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`on`?(r(),p(c,{key:0,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>k(t)},{default:n(()=>[o(l(_))]),_:1},8,[`onClick`]),o(y,{title:`确定删除?`,onConfirm:e=>j(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(v))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(R,{open:C.value,"onUpdate:open":i[5]||=e=>C.value=e,title:w.value?`编辑形象`:`新建形象`,onOk:A,width:500},{default:n(()=>[o(L,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(F,{gutter:12},{default:n(()=>[o(P,{span:12},{default:n(()=>[o(N,{label:`Key`},{default:n(()=>[o(M,{value:T.value.key,"onUpdate:value":i[0]||=e=>T.value.key=e,placeholder:`cat`},null,8,[`value`])]),_:1})]),_:1}),o(P,{span:12},{default:n(()=>[o(N,{label:`默认名`},{default:n(()=>[o(M,{value:T.value.name,"onUpdate:value":i[1]||=e=>T.value.name=e,placeholder:`小账喵`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(N,{label:`口癖后缀`},{default:n(()=>[o(M,{value:T.value.speechTic,"onUpdate:value":i[2]||=e=>T.value.speechTic=e,placeholder:`喵 / 汪 / 留空=无口癖`},null,8,[`value`]),i[8]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},`口癖跟随形象——决策 20`,-1)]),_:1}),o(N,{label:`头像图片 URL`},{default:n(()=>[o(M,{value:T.value.imageUrl,"onUpdate:value":i[3]||=e=>T.value.imageUrl=e,placeholder:`可选,CDN 地址`},null,8,[`value`])]),_:1}),o(N,{label:`是否启用`},{default:n(()=>[o(I,{checked:T.value.isEnabled,"onUpdate:checked":i[4]||=e=>T.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-B71XpYgR.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-B71XpYgR.js
deleted file mode 100644
index 9e29dcb..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-B71XpYgR.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,bn as l,fn as u,gn as d,or as f,vn as p,xn as m,zn as h}from"./config-provider-q7ATIdCu.js";import{t as g}from"./api-BV_Zb8mM.js";var _={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`20px`}},v={style:{display:`flex`,"justify-content":`space-between`,"align-items":`flex-start`}},y={style:{"font-size":`13px`,"font-weight":`600`,"margin-bottom":`2px`}},b={style:{color:`#999`,"font-size":`11px`,"margin-bottom":`6px`}},x={key:0,style:{"margin-top":`6px`,"font-size":`18px`}},S={key:0,style:{color:`#00B386`}},C={key:1,style:{color:`#ccc`}},w={key:1,style:{"margin-top":`6px`,"font-size":`16px`,"font-weight":`700`,"word-break":`break-all`}},T={style:{color:`#999`,"font-size":`10px`,"margin-top":`4px`}},E={style:{"margin-bottom":`10px`,color:`#999`,"font-size":`12px`}},D=t({__name:`Configs`,setup(t){let D=a([]),O=a(!0),k={"brand.app_name":{label:`App 名称`,desc:`App 内展示名称`,type:`text`},"brand.slogan":{label:`App 标语`,desc:`启动页/关于页口号`,type:`text`},"brand.logo_url":{label:`Logo URL`,desc:`品牌 Logo 远程地址`,type:`url`},"limit.daily_ai_messages":{label:`全局日限额`,desc:`全站每日 AI 消息上限`,type:`number`},"limit.daily_ai_messages_per_user":{label:`每人日限额`,desc:`单用户每日 AI 消息上限`,type:`number`},"limit.max_monthly_budget":{label:`最大月预算`,desc:`用户可设置的最高月预算金额`,type:`number`},"feature.ocr_enabled":{label:`OCR 拍照识别`,desc:`是否开放 OCR 小票识别功能`,type:`switch`},"feature.voice_enabled":{label:`语音输入`,desc:`是否开放语音记账功能`,type:`switch`},"feature.ai_auto_book":{label:`AI 自动入账`,desc:`AI 识别记账意图后是否直接写库`,type:`switch`},"feature.sticker_enabled":{label:`表情包功能`,desc:`是否开放表情包面板和 AI 表情回复`,type:`switch`},"system.default_ledger_name":{label:`默认账本名`,desc:`新用户注册时自动创建`,type:`text`},"system.max_ledgers_per_user":{label:`每人最多账本`,desc:`单用户可创建账本上限`,type:`number`}},A=[{key:`brand`,label:`品牌`,prefix:`brand.`},{key:`limit`,label:`限额`,prefix:`limit.`},{key:`feature`,label:`功能开关`,prefix:`feature.`},{key:`system`,label:`系统`,prefix:`system.`}],j=d(()=>{let e={};for(let t of D.value){let n=A.find(e=>t.key.startsWith(e.prefix))?.key||`other`;e[n]||(e[n]=[]),e[n].push(t)}return e});i(M);async function M(){O.value=!0;try{D.value=await g.configs()}finally{O.value=!1}}let N=a(!1),P=a(null),F=a(``),I=d(()=>P.value?k[P.value.key]:null);function L(e){P.value=e,F.value=e.value,N.value=!0}async function R(){P.value&&(await g.updateConfig(P.value.id,F.value),c.success(`已更新 ${P.value.key}`),N.value=!1,M())}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),d=e(`a-card`),g=e(`a-col`),D=e(`a-row`),O=e(`a-tab-pane`),z=e(`a-tabs`),B=e(`a-switch`),V=e(`a-input-number`),H=e(`a-select`),U=e(`a-input`),W=e(`a-modal`);return r(),l(`div`,null,[s(`div`,_,[i[6]||=s(`h2`,{style:{margin:`0`}},`品牌配置`,-1),o(a,{onClick:M},{default:n(()=>[...i[5]||=[m(`刷新`,-1)]]),_:1})]),o(z,null,{default:n(()=>[(r(),l(u,null,h(A,e=>o(O,{key:e.key,tab:e.label},{default:n(()=>[o(D,{gutter:[16,12]},{default:n(()=>[(r(!0),l(u,null,h(j.value[e.key],e=>(r(),p(g,{key:e.id,span:8},{default:n(()=>[o(d,{size:`small`,hoverable:``,onClick:t=>L(e)},{default:n(()=>[s(`div`,v,[s(`div`,null,[s(`div`,y,f(k[e.key]?.label||e.key),1),s(`div`,b,f(k[e.key]?.desc||``),1)]),o(c,{color:`blue`,style:{"margin-left":`8px`}},{default:n(()=>[m(`v`+f(e.version),1)]),_:2},1024)]),k[e.key]?.type===`switch`?(r(),l(`div`,x,[e.value===`true`?(r(),l(`span`,S,`✅ 已开启`)):(r(),l(`span`,C,`❌ 已关闭`))])):(r(),l(`div`,w,f(e.key.includes(`key`)?`••••••••`:e.value||`(空)`),1)),s(`div`,T,f(e.updatedAt?.split(`T`)[0]),1)]),_:2},1032,[`onClick`])]),_:2},1024))),128))]),_:2},1024)]),_:2},1032,[`tab`])),64))]),_:1}),o(W,{open:N.value,"onUpdate:open":i[4]||=e=>N.value=e,title:`编辑配置: ${P.value?.key}`,onOk:R,width:440},{default:n(()=>[s(`div`,E,f(I.value?.desc),1),I.value?.type===`switch`?(r(),p(B,{key:0,checked:F.value===`true`,onChange:i[0]||=e=>F.value=String(e),"checked-children":`开启`,"un-checked-children":`关闭`},null,8,[`checked`])):I.value?.type===`number`?(r(),p(V,{key:1,value:F.value,"onUpdate:value":i[1]||=e=>F.value=e,style:{width:`100%`}},null,8,[`value`])):I.value?.type===`select`&&I.value.options?(r(),p(H,{key:2,value:F.value,"onUpdate:value":i[2]||=e=>F.value=e,style:{width:`100%`},options:I.value.options.map(e=>({value:e,label:e}))},null,8,[`value`,`options`])):(r(),p(U,{key:3,value:F.value,"onUpdate:value":i[3]||=e=>F.value=e},null,8,[`value`]))]),_:1},8,[`open`,`title`])])}}});export{D as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-CBb0vA8L.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-CBb0vA8L.js
deleted file mode 100644
index 4a5f031..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-CBb0vA8L.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,bn as l,fn as u,gn as d,or as f,vn as p,xn as m,zn as h}from"./config-provider-q7ATIdCu.js";import{t as g}from"./api-C4vz6nB3.js";var _={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`20px`}},v={style:{display:`flex`,"justify-content":`space-between`,"align-items":`flex-start`}},y={style:{"font-size":`13px`,"font-weight":`600`,"margin-bottom":`2px`}},b={style:{color:`#999`,"font-size":`11px`,"margin-bottom":`6px`}},x={key:0,style:{"margin-top":`6px`,"font-size":`18px`}},S={key:0,style:{color:`#00B386`}},C={key:1,style:{color:`#ccc`}},w={key:1,style:{"margin-top":`6px`,"font-size":`16px`,"font-weight":`700`,"word-break":`break-all`}},T={style:{color:`#999`,"font-size":`10px`,"margin-top":`4px`}},E={style:{"margin-bottom":`10px`,color:`#999`,"font-size":`12px`}},D=t({__name:`Configs`,setup(t){let D=a([]),O=a(!0),k={"brand.app_name":{label:`App 名称`,desc:`App 内展示名称`,type:`text`},"brand.slogan":{label:`App 标语`,desc:`启动页/关于页口号`,type:`text`},"brand.logo_url":{label:`Logo URL`,desc:`品牌 Logo 远程地址`,type:`url`},"limit.daily_ai_messages":{label:`全局日限额`,desc:`全站每日 AI 消息上限`,type:`number`},"limit.daily_ai_messages_per_user":{label:`每人日限额`,desc:`单用户每日 AI 消息上限`,type:`number`},"limit.max_monthly_budget":{label:`最大月预算`,desc:`用户可设置的最高月预算金额`,type:`number`},"feature.ocr_enabled":{label:`OCR 拍照识别`,desc:`是否开放 OCR 小票识别功能`,type:`switch`},"feature.voice_enabled":{label:`语音输入`,desc:`是否开放语音记账功能`,type:`switch`},"feature.ai_auto_book":{label:`AI 自动入账`,desc:`AI 识别记账意图后是否直接写库`,type:`switch`},"feature.sticker_enabled":{label:`表情包功能`,desc:`是否开放表情包面板和 AI 表情回复`,type:`switch`},"system.default_ledger_name":{label:`默认账本名`,desc:`新用户注册时自动创建`,type:`text`},"system.max_ledgers_per_user":{label:`每人最多账本`,desc:`单用户可创建账本上限`,type:`number`}},A=[{key:`brand`,label:`品牌`,prefix:`brand.`},{key:`limit`,label:`限额`,prefix:`limit.`},{key:`feature`,label:`功能开关`,prefix:`feature.`},{key:`system`,label:`系统`,prefix:`system.`}],j=d(()=>{let e={};for(let t of D.value){let n=A.find(e=>t.key.startsWith(e.prefix))?.key||`other`;e[n]||(e[n]=[]),e[n].push(t)}return e});i(M);async function M(){O.value=!0;try{D.value=await g.configs()}finally{O.value=!1}}let N=a(!1),P=a(null),F=a(``),I=d(()=>P.value?k[P.value.key]:null);function L(e){P.value=e,F.value=e.value,N.value=!0}async function R(){P.value&&(await g.updateConfig(P.value.id,F.value),c.success(`已更新 ${P.value.key}`),N.value=!1,M())}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),d=e(`a-card`),g=e(`a-col`),D=e(`a-row`),O=e(`a-tab-pane`),z=e(`a-tabs`),B=e(`a-switch`),V=e(`a-input-number`),H=e(`a-select`),U=e(`a-input`),W=e(`a-modal`);return r(),l(`div`,null,[s(`div`,_,[i[6]||=s(`h2`,{style:{margin:`0`}},`品牌配置`,-1),o(a,{onClick:M},{default:n(()=>[...i[5]||=[m(`刷新`,-1)]]),_:1})]),o(z,null,{default:n(()=>[(r(),l(u,null,h(A,e=>o(O,{key:e.key,tab:e.label},{default:n(()=>[o(D,{gutter:[16,12]},{default:n(()=>[(r(!0),l(u,null,h(j.value[e.key],e=>(r(),p(g,{key:e.id,span:8},{default:n(()=>[o(d,{size:`small`,hoverable:``,onClick:t=>L(e)},{default:n(()=>[s(`div`,v,[s(`div`,null,[s(`div`,y,f(k[e.key]?.label||e.key),1),s(`div`,b,f(k[e.key]?.desc||``),1)]),o(c,{color:`blue`,style:{"margin-left":`8px`}},{default:n(()=>[m(`v`+f(e.version),1)]),_:2},1024)]),k[e.key]?.type===`switch`?(r(),l(`div`,x,[e.value===`true`?(r(),l(`span`,S,`✅ 已开启`)):(r(),l(`span`,C,`❌ 已关闭`))])):(r(),l(`div`,w,f(e.key.includes(`key`)?`••••••••`:e.value||`(空)`),1)),s(`div`,T,f(e.updatedAt?.split(`T`)[0]),1)]),_:2},1032,[`onClick`])]),_:2},1024))),128))]),_:2},1024)]),_:2},1032,[`tab`])),64))]),_:1}),o(W,{open:N.value,"onUpdate:open":i[4]||=e=>N.value=e,title:`编辑配置: ${P.value?.key}`,onOk:R,width:440},{default:n(()=>[s(`div`,E,f(I.value?.desc),1),I.value?.type===`switch`?(r(),p(B,{key:0,checked:F.value===`true`,onChange:i[0]||=e=>F.value=String(e),"checked-children":`开启`,"un-checked-children":`关闭`},null,8,[`checked`])):I.value?.type===`number`?(r(),p(V,{key:1,value:F.value,"onUpdate:value":i[1]||=e=>F.value=e,style:{width:`100%`}},null,8,[`value`])):I.value?.type===`select`&&I.value.options?(r(),p(H,{key:2,value:F.value,"onUpdate:value":i[2]||=e=>F.value=e,style:{width:`100%`},options:I.value.options.map(e=>({value:e,label:e}))},null,8,[`value`,`options`])):(r(),p(U,{key:3,value:F.value,"onUpdate:value":i[3]||=e=>F.value=e},null,8,[`value`]))]),_:1},8,[`open`,`title`])])}}});export{D as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-D-dS3WsF.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-D-dS3WsF.js
new file mode 100644
index 0000000..77a486d
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/Configs-D-dS3WsF.js
@@ -0,0 +1 @@
+import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,gn as f,or as p,vn as m,xn as h,zn as g}from"./config-provider-q7ATIdCu.js";import{t as _}from"./api-wmB-hCXT.js";import{t as v}from"./time-pIfF89ap.js";var y={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`20px`}},b={style:{display:`flex`,"justify-content":`space-between`,"align-items":`flex-start`}},x={style:{"font-size":`13px`,"font-weight":`600`,"margin-bottom":`2px`}},S={style:{color:`#999`,"font-size":`11px`,"margin-bottom":`6px`}},C={key:0,style:{"margin-top":`6px`,"font-size":`18px`}},w={key:0,style:{color:`#00B386`}},T={key:1,style:{color:`#ccc`}},E={key:1,style:{"margin-top":`6px`,"font-size":`16px`,"font-weight":`700`,"word-break":`break-all`}},D={style:{color:`#999`,"font-size":`10px`,"margin-top":`4px`}},O={style:{"margin-bottom":`10px`,color:`#999`,"font-size":`12px`}},k=t({__name:`Configs`,setup(t){let k=a([]),A=a(!0),j={"brand.app_name":{label:`App 名称`,desc:`App 内展示名称`,type:`text`},"brand.slogan":{label:`App 标语`,desc:`启动页/关于页口号`,type:`text`},"brand.logo_url":{label:`Logo URL`,desc:`品牌 Logo 远程地址`,type:`url`},"limit.daily_ai_messages":{label:`全局日限额`,desc:`全站每日 AI 消息上限`,type:`number`},"limit.daily_ai_messages_per_user":{label:`每人日限额`,desc:`单用户每日 AI 消息上限`,type:`number`},"limit.max_monthly_budget":{label:`最大月预算`,desc:`用户可设置的最高月预算金额`,type:`number`},"feature.ocr_enabled":{label:`OCR 拍照识别`,desc:`是否开放 OCR 小票识别功能`,type:`switch`},"feature.voice_enabled":{label:`语音输入`,desc:`是否开放语音记账功能`,type:`switch`},"feature.ai_auto_book":{label:`AI 自动入账`,desc:`AI 识别记账意图后是否直接写库`,type:`switch`},"feature.sticker_enabled":{label:`表情包功能`,desc:`是否开放表情包面板和 AI 表情回复`,type:`switch`},"system.default_ledger_name":{label:`默认账本名`,desc:`新用户注册时自动创建`,type:`text`},"system.max_ledgers_per_user":{label:`每人最多账本`,desc:`单用户可创建账本上限`,type:`number`}},M=[{key:`brand`,label:`品牌`,prefix:`brand.`},{key:`limit`,label:`限额`,prefix:`limit.`},{key:`feature`,label:`功能开关`,prefix:`feature.`},{key:`system`,label:`系统`,prefix:`system.`}],N=f(()=>{let e={};for(let t of k.value){let n=M.find(e=>t.key.startsWith(e.prefix))?.key||`other`;e[n]||(e[n]=[]),e[n].push(t)}return e});i(P);async function P(){A.value=!0;try{k.value=await _.configs()}finally{A.value=!1}}let F=a(!1),I=a(null),L=a(``),R=f(()=>I.value?j[I.value.key]:null);function z(e){I.value=e,L.value=e.value,F.value=!0}async function B(){I.value&&(await _.updateConfig(I.value.id,L.value),c.success(`已更新 ${I.value.key}`),F.value=!1,P())}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),f=e(`a-card`),_=e(`a-col`),k=e(`a-row`),A=e(`a-tab-pane`),V=e(`a-tabs`),H=e(`a-switch`),U=e(`a-input-number`),W=e(`a-select`),G=e(`a-input`),K=e(`a-modal`);return r(),u(`div`,null,[s(`div`,y,[i[6]||=s(`h2`,{style:{margin:`0`}},`品牌配置`,-1),o(a,{onClick:P},{default:n(()=>[...i[5]||=[h(`刷新`,-1)]]),_:1})]),o(V,null,{default:n(()=>[(r(),u(d,null,g(M,e=>o(A,{key:e.key,tab:e.label},{default:n(()=>[o(k,{gutter:[16,12]},{default:n(()=>[(r(!0),u(d,null,g(N.value[e.key],e=>(r(),m(_,{key:e.id,span:8},{default:n(()=>[o(f,{size:`small`,hoverable:``,onClick:t=>z(e)},{default:n(()=>[s(`div`,b,[s(`div`,null,[s(`div`,x,p(j[e.key]?.label||e.key),1),s(`div`,S,p(j[e.key]?.desc||``),1)]),o(c,{color:`blue`,style:{"margin-left":`8px`}},{default:n(()=>[h(`v`+p(e.version),1)]),_:2},1024)]),j[e.key]?.type===`switch`?(r(),u(`div`,C,[e.value===`true`?(r(),u(`span`,w,`✅ 已开启`)):(r(),u(`span`,T,`❌ 已关闭`))])):(r(),u(`div`,E,p(e.key.includes(`key`)?`••••••••`:e.value||`(空)`),1)),s(`div`,D,p(l(v)(e.updatedAt)),1)]),_:2},1032,[`onClick`])]),_:2},1024))),128))]),_:2},1024)]),_:2},1032,[`tab`])),64))]),_:1}),o(K,{open:F.value,"onUpdate:open":i[4]||=e=>F.value=e,title:`编辑配置: ${I.value?.key}`,onOk:B,width:440},{default:n(()=>[s(`div`,O,p(R.value?.desc),1),R.value?.type===`switch`?(r(),m(H,{key:0,checked:L.value===`true`,onChange:i[0]||=e=>L.value=String(e),"checked-children":`开启`,"un-checked-children":`关闭`},null,8,[`checked`])):R.value?.type===`number`?(r(),m(U,{key:1,value:L.value,"onUpdate:value":i[1]||=e=>L.value=e,style:{width:`100%`}},null,8,[`value`])):R.value?.type===`select`&&R.value.options?(r(),m(W,{key:2,value:L.value,"onUpdate:value":i[2]||=e=>L.value=e,style:{width:`100%`},options:R.value.options.map(e=>({value:e,label:e}))},null,8,[`value`,`options`])):(r(),m(G,{key:3,value:L.value,"onUpdate:value":i[3]||=e=>L.value=e},null,8,[`value`]))]),_:1},8,[`open`,`title`])])}}});export{k as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-CQIRtW2A.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-CQIRtW2A.js
deleted file mode 100644
index 5c47810..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-CQIRtW2A.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,ar as c,bn as l,fn as u,h as d,y as f,yn as p}from"./config-provider-q7ATIdCu.js";import{t as m}from"./TeamOutlined-0klbs6LP.js";import{t as h}from"./api-C4vz6nB3.js";var g={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z`}}]},name:`dollar`,theme:`outlined`};function _(e){for(var t=1;t{try{f.value=await h.dashboard()}finally{g.value=!1}}),(t,i)=>{let a=e(`a-spin`),h=e(`a-statistic`),_=e(`a-card`),v=e(`a-col`),b=e(`a-row`),x=e(`a-progress`),S=e(`a-alert`);return g.value?(r(),l(`div`,I,[o(a,{size:`large`})])):f.value?(r(),l(u,{key:1},[i[1]||=s(`h2`,{style:{"margin-bottom":`18px`}},`📊 仪表盘`,-1),o(b,{gutter:14,style:{"margin-bottom":`14px`}},{default:n(()=>[o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`总用户`,value:f.value.users.total},{prefix:n(()=>[o(c(m))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`今日活跃`,value:f.value.users.activeToday},{prefix:n(()=>[o(c(F))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`总账单`,value:f.value.transactions.total},null,8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 记账`,value:f.value.transactions.aiBooked},{prefix:n(()=>[o(c(j))]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1}),o(b,{gutter:14,style:{"margin-bottom":`14px`}},{default:n(()=>[o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 准确率`,value:f.value.aiAccuracy,suffix:`%`,"value-style":{color:f.value.aiAccuracy>=70?`#00B386`:`#F0642D`}},{prefix:n(()=>[o(c(d))]),_:1},8,[`value`,`value-style`]),o(x,{percent:f.value.aiAccuracy,showInfo:!1,size:`small`,strokeColor:f.value.aiAccuracy>=70?`#00B386`:`#F0642D`,style:{"margin-top":`6px`}},null,8,[`percent`,`strokeColor`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`撤销率`,value:f.value.undoRate,suffix:`%`,"value-style":{color:f.value.undoRate<=20?`#00B386`:`#F5A623`}},{prefix:n(()=>[o(c(D))]),_:1},8,[`value`,`value-style`]),o(x,{percent:f.value.undoRate,showInfo:!1,size:`small`,strokeColor:f.value.undoRate<=20?`#00B386`:`#F5A623`,style:{"margin-top":`6px`}},null,8,[`percent`,`strokeColor`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 消息总数`,value:f.value.aiMessages},{prefix:n(()=>[o(c(C))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`估算 Token 成本`,value:(f.value.aiMessages*500*.01/1e3).toFixed(2),prefix:`$`},{prefix:n(()=>[o(c(y))]),_:1},8,[`value`]),i[0]||=s(`div`,{style:{"font-size":`10px`,color:`#999`,"margin-top":`4px`}},`基于 500 token/条 × $0.01/1K 估算`,-1)]),_:1})]),_:1})]),_:1}),o(b,{gutter:14},{default:n(()=>[o(v,{span:12},{default:n(()=>[o(S,{type:`info`,"show-icon":``,message:`AI 准确率 = (AI记账总数 − 撤销数) / AI记账总数。撤销率高 → 需要调整 AI 性格 Prompt 模板。`})]),_:1}),o(v,{span:12},{default:n(()=>[o(S,{type:`warning`,"show-icon":``,message:`注意:撤销率、AI 消息数、估算成本是运营核心指标,建议每周跟踪,及时优化 Prompt 和限流阈值。`})]),_:1})]),_:1})],64)):p(``,!0)}}});export{L as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-Bz-m6xqH.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-CuG4yPoO.js
similarity index 99%
rename from backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-Bz-m6xqH.js
rename to backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-CuG4yPoO.js
index 0d7e917..d50c94b 100644
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-Bz-m6xqH.js
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/Dashboard-CuG4yPoO.js
@@ -1 +1 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,ar as c,bn as l,fn as u,h as d,y as f,yn as p}from"./config-provider-q7ATIdCu.js";import{t as m}from"./TeamOutlined-0klbs6LP.js";import{t as h}from"./api-BV_Zb8mM.js";var g={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z`}}]},name:`dollar`,theme:`outlined`};function _(e){for(var t=1;t{try{f.value=await h.dashboard()}finally{g.value=!1}}),(t,i)=>{let a=e(`a-spin`),h=e(`a-statistic`),_=e(`a-card`),v=e(`a-col`),b=e(`a-row`),x=e(`a-progress`),S=e(`a-alert`);return g.value?(r(),l(`div`,I,[o(a,{size:`large`})])):f.value?(r(),l(u,{key:1},[i[1]||=s(`h2`,{style:{"margin-bottom":`18px`}},`📊 仪表盘`,-1),o(b,{gutter:14,style:{"margin-bottom":`14px`}},{default:n(()=>[o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`总用户`,value:f.value.users.total},{prefix:n(()=>[o(c(m))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`今日活跃`,value:f.value.users.activeToday},{prefix:n(()=>[o(c(F))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`总账单`,value:f.value.transactions.total},null,8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 记账`,value:f.value.transactions.aiBooked},{prefix:n(()=>[o(c(j))]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1}),o(b,{gutter:14,style:{"margin-bottom":`14px`}},{default:n(()=>[o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 准确率`,value:f.value.aiAccuracy,suffix:`%`,"value-style":{color:f.value.aiAccuracy>=70?`#00B386`:`#F0642D`}},{prefix:n(()=>[o(c(d))]),_:1},8,[`value`,`value-style`]),o(x,{percent:f.value.aiAccuracy,showInfo:!1,size:`small`,strokeColor:f.value.aiAccuracy>=70?`#00B386`:`#F0642D`,style:{"margin-top":`6px`}},null,8,[`percent`,`strokeColor`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`撤销率`,value:f.value.undoRate,suffix:`%`,"value-style":{color:f.value.undoRate<=20?`#00B386`:`#F5A623`}},{prefix:n(()=>[o(c(D))]),_:1},8,[`value`,`value-style`]),o(x,{percent:f.value.undoRate,showInfo:!1,size:`small`,strokeColor:f.value.undoRate<=20?`#00B386`:`#F5A623`,style:{"margin-top":`6px`}},null,8,[`percent`,`strokeColor`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 消息总数`,value:f.value.aiMessages},{prefix:n(()=>[o(c(C))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`估算 Token 成本`,value:(f.value.aiMessages*500*.01/1e3).toFixed(2),prefix:`$`},{prefix:n(()=>[o(c(y))]),_:1},8,[`value`]),i[0]||=s(`div`,{style:{"font-size":`10px`,color:`#999`,"margin-top":`4px`}},`基于 500 token/条 × $0.01/1K 估算`,-1)]),_:1})]),_:1})]),_:1}),o(b,{gutter:14},{default:n(()=>[o(v,{span:12},{default:n(()=>[o(S,{type:`info`,"show-icon":``,message:`AI 准确率 = (AI记账总数 − 撤销数) / AI记账总数。撤销率高 → 需要调整 AI 性格 Prompt 模板。`})]),_:1}),o(v,{span:12},{default:n(()=>[o(S,{type:`warning`,"show-icon":``,message:`注意:撤销率、AI 消息数、估算成本是运营核心指标,建议每周跟踪,及时优化 Prompt 和限流阈值。`})]),_:1})]),_:1})],64)):p(``,!0)}}});export{L as default};
\ No newline at end of file
+import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,ar as c,bn as l,fn as u,h as d,y as f,yn as p}from"./config-provider-q7ATIdCu.js";import{t as m}from"./TeamOutlined-0klbs6LP.js";import{t as h}from"./api-wmB-hCXT.js";var g={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z`}}]},name:`dollar`,theme:`outlined`};function _(e){for(var t=1;t{try{f.value=await h.dashboard()}finally{g.value=!1}}),(t,i)=>{let a=e(`a-spin`),h=e(`a-statistic`),_=e(`a-card`),v=e(`a-col`),b=e(`a-row`),x=e(`a-progress`),S=e(`a-alert`);return g.value?(r(),l(`div`,I,[o(a,{size:`large`})])):f.value?(r(),l(u,{key:1},[i[1]||=s(`h2`,{style:{"margin-bottom":`18px`}},`📊 仪表盘`,-1),o(b,{gutter:14,style:{"margin-bottom":`14px`}},{default:n(()=>[o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`总用户`,value:f.value.users.total},{prefix:n(()=>[o(c(m))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`今日活跃`,value:f.value.users.activeToday},{prefix:n(()=>[o(c(F))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`总账单`,value:f.value.transactions.total},null,8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 记账`,value:f.value.transactions.aiBooked},{prefix:n(()=>[o(c(j))]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1}),o(b,{gutter:14,style:{"margin-bottom":`14px`}},{default:n(()=>[o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 准确率`,value:f.value.aiAccuracy,suffix:`%`,"value-style":{color:f.value.aiAccuracy>=70?`#00B386`:`#F0642D`}},{prefix:n(()=>[o(c(d))]),_:1},8,[`value`,`value-style`]),o(x,{percent:f.value.aiAccuracy,showInfo:!1,size:`small`,strokeColor:f.value.aiAccuracy>=70?`#00B386`:`#F0642D`,style:{"margin-top":`6px`}},null,8,[`percent`,`strokeColor`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`撤销率`,value:f.value.undoRate,suffix:`%`,"value-style":{color:f.value.undoRate<=20?`#00B386`:`#F5A623`}},{prefix:n(()=>[o(c(D))]),_:1},8,[`value`,`value-style`]),o(x,{percent:f.value.undoRate,showInfo:!1,size:`small`,strokeColor:f.value.undoRate<=20?`#00B386`:`#F5A623`,style:{"margin-top":`6px`}},null,8,[`percent`,`strokeColor`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`AI 消息总数`,value:f.value.aiMessages},{prefix:n(()=>[o(c(C))]),_:1},8,[`value`])]),_:1})]),_:1}),o(v,{span:6},{default:n(()=>[o(_,{size:`small`},{default:n(()=>[o(h,{title:`估算 Token 成本`,value:(f.value.aiMessages*500*.01/1e3).toFixed(2),prefix:`$`},{prefix:n(()=>[o(c(y))]),_:1},8,[`value`]),i[0]||=s(`div`,{style:{"font-size":`10px`,color:`#999`,"margin-top":`4px`}},`基于 500 token/条 × $0.01/1K 估算`,-1)]),_:1})]),_:1})]),_:1}),o(b,{gutter:14},{default:n(()=>[o(v,{span:12},{default:n(()=>[o(S,{type:`info`,"show-icon":``,message:`AI 准确率 = (AI记账总数 − 撤销数) / AI记账总数。撤销率高 → 需要调整 AI 性格 Prompt 模板。`})]),_:1}),o(v,{span:12},{default:n(()=>[o(S,{type:`warning`,"show-icon":``,message:`注意:撤销率、AI 消息数、估算成本是运营核心指标,建议每周跟踪,及时优化 Prompt 和限流阈值。`})]),_:1})]),_:1})],64)):p(``,!0)}}});export{L as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/DeleteOutlined-yVoeJ3Fd.js b/backend/MiaoJiZhang.Api/wwwroot/assets/DeleteOutlined-yVoeJ3Fd.js
new file mode 100644
index 0000000..110ef95
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/DeleteOutlined-yVoeJ3Fd.js
@@ -0,0 +1 @@
+import{Sn as e,y as t}from"./config-provider-q7ATIdCu.js";var n={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z`}}]},name:`delete`,theme:`outlined`};function r(e){for(var t=1;t{let a=e(`a-button`),c=e(`a-tag`),y=e(`a-popconfirm`),D=e(`a-table`),M=e(`a-input`),N=e(`a-form-item`),P=e(`a-col`),F=e(`a-row`),I=e(`a-textarea`),L=e(`a-switch`),R=e(`a-form`),z=e(`a-modal`);return r(),u(d,null,[s(`div`,b,[i[8]||=s(`h2`,null,`AI 性格管理`,-1),o(a,{type:`primary`,onClick:O},{default:n(()=>[o(l(g)),i[7]||=m(` 新建性格`,-1)]),_:1})]),o(D,{columns:E,dataSource:x.value,loading:S.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`on`?(r(),p(c,{key:0,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>k(t)},{default:n(()=>[o(l(_))]),_:1},8,[`onClick`]),o(y,{title:`确定删除?`,onConfirm:e=>j(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(v))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(z,{open:C.value,"onUpdate:open":i[6]||=e=>C.value=e,title:w.value?`编辑性格`:`新建性格`,onOk:A,width:560},{default:n(()=>[o(R,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(F,{gutter:12},{default:n(()=>[o(P,{span:12},{default:n(()=>[o(N,{label:`Key`},{default:n(()=>[o(M,{value:T.value.key,"onUpdate:value":i[0]||=e=>T.value.key=e,placeholder:`sassy_cat`},null,8,[`value`])]),_:1})]),_:1}),o(P,{span:12},{default:n(()=>[o(N,{label:`名称`},{default:n(()=>[o(M,{value:T.value.name,"onUpdate:value":i[1]||=e=>T.value.name=e,placeholder:`毒舌猫娘`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(N,{label:`描述`},{default:n(()=>[o(M,{value:T.value.description,"onUpdate:value":i[2]||=e=>T.value.description=e,placeholder:`一句话描述`},null,8,[`value`])]),_:1}),o(N,{label:`示例台词`},{default:n(()=>[o(M,{value:T.value.sampleLine,"onUpdate:value":i[3]||=e=>T.value.sampleLine=e,placeholder:`这句会展示给用户选性格时看`},null,8,[`value`])]),_:1}),o(N,{label:`Prompt 模板`},{default:n(()=>[o(I,{value:T.value.promptTemplate,"onUpdate:value":i[4]||=e=>T.value.promptTemplate=e,rows:5,placeholder:`系统提示词模板,支持 {tic} 占位符,此字段可调不发版`},null,8,[`value`]),i[9]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},[m(` ⚡ 调这个不需要发版,前端实时生效。可用占位符:`),s(`code`,null,`{'{tic}'}`),m(` = 口癖(喵/汪/无) `)],-1)]),_:1}),o(N,{label:`是否启用`},{default:n(()=>[o(L,{checked:T.value.isEnabled,"onUpdate:checked":i[5]||=e=>T.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Personas-CyY-EFRT.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Personas-CyY-EFRT.js
deleted file mode 100644
index edd0595..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Personas-CyY-EFRT.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{n as g,r as _,t as v}from"./EditOutlined-CeylGsUo.js";import{t as y}from"./api-C4vz6nB3.js";var b={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},x=t({__name:`Personas`,setup(t){let x=a([]),S=a(!0),C=a(!1),w=a(null),T=a({key:``,name:``,description:``,sampleLine:``,promptTemplate:``,isEnabled:!0}),E=[{title:`Key`,dataIndex:`key`,key:`key`,width:110},{title:`名称`,dataIndex:`name`,key:`name`,width:100},{title:`描述`,dataIndex:`description`,key:`desc`,ellipsis:!0},{title:`版本`,dataIndex:`version`,key:`ver`,width:60},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(D);async function D(){S.value=!0;try{x.value=await y.personas()}finally{S.value=!1}}function O(){w.value=null,T.value={key:``,name:``,description:``,sampleLine:``,promptTemplate:``,isEnabled:!0},C.value=!0}function k(e){w.value=e,T.value={key:e.key,name:e.name,description:e.description,sampleLine:e.sampleLine,promptTemplate:e.promptTemplate,isEnabled:e.isEnabled},C.value=!0}async function A(){let e={...T.value,isEnabled:T.value.isEnabled};w.value?await y.updatePersona(w.value.id,e):await y.createPersona(e),c.success(w.value?`已更新(版本号+1)`:`已创建`),C.value=!1,D()}async function j(e){await y.deletePersona(e),c.success(`已删除`),D()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),y=e(`a-popconfirm`),D=e(`a-table`),M=e(`a-input`),N=e(`a-form-item`),P=e(`a-col`),F=e(`a-row`),I=e(`a-textarea`),L=e(`a-switch`),R=e(`a-form`),z=e(`a-modal`);return r(),u(d,null,[s(`div`,b,[i[8]||=s(`h2`,null,`AI 性格管理`,-1),o(a,{type:`primary`,onClick:O},{default:n(()=>[o(l(_)),i[7]||=m(` 新建性格`,-1)]),_:1})]),o(D,{columns:E,dataSource:x.value,loading:S.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`on`?(r(),p(c,{key:0,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>k(t)},{default:n(()=>[o(l(v))]),_:1},8,[`onClick`]),o(y,{title:`确定删除?`,onConfirm:e=>j(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(g))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(z,{open:C.value,"onUpdate:open":i[6]||=e=>C.value=e,title:w.value?`编辑性格`:`新建性格`,onOk:A,width:560},{default:n(()=>[o(R,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(F,{gutter:12},{default:n(()=>[o(P,{span:12},{default:n(()=>[o(N,{label:`Key`},{default:n(()=>[o(M,{value:T.value.key,"onUpdate:value":i[0]||=e=>T.value.key=e,placeholder:`sassy_cat`},null,8,[`value`])]),_:1})]),_:1}),o(P,{span:12},{default:n(()=>[o(N,{label:`名称`},{default:n(()=>[o(M,{value:T.value.name,"onUpdate:value":i[1]||=e=>T.value.name=e,placeholder:`毒舌猫娘`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(N,{label:`描述`},{default:n(()=>[o(M,{value:T.value.description,"onUpdate:value":i[2]||=e=>T.value.description=e,placeholder:`一句话描述`},null,8,[`value`])]),_:1}),o(N,{label:`示例台词`},{default:n(()=>[o(M,{value:T.value.sampleLine,"onUpdate:value":i[3]||=e=>T.value.sampleLine=e,placeholder:`这句会展示给用户选性格时看`},null,8,[`value`])]),_:1}),o(N,{label:`Prompt 模板`},{default:n(()=>[o(I,{value:T.value.promptTemplate,"onUpdate:value":i[4]||=e=>T.value.promptTemplate=e,rows:5,placeholder:`系统提示词模板,支持 {tic} 占位符,此字段可调不发版`},null,8,[`value`]),i[9]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},[m(` ⚡ 调这个不需要发版,前端实时生效。可用占位符:`),s(`code`,null,`{'{tic}'}`),m(` = 口癖(喵/汪/无) `)],-1)]),_:1}),o(N,{label:`是否启用`},{default:n(()=>[o(L,{checked:T.value.isEnabled,"onUpdate:checked":i[5]||=e=>T.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Personas-DuQ1Lxau.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Personas-DuQ1Lxau.js
deleted file mode 100644
index 750596a..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Personas-DuQ1Lxau.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{n as g,r as _,t as v}from"./EditOutlined-CeylGsUo.js";import{t as y}from"./api-BV_Zb8mM.js";var b={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},x=t({__name:`Personas`,setup(t){let x=a([]),S=a(!0),C=a(!1),w=a(null),T=a({key:``,name:``,description:``,sampleLine:``,promptTemplate:``,isEnabled:!0}),E=[{title:`Key`,dataIndex:`key`,key:`key`,width:110},{title:`名称`,dataIndex:`name`,key:`name`,width:100},{title:`描述`,dataIndex:`description`,key:`desc`,ellipsis:!0},{title:`版本`,dataIndex:`version`,key:`ver`,width:60},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(D);async function D(){S.value=!0;try{x.value=await y.personas()}finally{S.value=!1}}function O(){w.value=null,T.value={key:``,name:``,description:``,sampleLine:``,promptTemplate:``,isEnabled:!0},C.value=!0}function k(e){w.value=e,T.value={key:e.key,name:e.name,description:e.description,sampleLine:e.sampleLine,promptTemplate:e.promptTemplate,isEnabled:e.isEnabled},C.value=!0}async function A(){let e={...T.value,isEnabled:T.value.isEnabled};w.value?await y.updatePersona(w.value.id,e):await y.createPersona(e),c.success(w.value?`已更新(版本号+1)`:`已创建`),C.value=!1,D()}async function j(e){await y.deletePersona(e),c.success(`已删除`),D()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),y=e(`a-popconfirm`),D=e(`a-table`),M=e(`a-input`),N=e(`a-form-item`),P=e(`a-col`),F=e(`a-row`),I=e(`a-textarea`),L=e(`a-switch`),R=e(`a-form`),z=e(`a-modal`);return r(),u(d,null,[s(`div`,b,[i[8]||=s(`h2`,null,`AI 性格管理`,-1),o(a,{type:`primary`,onClick:O},{default:n(()=>[o(l(_)),i[7]||=m(` 新建性格`,-1)]),_:1})]),o(D,{columns:E,dataSource:x.value,loading:S.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`on`?(r(),p(c,{key:0,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>k(t)},{default:n(()=>[o(l(v))]),_:1},8,[`onClick`]),o(y,{title:`确定删除?`,onConfirm:e=>j(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(g))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(z,{open:C.value,"onUpdate:open":i[6]||=e=>C.value=e,title:w.value?`编辑性格`:`新建性格`,onOk:A,width:560},{default:n(()=>[o(R,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(F,{gutter:12},{default:n(()=>[o(P,{span:12},{default:n(()=>[o(N,{label:`Key`},{default:n(()=>[o(M,{value:T.value.key,"onUpdate:value":i[0]||=e=>T.value.key=e,placeholder:`sassy_cat`},null,8,[`value`])]),_:1})]),_:1}),o(P,{span:12},{default:n(()=>[o(N,{label:`名称`},{default:n(()=>[o(M,{value:T.value.name,"onUpdate:value":i[1]||=e=>T.value.name=e,placeholder:`毒舌猫娘`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(N,{label:`描述`},{default:n(()=>[o(M,{value:T.value.description,"onUpdate:value":i[2]||=e=>T.value.description=e,placeholder:`一句话描述`},null,8,[`value`])]),_:1}),o(N,{label:`示例台词`},{default:n(()=>[o(M,{value:T.value.sampleLine,"onUpdate:value":i[3]||=e=>T.value.sampleLine=e,placeholder:`这句会展示给用户选性格时看`},null,8,[`value`])]),_:1}),o(N,{label:`Prompt 模板`},{default:n(()=>[o(I,{value:T.value.promptTemplate,"onUpdate:value":i[4]||=e=>T.value.promptTemplate=e,rows:5,placeholder:`系统提示词模板,支持 {tic} 占位符,此字段可调不发版`},null,8,[`value`]),i[9]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},[m(` ⚡ 调这个不需要发版,前端实时生效。可用占位符:`),s(`code`,null,`{'{tic}'}`),m(` = 口癖(喵/汪/无) `)],-1)]),_:1}),o(N,{label:`是否启用`},{default:n(()=>[o(L,{checked:T.value.isEnabled,"onUpdate:checked":i[5]||=e=>T.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/PushCampaigns-BINkv7-Z.js b/backend/MiaoJiZhang.Api/wwwroot/assets/PushCampaigns-BINkv7-Z.js
new file mode 100644
index 0000000..0e2ef64
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/PushCampaigns-BINkv7-Z.js
@@ -0,0 +1 @@
+import{i as e,t}from"./dayjs.min-CeCVojfG.js";import{Bn as n,Cn as r,Kn as i,Ln as a,Pn as o,Qn as s,Sn as c,Zn as l,_n as u,a as d,ar as f,bn as p,fn as m,gn as h,or as g,vn as _,xn as v,y,yn as b,zn as x}from"./config-provider-q7ATIdCu.js";import{n as ee,t as te}from"./EditOutlined-h6ScL3Qz.js";import{t as ne}from"./ReloadOutlined-CVrW_3-b.js";import{t as S}from"./api-wmB-hCXT.js";var C={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z`}}]},name:`send`,theme:`outlined`};function w(e){for(var t=1;t{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(r({__name:`PushCampaigns`,setup(e){let t=s(`campaigns`),r=s([]),y=s(0),C=s(1),w=s(!1),T=s(null),D=s(!1),O=s(!1),k=s(null),A=s(!1),Se=s(!1),j=s(null),M=s(null),N=l(Ae()),P=s([]),Ce=s(!1),we=s(``),F=s(!1),Te=s(!1),I=l({deviceId:void 0,title:``,body:``,category:`system`,action:`none`,entityId:``}),Ee={system:`系统通知`,budget:`预算提醒`,operations:`运营通知`},L={none:`仅打开应用`,home:`首页`,budget:`预算页面`,update:`版本更新`},R={huawei:`华为`,honor:`荣耀`,xiaomi:`小米`,oppo:`OPPO`,vivo:`vivo`,meizu:`魅族`},z={draft:{label:`草稿`,color:`default`},scheduled:{label:`已定时`,color:`blue`},queued:{label:`待发送`,color:`cyan`},sending:{label:`发送中`,color:`processing`},completed:{label:`已完成`,color:`success`},partially_failed:{label:`部分失败`,color:`warning`},cancelled:{label:`已取消`,color:`default`}},De=[{title:`内容`,key:`content`,width:310},{title:`目标`,key:`target`,width:180},{title:`状态`,key:`state`,width:100},{title:`投递结果`,key:`deliveries`,width:220},{title:`时间`,key:`time`,width:180},{title:`操作`,key:`actions`,width:210}],Oe=[{title:`设备`,key:`device`,width:220},{title:`用户`,key:`user`,width:150},{title:`厂商`,key:`provider`,width:90},{title:`应用`,key:`app`,width:170},{title:`状态`,key:`state`,width:120},{title:`最后活跃`,key:`time`,width:165},{title:`操作`,key:`actions`,width:100}],ke=h(()=>N.title.trim()&&N.body.trim());o(async()=>{await Promise.all([V(),H()])});function Ae(){return{title:``,body:``,category:`system`,action:`none`,entityId:``,flavor:`production`,provider:void 0,minVersionCode:void 0,maxVersionCode:void 0,targetUserId:void 0,ttlSeconds:259200}}function B(){return{title:N.title.trim(),body:N.body.trim(),category:N.category,action:N.action,entityId:N.entityId.trim()||null,flavor:N.flavor,provider:N.provider||null,minVersionCode:N.minVersionCode??null,maxVersionCode:N.maxVersionCode??null,targetUserId:N.targetUserId??null,ttlSeconds:N.ttlSeconds}}function je(e){Object.assign(N,e)}async function V(){w.value=!0;try{let e=await S.pushCampaigns({page:C.value,limit:xe});r.value=e.list,y.value=e.total}finally{w.value=!1}}async function H(){D.value=!0;try{T.value=await S.pushHealth()}catch(e){d.error(K(e,`推送服务状态读取失败`))}finally{D.value=!1}}async function U(){Ce.value=!0;try{P.value=await S.pushDevices({search:we.value.trim()||void 0,limit:100})}finally{Ce.value=!1}}function Me(){k.value=null,j.value=null,M.value=null,je(Ae()),O.value=!0}function Ne(e){k.value=e.id,j.value=null,M.value=e.scheduledAt?(0,re.default)(W(e.scheduledAt)):null,je({title:e.title,body:e.body,category:e.category,action:e.action,entityId:e.entityId||``,flavor:e.flavor,provider:e.provider||void 0,minVersionCode:e.minVersionCode??void 0,maxVersionCode:e.maxVersionCode??void 0,targetUserId:e.targetUserId??void 0,ttlSeconds:e.ttlSeconds}),O.value=!0}async function Pe(){Se.value=!0;try{let e=await S.estimatePushCampaign(B());j.value=e.devices}catch(e){d.error(K(e,`目标设备估算失败`))}finally{Se.value=!1}}async function Fe(e){if(!N.title.trim()||!N.body.trim()){d.warning(`请填写推送标题和正文`);return}if(e===`scheduled`&&(!M.value||!M.value.isAfter((0,re.default)().add(5,`second`)))){d.warning(`定时发送时间必须晚于当前时间`);return}A.value=!0;try{let t=k.value?await S.updatePushCampaign(k.value,B()):await S.createPushCampaign(B());e!==`draft`&&await S.sendPushCampaign(t.id,e===`scheduled`?M.value?.toISOString():void 0),O.value=!1,d.success(e===`draft`?`草稿已保存`:e===`scheduled`?`定时任务已保存`:`推送已进入发送队列`),await V()}catch(e){d.error(K(e,`推送活动保存失败`))}finally{A.value=!1}}async function Ie(e){try{await S.sendPushCampaign(e.id),d.success(`推送已进入发送队列`),await V()}catch(e){d.error(K(e,`推送启动失败`))}}async function Le(e){try{await S.cancelPushCampaign(e.id),d.success(`推送活动已取消`),await V()}catch(e){d.error(K(e,`取消失败`))}}async function Re(e){P.value.length||await U(),Object.assign(I,{deviceId:e?.id,title:``,body:``,category:`system`,action:`none`,entityId:``}),F.value=!0}async function ze(){if(!I.deviceId||!I.title.trim()||!I.body.trim()){d.warning(`请选择设备并填写推送内容`);return}Te.value=!0;try{await S.testPush({...I,title:I.title.trim(),body:I.body.trim(),entityId:I.entityId.trim()||null}),F.value=!1,d.success(`测试推送已进入发送队列`),await V()}catch(e){d.error(K(e,`测试推送失败`))}finally{Te.value=!1}}function Be(e){t.value=e,e===`devices`&&!P.value.length&&U()}function Ve(e){return e.state===`draft`||e.state===`scheduled`}function He(e){return[`draft`,`scheduled`,`queued`].includes(e.state)&&!e.startedAt}function Ue(e){return z[e.state]||{label:e.state,color:`default`}}function W(e){return/(?:Z|[+-]\d{2}:?\d{2})$/i.test(e)?e:`${e}Z`}function G(e){if(!e)return`-`;let t=new Date(W(e));return Number.isNaN(t.getTime())?`-`:new Intl.DateTimeFormat(`zh-CN`,{timeZone:`Asia/Shanghai`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(t).replaceAll(`/`,`-`)}function K(e,t){let n=e.response?.data;return n?.message||n?.detail||n?.error||t}return(e,o)=>{let s=n(`a-button`),l=n(`a-space`),d=n(`a-alert`),h=n(`a-badge`),S=n(`a-descriptions-item`),z=n(`a-tag`),Ae=n(`a-tooltip`),B=n(`a-descriptions`),je=n(`a-spin`),H=n(`a-popconfirm`),W=n(`a-table`),K=n(`a-tab-pane`),We=n(`a-input-search`),Ge=n(`a-tabs`),q=n(`a-input`),J=n(`a-form-item`),Y=n(`a-col`),X=n(`a-select-option`),Z=n(`a-select`),Q=n(`a-input-number`),$=n(`a-row`),Ke=n(`a-textarea`),qe=n(`a-segmented`),Je=n(`a-divider`),Ye=n(`a-date-picker`),Xe=n(`a-form`),Ze=n(`a-modal`);return a(),p(m,null,[u(`div`,ie,[o[28]||=u(`div`,null,[u(`h2`,null,`推送管理`),u(`div`,{class:`subtle`},`厂商通道配置、活动投递和设备联调`)],-1),c(l,null,{default:i(()=>[c(s,{onClick:o[0]||=e=>Re()},{default:i(()=>[c(f(E)),o[26]||=v(`测试设备`,-1)]),_:1}),c(s,{type:`primary`,onClick:Me},{default:i(()=>[c(f(ee)),o[27]||=v(`新建推送`,-1)]),_:1})]),_:1})]),T.value&&(!T.value.enabled||!T.value.tokenEncryptionConfigured)?(a(),_(d,{key:0,type:`warning`,"show-icon":``,style:{"margin-bottom":`14px`},message:T.value.enabled?`设备令牌加密密钥未配置`:`推送总开关未启用`,description:`完成服务端环境变量配置后再执行正式投递。`},null,8,[`message`])):b(``,!0),c(je,{spinning:D.value},{default:i(()=>[T.value?(a(),_(B,{key:0,bordered:``,size:`small`,column:4,style:{"margin-bottom":`16px`}},{default:i(()=>[c(S,{label:`服务`},{default:i(()=>[c(h,{status:T.value.enabled?`success`:`default`,text:T.value.enabled?`已启用`:`未启用`},null,8,[`status`,`text`])]),_:1}),c(S,{label:`令牌加密`},{default:i(()=>[c(h,{status:T.value.tokenEncryptionConfigured?`success`:`error`,text:T.value.tokenEncryptionConfigured?`已配置`:`缺少密钥`},null,8,[`status`,`text`])]),_:1}),(a(!0),p(m,null,x(T.value.providers,e=>(a(),_(S,{key:e.provider,label:R[e.provider]||e.provider},{default:i(()=>[c(l,{size:`small`},{default:i(()=>[(a(!0),p(m,null,x(e.environments,e=>(a(),_(Ae,{key:e.flavor,title:e.errors.join(`、`)||`配置完整`},{default:i(()=>[c(z,{color:e.enabled&&!e.errors.length?`success`:`default`},{default:i(()=>[v(g(e.flavor===`production`?`正式`:`内测`),1)]),_:2},1032,[`color`])]),_:2},1032,[`title`]))),128))]),_:2},1024)]),_:2},1032,[`label`]))),128))]),_:1})):b(``,!0)]),_:1},8,[`spinning`]),c(Ge,{"active-key":t.value,onChange:Be},{default:i(()=>[c(K,{key:`campaigns`,tab:`活动与历史`},{default:i(()=>[u(`div`,ae,[u(`span`,oe,`共 `+g(y.value)+` 个活动`,1),c(s,{size:`small`,onClick:V},{default:i(()=>[c(f(ne)),o[29]||=v(`刷新`,-1)]),_:1})]),c(W,{columns:De,"data-source":r.value,loading:w.value,"row-key":`id`,size:`small`,scroll:{x:1200},pagination:{current:C.value,pageSize:xe,total:y.value,showTotal:e=>`共 ${e} 条`,onChange:e=>{C.value=e,V()}}},{bodyCell:i(({column:e,record:t})=>[e.key===`content`?(a(),p(m,{key:0},[u(`div`,se,g(t.title),1),u(`div`,ce,g(t.body),1),c(z,null,{default:i(()=>[v(g(Ee[t.category]||t.category),1)]),_:2},1024),u(`span`,le,g(L[t.action]||t.action),1)],64)):e.key===`target`?(a(),p(m,{key:1},[u(`div`,null,g(t.flavor===`production`?`正式环境`:`内测环境`),1),u(`div`,ue,[v(g(t.provider?R[t.provider]:`全部厂商`)+` `,1),t.targetUserId?(a(),p(m,{key:0},[v(` · 用户 `+g(t.targetUserId),1)],64)):b(``,!0)]),t.minVersionCode||t.maxVersionCode?(a(),p(`div`,de,` 版本 `+g(t.minVersionCode||1)+` - `+g(t.maxVersionCode||`不限`),1)):b(``,!0)],64)):e.key===`state`?(a(),_(z,{key:2,color:Ue(t).color},{default:i(()=>[v(g(Ue(t).label),1)]),_:2},1032,[`color`])):e.key===`deliveries`?(a(),_(l,{key:3,wrap:``,size:`small`},{default:i(()=>[c(z,{color:`success`},{default:i(()=>[v(`成功 `+g(t.deliveries.accepted),1)]),_:2},1024),t.deliveries.queued+t.deliveries.sending?(a(),_(z,{key:0},{default:i(()=>[v(`处理中 `+g(t.deliveries.queued+t.deliveries.sending),1)]),_:2},1024)):b(``,!0),t.deliveries.failed?(a(),_(z,{key:1,color:`error`},{default:i(()=>[v(`失败 `+g(t.deliveries.failed),1)]),_:2},1024)):b(``,!0),t.deliveries.skipped?(a(),_(z,{key:2},{default:i(()=>[v(`跳过 `+g(t.deliveries.skipped),1)]),_:2},1024)):b(``,!0)]),_:2},1024)):e.key===`time`?(a(),p(m,{key:4},[u(`div`,null,g(t.scheduledAt?`计划 `+G(t.scheduledAt):G(t.createdAt)),1),t.completedAt?(a(),p(`div`,fe,`完成 `+g(G(t.completedAt)),1)):b(``,!0)],64)):e.key===`actions`?(a(),_(l,{key:5,size:`small`},{default:i(()=>[Ve(t)?(a(),_(s,{key:0,size:`small`,onClick:e=>Ne(t)},{default:i(()=>[c(f(te)),o[30]||=v(`编辑`,-1)]),_:1},8,[`onClick`])):b(``,!0),t.state===`draft`||t.state===`scheduled`?(a(),_(H,{key:1,title:`立即开始投递这条推送?`,onConfirm:e=>Ie(t)},{default:i(()=>[c(s,{size:`small`,type:`primary`},{default:i(()=>[c(f(E)),o[31]||=v(`发送`,-1)]),_:1})]),_:1},8,[`onConfirm`])):b(``,!0),He(t)?(a(),_(H,{key:2,title:`确定取消该推送活动?`,onConfirm:e=>Le(t)},{default:i(()=>[c(s,{size:`small`,danger:``},{default:i(()=>[...o[32]||=[v(`取消`,-1)]]),_:1})]),_:1},8,[`onConfirm`])):b(``,!0)]),_:2},1024)):b(``,!0)]),_:1},8,[`data-source`,`loading`,`pagination`])]),_:1}),c(K,{key:`devices`,tab:`注册设备`},{default:i(()=>[u(`div`,pe,[c(We,{value:we.value,"onUpdate:value":o[1]||=e=>we.value=e,placeholder:`用户名或安装 ID`,style:{width:`280px`},onSearch:U},null,8,[`value`]),c(s,{size:`small`,onClick:U},{default:i(()=>[c(f(ne)),o[33]||=v(`刷新`,-1)]),_:1})]),c(W,{columns:Oe,"data-source":P.value,loading:Ce.value,"row-key":`id`,size:`small`,scroll:{x:1050},pagination:!1},{bodyCell:i(({column:e,record:t})=>[e.key===`device`?(a(),p(m,{key:0},[u(`div`,me,`#`+g(t.id)+` · ...`+g(t.tokenSuffix),1),u(`div`,he,g(t.packageName),1)],64)):e.key===`user`?(a(),p(m,{key:1},[u(`div`,null,g(t.username),1),u(`div`,ge,`用户 `+g(t.userId),1)],64)):e.key===`provider`?(a(),p(m,{key:2},[v(g(R[t.provider]||t.provider),1)],64)):e.key===`app`?(a(),p(m,{key:3},[u(`div`,null,g(t.appVersion)+` (`+g(t.versionCode)+`)`,1),c(z,null,{default:i(()=>[v(g(t.flavor===`production`?`正式`:`内测`),1)]),_:2},1024)],64)):e.key===`state`?(a(),p(m,{key:4},[c(h,{status:t.isActive&&t.notificationsAllowed?`success`:`default`,text:t.isActive&&t.notificationsAllowed?`可投递`:`不可投递`},null,8,[`status`,`text`]),t.disabledReason?(a(),p(`div`,_e,g(t.disabledReason),1)):b(``,!0)],64)):e.key===`time`?(a(),p(m,{key:5},[v(g(G(t.lastSeenAt)),1)],64)):e.key===`actions`?(a(),_(s,{key:6,size:`small`,disabled:!t.isActive||!t.notificationsAllowed,onClick:e=>Re(t)},{default:i(()=>[c(f(E)),o[34]||=v(`测试`,-1)]),_:1},8,[`disabled`,`onClick`])):b(``,!0)]),_:1},8,[`data-source`,`loading`])]),_:1})]),_:1},8,[`active-key`]),c(Ze,{open:O.value,"onUpdate:open":o[18]||=e=>O.value=e,title:k.value?`编辑推送`:`新建推送`,width:760,footer:null,"mask-closable":!1},{default:i(()=>[c(Xe,{layout:`vertical`},{default:i(()=>[c($,{gutter:12},{default:i(()=>[c(Y,{span:12},{default:i(()=>[c(J,{label:`标题`,required:``},{default:i(()=>[c(q,{value:N.title,"onUpdate:value":o[2]||=e=>N.title=e,maxlength:80,"show-count":``},null,8,[`value`])]),_:1})]),_:1}),c(Y,{span:6},{default:i(()=>[c(J,{label:`分类`,required:``},{default:i(()=>[c(Z,{value:N.category,"onUpdate:value":o[3]||=e=>N.category=e},{default:i(()=>[(a(),p(m,null,x(Ee,(e,t)=>c(X,{key:t,value:t},{default:i(()=>[v(g(e),1)]),_:2},1032,[`value`])),64))]),_:1},8,[`value`])]),_:1})]),_:1}),c(Y,{span:6},{default:i(()=>[c(J,{label:`有效期`},{default:i(()=>[c(Q,{value:N.ttlSeconds,"onUpdate:value":o[4]||=e=>N.ttlSeconds=e,min:60,max:604800,style:{width:`100%`},"addon-after":`秒`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),c(J,{label:`正文`,required:``},{default:i(()=>[c(Ke,{value:N.body,"onUpdate:value":o[5]||=e=>N.body=e,maxlength:240,"show-count":``,rows:3},null,8,[`value`])]),_:1}),c($,{gutter:12},{default:i(()=>[c(Y,{span:8},{default:i(()=>[c(J,{label:`点击动作`},{default:i(()=>[c(Z,{value:N.action,"onUpdate:value":o[6]||=e=>N.action=e},{default:i(()=>[(a(),p(m,null,x(L,(e,t)=>c(X,{key:t,value:t},{default:i(()=>[v(g(e),1)]),_:2},1032,[`value`])),64))]),_:1},8,[`value`])]),_:1})]),_:1}),c(Y,{span:8},{default:i(()=>[c(J,{label:`关联对象 ID`},{default:i(()=>[c(q,{value:N.entityId,"onUpdate:value":o[7]||=e=>N.entityId=e,disabled:N.action===`none`||N.action===`home`},null,8,[`value`,`disabled`])]),_:1})]),_:1}),c(Y,{span:8},{default:i(()=>[c(J,{label:`环境`},{default:i(()=>[c(qe,{value:N.flavor,"onUpdate:value":o[8]||=e=>N.flavor=e,block:``,options:[{label:`正式`,value:`production`},{label:`内测`,value:`internal`}]},null,8,[`value`])]),_:1})]),_:1})]),_:1}),c(Je,{orientation:`left`},{default:i(()=>[...o[35]||=[v(`目标范围`,-1)]]),_:1}),c($,{gutter:12},{default:i(()=>[c(Y,{span:8},{default:i(()=>[c(J,{label:`厂商`},{default:i(()=>[c(Z,{value:N.provider,"onUpdate:value":o[9]||=e=>N.provider=e,"allow-clear":``,placeholder:`全部厂商`},{default:i(()=>[(a(),p(m,null,x(R,(e,t)=>c(X,{key:t,value:t},{default:i(()=>[v(g(e),1)]),_:2},1032,[`value`])),64))]),_:1},8,[`value`])]),_:1})]),_:1}),c(Y,{span:8},{default:i(()=>[c(J,{label:`指定用户 ID`},{default:i(()=>[c(Q,{value:N.targetUserId,"onUpdate:value":o[10]||=e=>N.targetUserId=e,min:1,style:{width:`100%`}},null,8,[`value`])]),_:1})]),_:1}),c(Y,{span:4},{default:i(()=>[c(J,{label:`最低版本`},{default:i(()=>[c(Q,{value:N.minVersionCode,"onUpdate:value":o[11]||=e=>N.minVersionCode=e,min:1,style:{width:`100%`}},null,8,[`value`])]),_:1})]),_:1}),c(Y,{span:4},{default:i(()=>[c(J,{label:`最高版本`},{default:i(()=>[c(Q,{value:N.maxVersionCode,"onUpdate:value":o[12]||=e=>N.maxVersionCode=e,min:1,style:{width:`100%`}},null,8,[`value`])]),_:1})]),_:1})]),_:1}),u(`div`,ve,[c(s,{loading:Se.value,disabled:!ke.value,onClick:Pe},{default:i(()=>[...o[36]||=[v(`估算目标设备`,-1)]]),_:1},8,[`loading`,`disabled`]),j.value===null?b(``,!0):(a(),p(`span`,ye,[o[37]||=v(`当前条件下预计投递 `,-1),u(`strong`,null,g(j.value),1),o[38]||=v(` 台设备`,-1)]))]),c(J,{label:`定时发送时间`},{default:i(()=>[c(Ye,{value:M.value,"onUpdate:value":o[13]||=e=>M.value=e,"show-time":``,format:`YYYY-MM-DD HH:mm`,"disabled-date":e=>e.isBefore(f(re.default)().startOf(`day`)),style:{width:`100%`},placeholder:`仅在选择定时发送时使用`},null,8,[`value`,`disabled-date`])]),_:1}),u(`div`,be,[c(s,{onClick:o[14]||=e=>O.value=!1},{default:i(()=>[...o[39]||=[v(`关闭`,-1)]]),_:1}),c(s,{loading:A.value,onClick:o[15]||=e=>Fe(`draft`)},{default:i(()=>[...o[40]||=[v(`保存草稿`,-1)]]),_:1},8,[`loading`]),c(s,{loading:A.value,disabled:!M.value,onClick:o[16]||=e=>Fe(`scheduled`)},{default:i(()=>[...o[41]||=[v(`定时发送`,-1)]]),_:1},8,[`loading`,`disabled`]),c(H,{title:`确认立即投递?`,onConfirm:o[17]||=e=>Fe(`now`)},{default:i(()=>[c(s,{type:`primary`,loading:A.value},{default:i(()=>[c(f(E)),o[42]||=v(`立即发送`,-1)]),_:1},8,[`loading`])]),_:1})])]),_:1})]),_:1},8,[`open`,`title`]),c(Ze,{open:F.value,"onUpdate:open":o[25]||=e=>F.value=e,title:`单设备测试`,"confirm-loading":Te.value,"ok-text":`发送测试`,"cancel-text":`取消`,onOk:ze},{default:i(()=>[c(Xe,{layout:`vertical`},{default:i(()=>[c(J,{label:`设备`,required:``},{default:i(()=>[c(Z,{value:I.deviceId,"onUpdate:value":o[19]||=e=>I.deviceId=e,"show-search":``,"option-filter-prop":`label`,placeholder:`选择可投递设备`},{default:i(()=>[(a(!0),p(m,null,x(P.value.filter(e=>e.isActive&&e.notificationsAllowed),e=>(a(),_(X,{key:e.id,value:e.id,label:`${e.username} ${e.provider} ${e.id}`},{default:i(()=>[v(g(e.username)+` · `+g(R[e.provider])+` · #`+g(e.id)+` · `+g(e.appVersion),1)]),_:2},1032,[`value`,`label`]))),128))]),_:1},8,[`value`])]),_:1}),c(J,{label:`标题`,required:``},{default:i(()=>[c(q,{value:I.title,"onUpdate:value":o[20]||=e=>I.title=e,maxlength:80,"show-count":``},null,8,[`value`])]),_:1}),c(J,{label:`正文`,required:``},{default:i(()=>[c(Ke,{value:I.body,"onUpdate:value":o[21]||=e=>I.body=e,maxlength:240,"show-count":``,rows:3},null,8,[`value`])]),_:1}),c($,{gutter:12},{default:i(()=>[c(Y,{span:12},{default:i(()=>[c(J,{label:`分类`},{default:i(()=>[c(Z,{value:I.category,"onUpdate:value":o[22]||=e=>I.category=e},{default:i(()=>[(a(),p(m,null,x(Ee,(e,t)=>c(X,{key:t,value:t},{default:i(()=>[v(g(e),1)]),_:2},1032,[`value`])),64))]),_:1},8,[`value`])]),_:1})]),_:1}),c(Y,{span:12},{default:i(()=>[c(J,{label:`点击动作`},{default:i(()=>[c(Z,{value:I.action,"onUpdate:value":o[23]||=e=>I.action=e},{default:i(()=>[(a(),p(m,null,x(L,(e,t)=>c(X,{key:t,value:t},{default:i(()=>[v(g(e),1)]),_:2},1032,[`value`])),64))]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1}),c(J,{label:`关联对象 ID`},{default:i(()=>[c(q,{value:I.entityId,"onUpdate:value":o[24]||=e=>I.entityId=e,disabled:I.action===`none`||I.action===`home`},null,8,[`value`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`,`confirm-loading`])],64)}}}),[[`__scopeId`,`data-v-3ceae462`]]);export{D as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/PushCampaigns-Bh-ORGkx.css b/backend/MiaoJiZhang.Api/wwwroot/assets/PushCampaigns-Bh-ORGkx.css
new file mode 100644
index 0000000..67b2ccf
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/PushCampaigns-Bh-ORGkx.css
@@ -0,0 +1 @@
+.page-header[data-v-3ceae462],.toolbar[data-v-3ceae462],.modal-actions[data-v-3ceae462],.estimate-row[data-v-3ceae462]{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-header[data-v-3ceae462]{margin-bottom:16px}.page-header h2[data-v-3ceae462]{margin:0}.toolbar[data-v-3ceae462]{margin-bottom:12px}.subtle[data-v-3ceae462]{color:#8c8c8c;font-size:12px}.campaign-title[data-v-3ceae462]{margin-bottom:3px;font-weight:600}.campaign-body[data-v-3ceae462]{color:#595959;white-space:pre-wrap;margin-bottom:6px;font-size:12px}.action-label[data-v-3ceae462]{color:#8c8c8c;font-size:12px}.mono[data-v-3ceae462]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.estimate-row[data-v-3ceae462]{justify-content:flex-start;min-height:32px;margin-bottom:16px}.modal-actions[data-v-3ceae462]{justify-content:flex-end;padding-top:4px}@media (width<=760px){.page-header[data-v-3ceae462]{flex-direction:column;align-items:flex-start}}
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-BDielewc.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-BDielewc.js
new file mode 100644
index 0000000..690c027
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-BDielewc.js
@@ -0,0 +1 @@
+import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,bn as l,fn as u,or as d,vn as f,xn as p,yn as m,zn as h}from"./config-provider-q7ATIdCu.js";import{t as g}from"./api-wmB-hCXT.js";var _={key:0,style:{"text-align":`center`,padding:`60px`}},v={style:{"font-weight":`600`}},y={style:{"font-size":`11px`,color:`#999`,"margin-top":`2px`,"white-space":`normal`}},b={style:{"font-size":`10px`,color:`#bbb`,"margin-top":`2px`,"font-family":`monospace`}},x={style:{"margin-left":`10px`,color:`#8c8c8c`}},S=t({__name:`Settings`,setup(t){let S=a({}),C=a(!0),w=a(!1),T=a(null),E=a(``),D=[`llm.protocol`,`llm.base_url`,`llm.model`,`llm.max_tokens`,`llm.temperature`],O=[`limit.daily_ai_messages`,`limit.daily_ai_messages_per_user`,`limit.max_monthly_budget`],k=[`feature.ocr_enabled`,`feature.voice_enabled`,`feature.ai_auto_book`,`feature.sticker_enabled`],A=[`permission.default.ai_enabled`],j=[`quota.default_ai_chat_limit`,`quota.default_ai_chat_period`],M=[`system.default_ledger_name`,`system.max_ledgers_per_user`,`brand.app_name`,`brand.slogan`,`brand.logo_url`],N=[{value:`chat_completions`,label:`Chat Completions`,desc:`OpenAI Chat Completions API。POST /v1/chat/completions`,endpoint:`/chat/completions`},{value:`responses`,label:`Responses`,desc:`OpenAI Responses API(新版)。POST /v1/responses`,endpoint:`/responses`},{value:`messages`,label:`Messages`,desc:`Anthropic Messages API。POST /v1/messages,用于 Claude 系列`,endpoint:`/messages`}],P={"llm.protocol":{label:`API 协议`,desc:``,type:`protocol`},"llm.base_url":{label:`API 地址`,desc:``,type:`url`},"llm.model":{label:`模型名称`,desc:``,type:`text`},"llm.max_tokens":{label:`最大输出 Token`,desc:`单次请求上限`,type:`number`},"llm.temperature":{label:`温度 (Temperature)`,desc:`0=确定 1=创意`,type:`number`},"limit.daily_ai_messages":{label:`全站每日 AI 消息上限`,desc:``,type:`number`},"limit.daily_ai_messages_per_user":{label:`每人每日 AI 消息上限`,desc:``,type:`number`},"limit.max_monthly_budget":{label:`最大月预算金额`,desc:``,type:`number`},"feature.ocr_enabled":{label:`OCR 小票识别`,desc:`拍照记账功能`,type:`switch`},"feature.voice_enabled":{label:`语音记账`,desc:`语音输入转文字`,type:`switch`},"feature.ai_auto_book":{label:`AI 自动入账`,desc:`AI 识别记账意图直接入账`,type:`switch`},"feature.sticker_enabled":{label:`表情包功能`,desc:`聊天表情包面板 + AI 表情回复`,type:`switch`},"permission.default.ai_enabled":{label:`新用户默认启用 AI`,desc:`仅影响保存后注册的新用户,现有用户权限不变`,type:`switch`},"quota.default_ai_chat_limit":{label:`新用户默认 AI 对话次数`,desc:`0 表示不限次数`,type:`number`},"quota.default_ai_chat_period":{label:`新用户默认额度周期`,desc:`按上海时区自然周期重置`,type:`period`},"system.default_ledger_name":{label:`新用户默认账本名`,desc:``,type:`text`},"system.max_ledgers_per_user":{label:`每人最多账本数`,desc:``,type:`number`},"brand.app_name":{label:`App 名称`,desc:``,type:`text`},"brand.slogan":{label:`App 标语`,desc:``,type:`text`},"brand.logo_url":{label:`Logo URL`,desc:``,type:`url`}};i(async()=>{try{let e=await g.configs(),t={};for(let n of e)t[n.key]=n;S.value=t,t[`llm.protocol`]||I(`llm.protocol`,`chat_completions`),t[`quota.default_ai_chat_limit`]||I(`quota.default_ai_chat_limit`,50),t[`quota.default_ai_chat_period`]||I(`quota.default_ai_chat_period`,`day`),L.value=F(`llm.protocol`)||`chat_completions`}finally{C.value=!1}});function F(e){let t=S.value[e];if(!t)return``;let n=P[e];return n?.type===`number`?Number(t.value)||0:n?.type===`switch`?t.value===`true`:t.value}function I(e,t){let n=String(t);S.value[e]?S.value[e].value=n:S.value[e]={id:0,key:e,value:n,version:0}}let L=a(`chat_completions`);async function R(e){I(`llm.protocol`,L.value);let t=e.filter(e=>S.value[e]).map(async e=>{let t=S.value[e];try{if(t.id>0){let e=await g.updateConfig(t.id,t.value);t&&(t.id=e.id)}else{let e=await g.createConfig(t.key,t.value);t&&(t.id=e.id)}}catch(t){c.error(e+` 保存失败: `+(t?.response?.data?.detail||t?.response?.data?.error||t.message))}});if(t.length===0){c.warning(`没有可保存的配置`);return}await Promise.all(t),c.success(`已保存 `+t.length+` 项配置`)}async function z(){w.value=!0,T.value=null,E.value=``;try{let e=await g.testLlm();T.value=e.ok,E.value=e.detail||e.error||``,e.ok?c.success(`LLM 连接正常`):c.error(e.error||`连接失败`)}catch(e){T.value=!1;let t=e?.response?.data;E.value=t?.detail||t?.error||t?.message||e.message||`未知错误`,c.error(`连接失败`)}finally{w.value=!1}}return(t,i)=>{let a=e(`a-spin`),c=e(`a-button`),g=e(`a-space`),S=e(`a-alert`),B=e(`a-radio`),V=e(`a-col`),H=e(`a-row`),U=e(`a-radio-group`),W=e(`a-descriptions-item`),G=e(`a-input`),K=e(`a-input-number`),q=e(`a-descriptions`),J=e(`a-card`),Y=e(`a-switch`),X=e(`a-select-option`),Z=e(`a-select`);return C.value?(r(),l(`div`,_,[o(a,{size:`large`})])):(r(),l(u,{key:1},[i[25]||=s(`h2`,{style:{"margin-bottom":`18px`}},`系统设置`,-1),o(J,{title:`LLM 大模型配置`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(g,null,{default:n(()=>[o(c,{size:`small`,onClick:z,loading:w.value},{default:n(()=>[...i[13]||=[p(`测试连接`,-1)]]),_:1},8,[`loading`]),o(c,{size:`small`,type:`primary`,onClick:i[0]||=e=>R(D)},{default:n(()=>[...i[14]||=[p(`保存`,-1)]]),_:1})]),_:1})]),default:n(()=>[T.value===null?m(``,!0):(r(),f(S,{key:0,type:T.value?`success`:`error`,message:T.value?`连接成功`:`连接失败`,description:E.value,"show-icon":``,style:{"margin-bottom":`14px`},closable:``},null,8,[`type`,`message`,`description`])),o(q,{column:2,size:`small`,bordered:``},{default:n(()=>[o(W,{label:`API 协议`,span:2},{default:n(()=>[o(U,{value:L.value,"onUpdate:value":i[1]||=e=>L.value=e,style:{width:`100%`}},{default:n(()=>[o(H,{gutter:[8,8]},{default:n(()=>[(r(),l(u,null,h(N,e=>o(V,{key:e.value,span:8},{default:n(()=>[o(B,{value:e.value,style:{display:`block`}},{default:n(()=>[s(`span`,v,d(e.label),1),s(`div`,y,d(e.desc),1),s(`div`,b,d(e.endpoint),1)]),_:2},1032,[`value`])]),_:2},1024)),64))]),_:1})]),_:1},8,[`value`])]),_:1}),o(W,{label:`API 地址`,span:2},{default:n(()=>[o(G,{value:F(`llm.base_url`),onChange:i[2]||=e=>I(`llm.base_url`,e.target.value),placeholder:`https://api.openai.com/v1`},null,8,[`value`]),i[15]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`2px`}},`会自动拼上协议路径`,-1)]),_:1}),o(W,{label:`API Key`,span:2},{default:n(()=>[o(S,{type:`info`,message:`API Key 仅通过服务器环境变量 LLM_API_KEY 配置,后台不会读取或显示完整密钥。`,"show-icon":``})]),_:1}),o(W,{label:`模型名称`,span:2},{default:n(()=>[o(G,{value:F(`llm.model`),onChange:i[3]||=e=>I(`llm.model`,e.target.value),placeholder:`gpt-4o-mini`},null,8,[`value`])]),_:1}),o(W,{label:`最大输出 Token`,span:1},{default:n(()=>[o(K,{value:F(`llm.max_tokens`),onChange:i[4]||=e=>I(`llm.max_tokens`,e),style:{width:`100%`},min:1},null,8,[`value`])]),_:1}),o(W,{label:`温度`,span:1},{default:n(()=>[o(K,{value:F(`llm.temperature`),onChange:i[5]||=e=>I(`llm.temperature`,e),style:{width:`100%`},min:0,max:2,step:.1},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(J,{title:`限额配置`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[6]||=e=>R(O)},{default:n(()=>[...i[16]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(q,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(O,e=>o(W,{key:e,label:P[e]?.label,span:1},{default:n(()=>[o(K,{value:F(e),onChange:t=>I(e,t),style:{width:`100%`},min:0},null,8,[`value`,`onChange`])]),_:2},1032,[`label`])),64))]),_:1})]),_:1}),o(J,{title:`功能开关`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[7]||=e=>R(k)},{default:n(()=>[...i[17]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(q,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(k,e=>o(W,{key:e,label:P[e]?.label,span:1},{default:n(()=>[o(Y,{checked:F(e),onChange:t=>I(e,t)},null,8,[`checked`,`onChange`])]),_:2},1032,[`label`])),64))]),_:1})]),_:1}),o(J,{title:`注册默认权限`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[8]||=e=>R(A)},{default:n(()=>[...i[18]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(q,{column:1,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(A,e=>o(W,{key:e,label:P[e]?.label},{default:n(()=>[o(Y,{checked:F(e),onChange:t=>I(e,t)},null,8,[`checked`,`onChange`]),s(`span`,x,d(P[e]?.desc),1)]),_:2},1032,[`label`])),64))]),_:1})]),_:1}),o(J,{title:`新用户 AI 对话额度`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[9]||=e=>R(j)},{default:n(()=>[...i[19]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(q,{column:2,size:`small`,bordered:``},{default:n(()=>[o(W,{label:`默认次数`},{default:n(()=>[o(K,{value:F(`quota.default_ai_chat_limit`),onChange:i[10]||=e=>I(`quota.default_ai_chat_limit`,e),style:{width:`100%`},min:0,max:1e6},null,8,[`value`]),i[20]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`3px`}},`0 表示不限次数`,-1)]),_:1}),o(W,{label:`重置周期`},{default:n(()=>[o(Z,{value:F(`quota.default_ai_chat_period`)||`day`,onChange:i[11]||=e=>I(`quota.default_ai_chat_period`,e),style:{width:`100%`}},{default:n(()=>[o(X,{value:`day`},{default:n(()=>[...i[21]||=[p(`每天`,-1)]]),_:1}),o(X,{value:`week`},{default:n(()=>[...i[22]||=[p(`每周(周一开始)`,-1)]]),_:1}),o(X,{value:`month`},{default:n(()=>[...i[23]||=[p(`每月`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1}),o(J,{title:`系统 & 品牌`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[12]||=e=>R(M)},{default:n(()=>[...i[24]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(q,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(M,e=>o(W,{key:e,label:P[e]?.label,span:e===`brand.slogan`||e===`brand.logo_url`?2:1},{default:n(()=>[e===`system.max_ledgers_per_user`?(r(),f(K,{key:0,value:F(e),onChange:t=>I(e,t),style:{width:`100%`},min:1,max:50},null,8,[`value`,`onChange`])):(r(),f(G,{key:1,value:F(e),onChange:t=>I(e,t.target.value)},null,8,[`value`,`onChange`]))]),_:2},1032,[`label`,`span`])),64))]),_:1})]),_:1})],64))}}});export{S as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-CYKsnZ8p.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-CYKsnZ8p.js
deleted file mode 100644
index a85748d..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-CYKsnZ8p.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,bn as l,fn as u,or as d,vn as f,xn as p,yn as m,zn as h}from"./config-provider-q7ATIdCu.js";import{t as g}from"./api-BV_Zb8mM.js";var _={key:0,style:{"text-align":`center`,padding:`60px`}},v={style:{"font-weight":`600`}},y={style:{"font-size":`11px`,color:`#999`,"margin-top":`2px`,"white-space":`normal`}},b={style:{"font-size":`10px`,color:`#bbb`,"margin-top":`2px`,"font-family":`monospace`}},x=t({__name:`Settings`,setup(t){let x=a({}),S=a(!0),C=a(!1),w=a(null),T=a(``),E=[`llm.protocol`,`llm.base_url`,`llm.model`,`llm.max_tokens`,`llm.temperature`],D=[`limit.daily_ai_messages`,`limit.daily_ai_messages_per_user`,`limit.max_monthly_budget`],O=[`feature.ocr_enabled`,`feature.voice_enabled`,`feature.ai_auto_book`,`feature.sticker_enabled`],k=[`system.default_ledger_name`,`system.max_ledgers_per_user`,`brand.app_name`,`brand.slogan`,`brand.logo_url`],A=[{value:`chat_completions`,label:`Chat Completions`,desc:`OpenAI Chat Completions API。POST /v1/chat/completions`,endpoint:`/chat/completions`},{value:`responses`,label:`Responses`,desc:`OpenAI Responses API(新版)。POST /v1/responses`,endpoint:`/responses`},{value:`messages`,label:`Messages`,desc:`Anthropic Messages API。POST /v1/messages,用于 Claude 系列`,endpoint:`/messages`}],j={"llm.protocol":{label:`API 协议`,desc:``,type:`protocol`},"llm.base_url":{label:`API 地址`,desc:``,type:`url`},"llm.model":{label:`模型名称`,desc:``,type:`text`},"llm.max_tokens":{label:`最大输出 Token`,desc:`单次请求上限`,type:`number`},"llm.temperature":{label:`温度 (Temperature)`,desc:`0=确定 1=创意`,type:`number`},"limit.daily_ai_messages":{label:`全站每日 AI 消息上限`,desc:``,type:`number`},"limit.daily_ai_messages_per_user":{label:`每人每日 AI 消息上限`,desc:``,type:`number`},"limit.max_monthly_budget":{label:`最大月预算金额`,desc:``,type:`number`},"feature.ocr_enabled":{label:`OCR 小票识别`,desc:`拍照记账功能`,type:`switch`},"feature.voice_enabled":{label:`语音记账`,desc:`语音输入转文字`,type:`switch`},"feature.ai_auto_book":{label:`AI 自动入账`,desc:`AI 识别记账意图直接入账`,type:`switch`},"feature.sticker_enabled":{label:`表情包功能`,desc:`聊天表情包面板 + AI 表情回复`,type:`switch`},"system.default_ledger_name":{label:`新用户默认账本名`,desc:``,type:`text`},"system.max_ledgers_per_user":{label:`每人最多账本数`,desc:``,type:`number`},"brand.app_name":{label:`App 名称`,desc:``,type:`text`},"brand.slogan":{label:`App 标语`,desc:``,type:`text`},"brand.logo_url":{label:`Logo URL`,desc:``,type:`url`}};i(async()=>{try{let e=await g.configs(),t={};for(let n of e)t[n.key]=n;x.value=t,t[`llm.protocol`]||N(`llm.protocol`,`chat_completions`),P.value=M(`llm.protocol`)||`chat_completions`}finally{S.value=!1}});function M(e){let t=x.value[e];if(!t)return``;let n=j[e];return n?.type===`number`?Number(t.value)||0:n?.type===`switch`?t.value===`true`:t.value}function N(e,t){let n=String(t);x.value[e]?x.value[e].value=n:x.value[e]={id:0,key:e,value:n,version:0}}let P=a(`chat_completions`);async function F(e){N(`llm.protocol`,P.value);let t=e.filter(e=>x.value[e]).map(async e=>{let t=x.value[e];try{if(t.id>0){let e=await g.updateConfig(t.id,t.value);t&&(t.id=e.id)}else{let e=await g.createConfig(t.key,t.value);t&&(t.id=e.id)}}catch(t){c.error(e+` 保存失败: `+(t?.response?.data?.detail||t?.response?.data?.error||t.message))}});if(t.length===0){c.warning(`没有可保存的配置`);return}await Promise.all(t),c.success(`已保存 `+t.length+` 项配置`)}async function I(){C.value=!0,w.value=null,T.value=``;try{let e=await g.testLlm();w.value=e.ok,T.value=e.detail||e.error||``,e.ok?c.success(`LLM 连接正常`):c.error(e.error||`连接失败`)}catch(e){w.value=!1;let t=e?.response?.data;T.value=t?.detail||t?.error||t?.message||e.message||`未知错误`,c.error(`连接失败`)}finally{C.value=!1}}return(t,i)=>{let a=e(`a-spin`),c=e(`a-button`),g=e(`a-space`),x=e(`a-alert`),L=e(`a-radio`),R=e(`a-col`),z=e(`a-row`),B=e(`a-radio-group`),V=e(`a-descriptions-item`),H=e(`a-input`),U=e(`a-input-number`),W=e(`a-descriptions`),G=e(`a-card`),K=e(`a-switch`);return S.value?(r(),l(`div`,_,[o(a,{size:`large`})])):(r(),l(u,{key:1},[i[15]||=s(`h2`,{style:{"margin-bottom":`18px`}},`系统设置`,-1),o(G,{title:`LLM 大模型配置`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(g,null,{default:n(()=>[o(c,{size:`small`,onClick:I,loading:C.value},{default:n(()=>[...i[9]||=[p(`测试连接`,-1)]]),_:1},8,[`loading`]),o(c,{size:`small`,type:`primary`,onClick:i[0]||=e=>F(E)},{default:n(()=>[...i[10]||=[p(`保存`,-1)]]),_:1})]),_:1})]),default:n(()=>[w.value===null?m(``,!0):(r(),f(x,{key:0,type:w.value?`success`:`error`,message:w.value?`连接成功`:`连接失败`,description:T.value,"show-icon":``,style:{"margin-bottom":`14px`},closable:``},null,8,[`type`,`message`,`description`])),o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[o(V,{label:`API 协议`,span:2},{default:n(()=>[o(B,{value:P.value,"onUpdate:value":i[1]||=e=>P.value=e,style:{width:`100%`}},{default:n(()=>[o(z,{gutter:[8,8]},{default:n(()=>[(r(),l(u,null,h(A,e=>o(R,{key:e.value,span:8},{default:n(()=>[o(L,{value:e.value,style:{display:`block`}},{default:n(()=>[s(`span`,v,d(e.label),1),s(`div`,y,d(e.desc),1),s(`div`,b,d(e.endpoint),1)]),_:2},1032,[`value`])]),_:2},1024)),64))]),_:1})]),_:1},8,[`value`])]),_:1}),o(V,{label:`API 地址`,span:2},{default:n(()=>[o(H,{value:M(`llm.base_url`),onChange:i[2]||=e=>N(`llm.base_url`,e.target.value),placeholder:`https://api.openai.com/v1`},null,8,[`value`]),i[11]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`2px`}},`会自动拼上协议路径`,-1)]),_:1}),o(V,{label:`API Key`,span:2},{default:n(()=>[o(x,{type:`info`,message:`API Key 仅通过服务器环境变量 LLM_API_KEY 配置,后台不会读取或显示完整密钥。`,"show-icon":``})]),_:1}),o(V,{label:`模型名称`,span:2},{default:n(()=>[o(H,{value:M(`llm.model`),onChange:i[3]||=e=>N(`llm.model`,e.target.value),placeholder:`gpt-4o-mini`},null,8,[`value`])]),_:1}),o(V,{label:`最大输出 Token`,span:1},{default:n(()=>[o(U,{value:M(`llm.max_tokens`),onChange:i[4]||=e=>N(`llm.max_tokens`,e),style:{width:`100%`},min:1},null,8,[`value`])]),_:1}),o(V,{label:`温度`,span:1},{default:n(()=>[o(U,{value:M(`llm.temperature`),onChange:i[5]||=e=>N(`llm.temperature`,e),style:{width:`100%`},min:0,max:2,step:.1},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(G,{title:`限额配置`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[6]||=e=>F(D)},{default:n(()=>[...i[12]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(D,e=>o(V,{key:e,label:j[e]?.label,span:1},{default:n(()=>[o(U,{value:M(e),onChange:t=>N(e,t),style:{width:`100%`},min:0},null,8,[`value`,`onChange`])]),_:2},1032,[`label`])),64))]),_:1})]),_:1}),o(G,{title:`功能开关`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[7]||=e=>F(O)},{default:n(()=>[...i[13]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(O,e=>o(V,{key:e,label:j[e]?.label,span:1},{default:n(()=>[o(K,{checked:M(e),onChange:t=>N(e,t)},null,8,[`checked`,`onChange`])]),_:2},1032,[`label`])),64))]),_:1})]),_:1}),o(G,{title:`系统 & 品牌`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[8]||=e=>F(k)},{default:n(()=>[...i[14]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(k,e=>o(V,{key:e,label:j[e]?.label,span:e===`brand.slogan`||e===`brand.logo_url`?2:1},{default:n(()=>[e===`system.max_ledgers_per_user`?(r(),f(U,{key:0,value:M(e),onChange:t=>N(e,t),style:{width:`100%`},min:1,max:50},null,8,[`value`,`onChange`])):(r(),f(H,{key:1,value:M(e),onChange:t=>N(e,t.target.value)},null,8,[`value`,`onChange`]))]),_:2},1032,[`label`,`span`])),64))]),_:1})]),_:1})],64))}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-EMIo5EVq.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-EMIo5EVq.js
deleted file mode 100644
index 5cfeb47..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Settings-EMIo5EVq.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,bn as l,fn as u,or as d,vn as f,xn as p,yn as m,zn as h}from"./config-provider-q7ATIdCu.js";import{t as g}from"./api-C4vz6nB3.js";var _={key:0,style:{"text-align":`center`,padding:`60px`}},v={style:{"font-weight":`600`}},y={style:{"font-size":`11px`,color:`#999`,"margin-top":`2px`,"white-space":`normal`}},b={style:{"font-size":`10px`,color:`#bbb`,"margin-top":`2px`,"font-family":`monospace`}},x=t({__name:`Settings`,setup(t){let x=a({}),S=a(!0),C=a(!1),w=a(null),T=a(``),E=[`llm.protocol`,`llm.base_url`,`llm.model`,`llm.max_tokens`,`llm.temperature`],D=[`limit.daily_ai_messages`,`limit.daily_ai_messages_per_user`,`limit.max_monthly_budget`],O=[`feature.ocr_enabled`,`feature.voice_enabled`,`feature.ai_auto_book`,`feature.sticker_enabled`],k=[`system.default_ledger_name`,`system.max_ledgers_per_user`,`brand.app_name`,`brand.slogan`,`brand.logo_url`],A=[{value:`chat_completions`,label:`Chat Completions`,desc:`OpenAI Chat Completions API。POST /v1/chat/completions`,endpoint:`/chat/completions`},{value:`responses`,label:`Responses`,desc:`OpenAI Responses API(新版)。POST /v1/responses`,endpoint:`/responses`},{value:`messages`,label:`Messages`,desc:`Anthropic Messages API。POST /v1/messages,用于 Claude 系列`,endpoint:`/messages`}],j={"llm.protocol":{label:`API 协议`,desc:``,type:`protocol`},"llm.base_url":{label:`API 地址`,desc:``,type:`url`},"llm.model":{label:`模型名称`,desc:``,type:`text`},"llm.max_tokens":{label:`最大输出 Token`,desc:`单次请求上限`,type:`number`},"llm.temperature":{label:`温度 (Temperature)`,desc:`0=确定 1=创意`,type:`number`},"limit.daily_ai_messages":{label:`全站每日 AI 消息上限`,desc:``,type:`number`},"limit.daily_ai_messages_per_user":{label:`每人每日 AI 消息上限`,desc:``,type:`number`},"limit.max_monthly_budget":{label:`最大月预算金额`,desc:``,type:`number`},"feature.ocr_enabled":{label:`OCR 小票识别`,desc:`拍照记账功能`,type:`switch`},"feature.voice_enabled":{label:`语音记账`,desc:`语音输入转文字`,type:`switch`},"feature.ai_auto_book":{label:`AI 自动入账`,desc:`AI 识别记账意图直接入账`,type:`switch`},"feature.sticker_enabled":{label:`表情包功能`,desc:`聊天表情包面板 + AI 表情回复`,type:`switch`},"system.default_ledger_name":{label:`新用户默认账本名`,desc:``,type:`text`},"system.max_ledgers_per_user":{label:`每人最多账本数`,desc:``,type:`number`},"brand.app_name":{label:`App 名称`,desc:``,type:`text`},"brand.slogan":{label:`App 标语`,desc:``,type:`text`},"brand.logo_url":{label:`Logo URL`,desc:``,type:`url`}};i(async()=>{try{let e=await g.configs(),t={};for(let n of e)t[n.key]=n;x.value=t,t[`llm.protocol`]||N(`llm.protocol`,`chat_completions`),P.value=M(`llm.protocol`)||`chat_completions`}finally{S.value=!1}});function M(e){let t=x.value[e];if(!t)return``;let n=j[e];return n?.type===`number`?Number(t.value)||0:n?.type===`switch`?t.value===`true`:t.value}function N(e,t){let n=String(t);x.value[e]?x.value[e].value=n:x.value[e]={id:0,key:e,value:n,version:0}}let P=a(`chat_completions`);async function F(e){N(`llm.protocol`,P.value);let t=e.filter(e=>x.value[e]).map(async e=>{let t=x.value[e];try{if(t.id>0){let e=await g.updateConfig(t.id,t.value);t&&(t.id=e.id)}else{let e=await g.createConfig(t.key,t.value);t&&(t.id=e.id)}}catch(t){c.error(e+` 保存失败: `+(t?.response?.data?.detail||t?.response?.data?.error||t.message))}});if(t.length===0){c.warning(`没有可保存的配置`);return}await Promise.all(t),c.success(`已保存 `+t.length+` 项配置`)}async function I(){C.value=!0,w.value=null,T.value=``;try{let e=await g.testLlm();w.value=e.ok,T.value=e.detail||e.error||``,e.ok?c.success(`LLM 连接正常`):c.error(e.error||`连接失败`)}catch(e){w.value=!1;let t=e?.response?.data;T.value=t?.detail||t?.error||t?.message||e.message||`未知错误`,c.error(`连接失败`)}finally{C.value=!1}}return(t,i)=>{let a=e(`a-spin`),c=e(`a-button`),g=e(`a-space`),x=e(`a-alert`),L=e(`a-radio`),R=e(`a-col`),z=e(`a-row`),B=e(`a-radio-group`),V=e(`a-descriptions-item`),H=e(`a-input`),U=e(`a-input-number`),W=e(`a-descriptions`),G=e(`a-card`),K=e(`a-switch`);return S.value?(r(),l(`div`,_,[o(a,{size:`large`})])):(r(),l(u,{key:1},[i[15]||=s(`h2`,{style:{"margin-bottom":`18px`}},`系统设置`,-1),o(G,{title:`LLM 大模型配置`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(g,null,{default:n(()=>[o(c,{size:`small`,onClick:I,loading:C.value},{default:n(()=>[...i[9]||=[p(`测试连接`,-1)]]),_:1},8,[`loading`]),o(c,{size:`small`,type:`primary`,onClick:i[0]||=e=>F(E)},{default:n(()=>[...i[10]||=[p(`保存`,-1)]]),_:1})]),_:1})]),default:n(()=>[w.value===null?m(``,!0):(r(),f(x,{key:0,type:w.value?`success`:`error`,message:w.value?`连接成功`:`连接失败`,description:T.value,"show-icon":``,style:{"margin-bottom":`14px`},closable:``},null,8,[`type`,`message`,`description`])),o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[o(V,{label:`API 协议`,span:2},{default:n(()=>[o(B,{value:P.value,"onUpdate:value":i[1]||=e=>P.value=e,style:{width:`100%`}},{default:n(()=>[o(z,{gutter:[8,8]},{default:n(()=>[(r(),l(u,null,h(A,e=>o(R,{key:e.value,span:8},{default:n(()=>[o(L,{value:e.value,style:{display:`block`}},{default:n(()=>[s(`span`,v,d(e.label),1),s(`div`,y,d(e.desc),1),s(`div`,b,d(e.endpoint),1)]),_:2},1032,[`value`])]),_:2},1024)),64))]),_:1})]),_:1},8,[`value`])]),_:1}),o(V,{label:`API 地址`,span:2},{default:n(()=>[o(H,{value:M(`llm.base_url`),onChange:i[2]||=e=>N(`llm.base_url`,e.target.value),placeholder:`https://api.openai.com/v1`},null,8,[`value`]),i[11]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`2px`}},`会自动拼上协议路径`,-1)]),_:1}),o(V,{label:`API Key`,span:2},{default:n(()=>[o(x,{type:`info`,message:`API Key 仅通过服务器环境变量 LLM_API_KEY 配置,后台不会读取或显示完整密钥。`,"show-icon":``})]),_:1}),o(V,{label:`模型名称`,span:2},{default:n(()=>[o(H,{value:M(`llm.model`),onChange:i[3]||=e=>N(`llm.model`,e.target.value),placeholder:`gpt-4o-mini`},null,8,[`value`])]),_:1}),o(V,{label:`最大输出 Token`,span:1},{default:n(()=>[o(U,{value:M(`llm.max_tokens`),onChange:i[4]||=e=>N(`llm.max_tokens`,e),style:{width:`100%`},min:1},null,8,[`value`])]),_:1}),o(V,{label:`温度`,span:1},{default:n(()=>[o(U,{value:M(`llm.temperature`),onChange:i[5]||=e=>N(`llm.temperature`,e),style:{width:`100%`},min:0,max:2,step:.1},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(G,{title:`限额配置`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[6]||=e=>F(D)},{default:n(()=>[...i[12]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(D,e=>o(V,{key:e,label:j[e]?.label,span:1},{default:n(()=>[o(U,{value:M(e),onChange:t=>N(e,t),style:{width:`100%`},min:0},null,8,[`value`,`onChange`])]),_:2},1032,[`label`])),64))]),_:1})]),_:1}),o(G,{title:`功能开关`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[7]||=e=>F(O)},{default:n(()=>[...i[13]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(O,e=>o(V,{key:e,label:j[e]?.label,span:1},{default:n(()=>[o(K,{checked:M(e),onChange:t=>N(e,t)},null,8,[`checked`,`onChange`])]),_:2},1032,[`label`])),64))]),_:1})]),_:1}),o(G,{title:`系统 & 品牌`,size:`small`,style:{"margin-bottom":`14px`}},{extra:n(()=>[o(c,{size:`small`,type:`primary`,onClick:i[8]||=e=>F(k)},{default:n(()=>[...i[14]||=[p(`保存`,-1)]]),_:1})]),default:n(()=>[o(W,{column:2,size:`small`,bordered:``},{default:n(()=>[(r(),l(u,null,h(k,e=>o(V,{key:e,label:j[e]?.label,span:e===`brand.slogan`||e===`brand.logo_url`?2:1},{default:n(()=>[e===`system.max_ledgers_per_user`?(r(),f(U,{key:0,value:M(e),onChange:t=>N(e,t),style:{width:`100%`},min:1,max:50},null,8,[`value`,`onChange`])):(r(),f(H,{key:1,value:M(e),onChange:t=>N(e,t.target.value)},null,8,[`value`,`onChange`]))]),_:2},1032,[`label`,`span`])),64))]),_:1})]),_:1})],64))}}});export{x as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-5pBxfoSQ.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-5pBxfoSQ.js
deleted file mode 100644
index 4c0c32d..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-5pBxfoSQ.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h,zn as g}from"./config-provider-q7ATIdCu.js";import{n as _,r as v,t as y}from"./EditOutlined-CeylGsUo.js";import{t as b}from"./api-C4vz6nB3.js";var x={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},S={key:1,style:{color:`#ccc`}},C=t({__name:`Stickers`,setup(t){let C=a([]),w=a(!0),T=a(!1),E=a(null),D=a({key:``,label:``,groupKey:`classic`,triggerTags:``,imageUrl:``,isEnabled:!0}),O=[{title:`Key`,dataIndex:`key`,key:`key`,width:110},{title:`名称`,dataIndex:`label`,key:`label`,width:100},{title:`分组`,dataIndex:`groupKey`,key:`group`,width:90},{title:`触发标签`,dataIndex:`triggerTags`,key:`tags`,width:200},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(k);async function k(){w.value=!0;try{C.value=await b.stickers()}finally{w.value=!1}}function A(){E.value=null,D.value={key:``,label:``,groupKey:`classic`,triggerTags:``,imageUrl:``,isEnabled:!0},T.value=!0}function j(e){E.value=e,D.value={key:e.key,label:e.label,groupKey:e.groupKey,triggerTags:e.triggerTags||``,imageUrl:e.imageUrl||``,isEnabled:e.isEnabled},T.value=!0}async function M(){let e={...D.value,triggerTags:D.value.triggerTags||null,imageUrl:D.value.imageUrl||null};E.value?await b.updateSticker(E.value.id,e):await b.createSticker(e),c.success(E.value?`已更新`:`已创建`),T.value=!1,k()}async function N(e){await b.deleteSticker(e),c.success(`已删除`),k()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),b=e(`a-popconfirm`),k=e(`a-table`),P=e(`a-input`),F=e(`a-form-item`),I=e(`a-col`),L=e(`a-row`),R=e(`a-select-option`),z=e(`a-select`),B=e(`a-switch`),V=e(`a-form`),H=e(`a-modal`);return r(),u(d,null,[s(`div`,x,[i[8]||=s(`h2`,null,`表情包库`,-1),o(a,{type:`primary`,onClick:A},{default:n(()=>[o(l(v)),i[7]||=m(` 新建表情包`,-1)]),_:1})]),o(k,{columns:O,dataSource:C.value,loading:w.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`tags`?(r(),u(d,{key:0},[t.triggerTags?(r(!0),u(d,{key:0},g((t.triggerTags||``).split(`,`).filter(Boolean),e=>(r(),p(c,{key:e,color:`blue`,style:{margin:`1px 2px`}},{default:n(()=>[m(f(e),1)]),_:2},1024))),128)):(r(),u(`span`,S,`-`))],64)):h(``,!0),e.key===`on`?(r(),p(c,{key:1,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:2},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>j(t)},{default:n(()=>[o(l(y))]),_:1},8,[`onClick`]),o(b,{title:`确定删除?`,onConfirm:e=>N(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(_))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(H,{open:T.value,"onUpdate:open":i[6]||=e=>T.value=e,title:E.value?`编辑表情包`:`新建表情包`,onOk:M,width:520},{default:n(()=>[o(V,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(L,{gutter:12},{default:n(()=>[o(I,{span:12},{default:n(()=>[o(F,{label:`Key`},{default:n(()=>[o(P,{value:D.value.key,"onUpdate:value":i[0]||=e=>D.value.key=e,placeholder:`salary`},null,8,[`value`])]),_:1})]),_:1}),o(I,{span:12},{default:n(()=>[o(F,{label:`名称`},{default:n(()=>[o(P,{value:D.value.label,"onUpdate:value":i[1]||=e=>D.value.label=e,placeholder:`发工资啦`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(L,{gutter:12},{default:n(()=>[o(I,{span:12},{default:n(()=>[o(F,{label:`分组`},{default:n(()=>[o(z,{value:D.value.groupKey,"onUpdate:value":i[2]||=e=>D.value.groupKey=e},{default:n(()=>[o(R,{value:`ai_exclusive`},{default:n(()=>[...i[9]||=[m(`🤖 AI 专属`,-1)]]),_:1}),o(R,{value:`classic`},{default:n(()=>[...i[10]||=[m(`📦 经典`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1}),o(I,{span:12},{default:n(()=>[o(F,{label:`图片 URL`},{default:n(()=>[o(P,{value:D.value.imageUrl,"onUpdate:value":i[3]||=e=>D.value.imageUrl=e,placeholder:`可选 CDN 地址`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(F,{label:`触发标签`},{default:n(()=>[o(P,{value:D.value.triggerTags,"onUpdate:value":i[4]||=e=>D.value.triggerTags=e,placeholder:`over_budget,salary,forgive,逗号分隔`},null,8,[`value`]),i[11]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},`标签匹配用户场景,AI 自动选择对应表情包`,-1)]),_:1}),o(F,{label:`是否启用`},{default:n(()=>[o(B,{checked:D.value.isEnabled,"onUpdate:checked":i[5]||=e=>D.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{C as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-CJkJknEj.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-CJkJknEj.js
deleted file mode 100644
index 59b3098..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-CJkJknEj.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h,zn as g}from"./config-provider-q7ATIdCu.js";import{n as _,r as v,t as y}from"./EditOutlined-CeylGsUo.js";import{t as b}from"./api-BV_Zb8mM.js";var x={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},S={key:1,style:{color:`#ccc`}},C=t({__name:`Stickers`,setup(t){let C=a([]),w=a(!0),T=a(!1),E=a(null),D=a({key:``,label:``,groupKey:`classic`,triggerTags:``,imageUrl:``,isEnabled:!0}),O=[{title:`Key`,dataIndex:`key`,key:`key`,width:110},{title:`名称`,dataIndex:`label`,key:`label`,width:100},{title:`分组`,dataIndex:`groupKey`,key:`group`,width:90},{title:`触发标签`,dataIndex:`triggerTags`,key:`tags`,width:200},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(k);async function k(){w.value=!0;try{C.value=await b.stickers()}finally{w.value=!1}}function A(){E.value=null,D.value={key:``,label:``,groupKey:`classic`,triggerTags:``,imageUrl:``,isEnabled:!0},T.value=!0}function j(e){E.value=e,D.value={key:e.key,label:e.label,groupKey:e.groupKey,triggerTags:e.triggerTags||``,imageUrl:e.imageUrl||``,isEnabled:e.isEnabled},T.value=!0}async function M(){let e={...D.value,triggerTags:D.value.triggerTags||null,imageUrl:D.value.imageUrl||null};E.value?await b.updateSticker(E.value.id,e):await b.createSticker(e),c.success(E.value?`已更新`:`已创建`),T.value=!1,k()}async function N(e){await b.deleteSticker(e),c.success(`已删除`),k()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),b=e(`a-popconfirm`),k=e(`a-table`),P=e(`a-input`),F=e(`a-form-item`),I=e(`a-col`),L=e(`a-row`),R=e(`a-select-option`),z=e(`a-select`),B=e(`a-switch`),V=e(`a-form`),H=e(`a-modal`);return r(),u(d,null,[s(`div`,x,[i[8]||=s(`h2`,null,`表情包库`,-1),o(a,{type:`primary`,onClick:A},{default:n(()=>[o(l(v)),i[7]||=m(` 新建表情包`,-1)]),_:1})]),o(k,{columns:O,dataSource:C.value,loading:w.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`tags`?(r(),u(d,{key:0},[t.triggerTags?(r(!0),u(d,{key:0},g((t.triggerTags||``).split(`,`).filter(Boolean),e=>(r(),p(c,{key:e,color:`blue`,style:{margin:`1px 2px`}},{default:n(()=>[m(f(e),1)]),_:2},1024))),128)):(r(),u(`span`,S,`-`))],64)):h(``,!0),e.key===`on`?(r(),p(c,{key:1,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:2},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>j(t)},{default:n(()=>[o(l(y))]),_:1},8,[`onClick`]),o(b,{title:`确定删除?`,onConfirm:e=>N(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(_))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(H,{open:T.value,"onUpdate:open":i[6]||=e=>T.value=e,title:E.value?`编辑表情包`:`新建表情包`,onOk:M,width:520},{default:n(()=>[o(V,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(L,{gutter:12},{default:n(()=>[o(I,{span:12},{default:n(()=>[o(F,{label:`Key`},{default:n(()=>[o(P,{value:D.value.key,"onUpdate:value":i[0]||=e=>D.value.key=e,placeholder:`salary`},null,8,[`value`])]),_:1})]),_:1}),o(I,{span:12},{default:n(()=>[o(F,{label:`名称`},{default:n(()=>[o(P,{value:D.value.label,"onUpdate:value":i[1]||=e=>D.value.label=e,placeholder:`发工资啦`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(L,{gutter:12},{default:n(()=>[o(I,{span:12},{default:n(()=>[o(F,{label:`分组`},{default:n(()=>[o(z,{value:D.value.groupKey,"onUpdate:value":i[2]||=e=>D.value.groupKey=e},{default:n(()=>[o(R,{value:`ai_exclusive`},{default:n(()=>[...i[9]||=[m(`🤖 AI 专属`,-1)]]),_:1}),o(R,{value:`classic`},{default:n(()=>[...i[10]||=[m(`📦 经典`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1}),o(I,{span:12},{default:n(()=>[o(F,{label:`图片 URL`},{default:n(()=>[o(P,{value:D.value.imageUrl,"onUpdate:value":i[3]||=e=>D.value.imageUrl=e,placeholder:`可选 CDN 地址`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(F,{label:`触发标签`},{default:n(()=>[o(P,{value:D.value.triggerTags,"onUpdate:value":i[4]||=e=>D.value.triggerTags=e,placeholder:`over_budget,salary,forgive,逗号分隔`},null,8,[`value`]),i[11]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},`标签匹配用户场景,AI 自动选择对应表情包`,-1)]),_:1}),o(F,{label:`是否启用`},{default:n(()=>[o(B,{checked:D.value.isEnabled,"onUpdate:checked":i[5]||=e=>D.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{C as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-XxXWJcKc.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-XxXWJcKc.js
new file mode 100644
index 0000000..e1b0af1
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/Stickers-XxXWJcKc.js
@@ -0,0 +1 @@
+import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h,zn as g}from"./config-provider-q7ATIdCu.js";import{n as _,t as v}from"./EditOutlined-h6ScL3Qz.js";import{t as y}from"./DeleteOutlined-yVoeJ3Fd.js";import{t as b}from"./api-wmB-hCXT.js";var x={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},S={key:1,style:{color:`#ccc`}},C=t({__name:`Stickers`,setup(t){let C=a([]),w=a(!0),T=a(!1),E=a(null),D=a({key:``,label:``,groupKey:`classic`,triggerTags:``,imageUrl:``,isEnabled:!0}),O=[{title:`Key`,dataIndex:`key`,key:`key`,width:110},{title:`名称`,dataIndex:`label`,key:`label`,width:100},{title:`分组`,dataIndex:`groupKey`,key:`group`,width:90},{title:`触发标签`,dataIndex:`triggerTags`,key:`tags`,width:200},{title:`状态`,dataIndex:`isEnabled`,key:`on`,width:70},{title:``,key:`act`,width:150}];i(k);async function k(){w.value=!0;try{C.value=await b.stickers()}finally{w.value=!1}}function A(){E.value=null,D.value={key:``,label:``,groupKey:`classic`,triggerTags:``,imageUrl:``,isEnabled:!0},T.value=!0}function j(e){E.value=e,D.value={key:e.key,label:e.label,groupKey:e.groupKey,triggerTags:e.triggerTags||``,imageUrl:e.imageUrl||``,isEnabled:e.isEnabled},T.value=!0}async function M(){let e={...D.value,triggerTags:D.value.triggerTags||null,imageUrl:D.value.imageUrl||null};E.value?await b.updateSticker(E.value.id,e):await b.createSticker(e),c.success(E.value?`已更新`:`已创建`),T.value=!1,k()}async function N(e){await b.deleteSticker(e),c.success(`已删除`),k()}return(t,i)=>{let a=e(`a-button`),c=e(`a-tag`),b=e(`a-popconfirm`),k=e(`a-table`),P=e(`a-input`),F=e(`a-form-item`),I=e(`a-col`),L=e(`a-row`),R=e(`a-select-option`),z=e(`a-select`),B=e(`a-switch`),V=e(`a-form`),H=e(`a-modal`);return r(),u(d,null,[s(`div`,x,[i[8]||=s(`h2`,null,`表情包库`,-1),o(a,{type:`primary`,onClick:A},{default:n(()=>[o(l(_)),i[7]||=m(` 新建表情包`,-1)]),_:1})]),o(k,{columns:O,dataSource:C.value,loading:w.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`tags`?(r(),u(d,{key:0},[t.triggerTags?(r(!0),u(d,{key:0},g((t.triggerTags||``).split(`,`).filter(Boolean),e=>(r(),p(c,{key:e,color:`blue`,style:{margin:`1px 2px`}},{default:n(()=>[m(f(e),1)]),_:2},1024))),128)):(r(),u(`span`,S,`-`))],64)):h(``,!0),e.key===`on`?(r(),p(c,{key:1,color:t.isEnabled?`green`:`default`},{default:n(()=>[m(f(t.isEnabled?`启用`:`禁用`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`act`?(r(),u(d,{key:2},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>j(t)},{default:n(()=>[o(l(v))]),_:1},8,[`onClick`]),o(b,{title:`确定删除?`,onConfirm:e=>N(t.id)},{default:n(()=>[o(a,{size:`small`,danger:``},{default:n(()=>[o(l(y))]),_:1})]),_:1},8,[`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`]),o(H,{open:T.value,"onUpdate:open":i[6]||=e=>T.value=e,title:E.value?`编辑表情包`:`新建表情包`,onOk:M,width:520},{default:n(()=>[o(V,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(L,{gutter:12},{default:n(()=>[o(I,{span:12},{default:n(()=>[o(F,{label:`Key`},{default:n(()=>[o(P,{value:D.value.key,"onUpdate:value":i[0]||=e=>D.value.key=e,placeholder:`salary`},null,8,[`value`])]),_:1})]),_:1}),o(I,{span:12},{default:n(()=>[o(F,{label:`名称`},{default:n(()=>[o(P,{value:D.value.label,"onUpdate:value":i[1]||=e=>D.value.label=e,placeholder:`发工资啦`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(L,{gutter:12},{default:n(()=>[o(I,{span:12},{default:n(()=>[o(F,{label:`分组`},{default:n(()=>[o(z,{value:D.value.groupKey,"onUpdate:value":i[2]||=e=>D.value.groupKey=e},{default:n(()=>[o(R,{value:`ai_exclusive`},{default:n(()=>[...i[9]||=[m(`🤖 AI 专属`,-1)]]),_:1}),o(R,{value:`classic`},{default:n(()=>[...i[10]||=[m(`📦 经典`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1}),o(I,{span:12},{default:n(()=>[o(F,{label:`图片 URL`},{default:n(()=>[o(P,{value:D.value.imageUrl,"onUpdate:value":i[3]||=e=>D.value.imageUrl=e,placeholder:`可选 CDN 地址`},null,8,[`value`])]),_:1})]),_:1})]),_:1}),o(F,{label:`触发标签`},{default:n(()=>[o(P,{value:D.value.triggerTags,"onUpdate:value":i[4]||=e=>D.value.triggerTags=e,placeholder:`over_budget,salary,forgive,逗号分隔`},null,8,[`value`]),i[11]||=s(`div`,{style:{color:`#999`,"font-size":`11px`,"margin-top":`4px`}},`标签匹配用户场景,AI 自动选择对应表情包`,-1)]),_:1}),o(F,{label:`是否启用`},{default:n(()=>[o(B,{checked:D.value.isEnabled,"onUpdate:checked":i[5]||=e=>D.value.isEnabled=e},null,8,[`checked`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{C as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-BGspm7GG.js b/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-BGspm7GG.js
deleted file mode 100644
index df9daf4..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-BGspm7GG.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,xn as p,yn as m}from"./config-provider-q7ATIdCu.js";import{n as h,r as g,t as _}from"./EditOutlined-CeylGsUo.js";import{t as v}from"./api-C4vz6nB3.js";var y={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},b={key:0,style:{"font-size":`18px`}},x={key:0,style:{"font-size":`18px`}},S=t({__name:`SysCategories`,setup(t){let S=a([]),C=a(!0),w=a(!1),T=a(null),E=a({name:``,iconKey:`tag`,type:`expense`}),D=[{value:`food`,label:`🍜 餐饮`},{value:`cup`,label:`🥤 饮品`},{value:`cart`,label:`🛒 购物`},{value:`metro`,label:`🚇 交通`},{value:`house`,label:`🏠 住房`},{value:`game`,label:`🎮 娱乐`},{value:`pill`,label:`💊 医疗`},{value:`book`,label:`📖 学习`},{value:`shirt`,label:`👕 服饰`},{value:`gift`,label:`🎁 人情`},{value:`plane`,label:`✈️ 旅行`},{value:`tag`,label:`🏷️ 其他`},{value:`money`,label:`💰 工资`},{value:`briefcase`,label:`💼 兼职`},{value:`chart`,label:`📈 理财`},{value:`card`,label:`💳 报销`},{value:`sparkle`,label:`✨ 奖金`}],O=()=>S.value.filter(e=>e.type===`Expense`),k=()=>S.value.filter(e=>e.type===`Income`);i(A);async function A(){C.value=!0;try{S.value=await v.sysCategories()}finally{C.value=!1}}function j(){T.value=null,E.value={name:``,iconKey:`tag`,type:`expense`},w.value=!0}function M(e){T.value=e,E.value={name:e.name,iconKey:e.iconKey,type:e.type===`Income`?`income`:`expense`},w.value=!0}async function N(){let e={name:E.value.name,iconKey:E.value.iconKey,type:E.value.type};T.value?await v.updateSysCategory(T.value.id,e):await v.createSysCategory(e),c.success(T.value?`已更新`:`已创建`),w.value=!1,A()}async function P(e){await v.deleteSysCategory(e),c.success(`已删除(软删)`),A()}return(t,i)=>{let a=e(`a-button`),c=e(`a-popconfirm`),v=e(`a-table`),S=e(`a-card`),A=e(`a-col`),F=e(`a-row`),I=e(`a-input`),L=e(`a-form-item`),R=e(`a-select`),z=e(`a-radio`),B=e(`a-radio-group`),V=e(`a-form`),H=e(`a-modal`);return r(),u(d,null,[s(`div`,y,[i[5]||=s(`h2`,null,`系统默认分类`,-1),o(a,{type:`primary`,onClick:j},{default:n(()=>[o(l(g)),i[4]||=p(` 新建分类`,-1)]),_:1})]),i[8]||=s(`p`,{style:{color:`#999`,"font-size":`12px`,"margin-bottom":`14px`}},` 此处管理新用户注册时获得的默认分类。删除后已分配用户的分类不受影响(软删除,仅对新用户隐藏)。 `,-1),o(F,{gutter:16},{default:n(()=>[o(A,{span:12},{default:n(()=>[o(S,{title:`💸 支出分类`,size:`small`},{default:n(()=>[o(v,{columns:[{title:`排序`,dataIndex:`sortOrder`,width:55},{title:`图标`,key:`icon`,width:55},{title:`名称`,dataIndex:`name`,key:`name`},{title:``,key:`act`,width:90}],dataSource:O(),loading:C.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`icon`?(r(),u(`span`,b,f(D.find(e=>e.value===t.iconKey)?.label?.split(` `)[0]||`🏷️`),1)):m(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,type:`link`,onClick:e=>M(t)},{default:n(()=>[o(l(_))]),_:1},8,[`onClick`]),o(c,{title:`确定软删除?`,onConfirm:e=>P(t.id)},{default:n(()=>[o(a,{size:`small`,type:`link`,danger:``},{default:n(()=>[o(l(h))]),_:1})]),_:1},8,[`onConfirm`])],64)):m(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1})]),_:1}),o(A,{span:12},{default:n(()=>[o(S,{title:`💰 收入分类`,size:`small`},{default:n(()=>[o(v,{columns:[{title:`排序`,dataIndex:`sortOrder`,width:55},{title:`图标`,key:`icon`,width:55},{title:`名称`,dataIndex:`name`,key:`name`},{title:``,key:`act`,width:90}],dataSource:k(),loading:C.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`icon`?(r(),u(`span`,x,f(D.find(e=>e.value===t.iconKey)?.label?.split(` `)[0]||`🏷️`),1)):m(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,type:`link`,onClick:e=>M(t)},{default:n(()=>[o(l(_))]),_:1},8,[`onClick`]),o(c,{title:`确定软删除?`,onConfirm:e=>P(t.id)},{default:n(()=>[o(a,{size:`small`,type:`link`,danger:``},{default:n(()=>[o(l(h))]),_:1})]),_:1},8,[`onConfirm`])],64)):m(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1})]),_:1})]),_:1}),o(H,{open:w.value,"onUpdate:open":i[3]||=e=>w.value=e,title:T.value?`编辑分类`:`新建系统分类`,onOk:N,width:400},{default:n(()=>[o(V,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(L,{label:`分类名称`},{default:n(()=>[o(I,{value:E.value.name,"onUpdate:value":i[0]||=e=>E.value.name=e,placeholder:`如:宠物`},null,8,[`value`])]),_:1}),o(L,{label:`图标`},{default:n(()=>[o(R,{value:E.value.iconKey,"onUpdate:value":i[1]||=e=>E.value.iconKey=e,options:D},null,8,[`value`])]),_:1}),o(L,{label:`类型`},{default:n(()=>[o(B,{value:E.value.type,"onUpdate:value":i[2]||=e=>E.value.type=e},{default:n(()=>[o(z,{value:`expense`},{default:n(()=>[...i[6]||=[p(`💸 支出`,-1)]]),_:1}),o(z,{value:`income`},{default:n(()=>[...i[7]||=[p(`💰 收入`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{S as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-BOgkBEQn.js b/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-BOgkBEQn.js
deleted file mode 100644
index 7d2b918..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-BOgkBEQn.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,xn as p,yn as m}from"./config-provider-q7ATIdCu.js";import{n as h,r as g,t as _}from"./EditOutlined-CeylGsUo.js";import{t as v}from"./api-BV_Zb8mM.js";var y={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},b={key:0,style:{"font-size":`18px`}},x={key:0,style:{"font-size":`18px`}},S=t({__name:`SysCategories`,setup(t){let S=a([]),C=a(!0),w=a(!1),T=a(null),E=a({name:``,iconKey:`tag`,type:`expense`}),D=[{value:`food`,label:`🍜 餐饮`},{value:`cup`,label:`🥤 饮品`},{value:`cart`,label:`🛒 购物`},{value:`metro`,label:`🚇 交通`},{value:`house`,label:`🏠 住房`},{value:`game`,label:`🎮 娱乐`},{value:`pill`,label:`💊 医疗`},{value:`book`,label:`📖 学习`},{value:`shirt`,label:`👕 服饰`},{value:`gift`,label:`🎁 人情`},{value:`plane`,label:`✈️ 旅行`},{value:`tag`,label:`🏷️ 其他`},{value:`money`,label:`💰 工资`},{value:`briefcase`,label:`💼 兼职`},{value:`chart`,label:`📈 理财`},{value:`card`,label:`💳 报销`},{value:`sparkle`,label:`✨ 奖金`}],O=()=>S.value.filter(e=>e.type===`Expense`),k=()=>S.value.filter(e=>e.type===`Income`);i(A);async function A(){C.value=!0;try{S.value=await v.sysCategories()}finally{C.value=!1}}function j(){T.value=null,E.value={name:``,iconKey:`tag`,type:`expense`},w.value=!0}function M(e){T.value=e,E.value={name:e.name,iconKey:e.iconKey,type:e.type===`Income`?`income`:`expense`},w.value=!0}async function N(){let e={name:E.value.name,iconKey:E.value.iconKey,type:E.value.type};T.value?await v.updateSysCategory(T.value.id,e):await v.createSysCategory(e),c.success(T.value?`已更新`:`已创建`),w.value=!1,A()}async function P(e){await v.deleteSysCategory(e),c.success(`已删除(软删)`),A()}return(t,i)=>{let a=e(`a-button`),c=e(`a-popconfirm`),v=e(`a-table`),S=e(`a-card`),A=e(`a-col`),F=e(`a-row`),I=e(`a-input`),L=e(`a-form-item`),R=e(`a-select`),z=e(`a-radio`),B=e(`a-radio-group`),V=e(`a-form`),H=e(`a-modal`);return r(),u(d,null,[s(`div`,y,[i[5]||=s(`h2`,null,`系统默认分类`,-1),o(a,{type:`primary`,onClick:j},{default:n(()=>[o(l(g)),i[4]||=p(` 新建分类`,-1)]),_:1})]),i[8]||=s(`p`,{style:{color:`#999`,"font-size":`12px`,"margin-bottom":`14px`}},` 此处管理新用户注册时获得的默认分类。删除后已分配用户的分类不受影响(软删除,仅对新用户隐藏)。 `,-1),o(F,{gutter:16},{default:n(()=>[o(A,{span:12},{default:n(()=>[o(S,{title:`💸 支出分类`,size:`small`},{default:n(()=>[o(v,{columns:[{title:`排序`,dataIndex:`sortOrder`,width:55},{title:`图标`,key:`icon`,width:55},{title:`名称`,dataIndex:`name`,key:`name`},{title:``,key:`act`,width:90}],dataSource:O(),loading:C.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`icon`?(r(),u(`span`,b,f(D.find(e=>e.value===t.iconKey)?.label?.split(` `)[0]||`🏷️`),1)):m(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,type:`link`,onClick:e=>M(t)},{default:n(()=>[o(l(_))]),_:1},8,[`onClick`]),o(c,{title:`确定软删除?`,onConfirm:e=>P(t.id)},{default:n(()=>[o(a,{size:`small`,type:`link`,danger:``},{default:n(()=>[o(l(h))]),_:1})]),_:1},8,[`onConfirm`])],64)):m(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1})]),_:1}),o(A,{span:12},{default:n(()=>[o(S,{title:`💰 收入分类`,size:`small`},{default:n(()=>[o(v,{columns:[{title:`排序`,dataIndex:`sortOrder`,width:55},{title:`图标`,key:`icon`,width:55},{title:`名称`,dataIndex:`name`,key:`name`},{title:``,key:`act`,width:90}],dataSource:k(),loading:C.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`icon`?(r(),u(`span`,x,f(D.find(e=>e.value===t.iconKey)?.label?.split(` `)[0]||`🏷️`),1)):m(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,type:`link`,onClick:e=>M(t)},{default:n(()=>[o(l(_))]),_:1},8,[`onClick`]),o(c,{title:`确定软删除?`,onConfirm:e=>P(t.id)},{default:n(()=>[o(a,{size:`small`,type:`link`,danger:``},{default:n(()=>[o(l(h))]),_:1})]),_:1},8,[`onConfirm`])],64)):m(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1})]),_:1})]),_:1}),o(H,{open:w.value,"onUpdate:open":i[3]||=e=>w.value=e,title:T.value?`编辑分类`:`新建系统分类`,onOk:N,width:400},{default:n(()=>[o(V,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(L,{label:`分类名称`},{default:n(()=>[o(I,{value:E.value.name,"onUpdate:value":i[0]||=e=>E.value.name=e,placeholder:`如:宠物`},null,8,[`value`])]),_:1}),o(L,{label:`图标`},{default:n(()=>[o(R,{value:E.value.iconKey,"onUpdate:value":i[1]||=e=>E.value.iconKey=e,options:D},null,8,[`value`])]),_:1}),o(L,{label:`类型`},{default:n(()=>[o(B,{value:E.value.type,"onUpdate:value":i[2]||=e=>E.value.type=e},{default:n(()=>[o(z,{value:`expense`},{default:n(()=>[...i[6]||=[p(`💸 支出`,-1)]]),_:1}),o(z,{value:`income`},{default:n(()=>[...i[7]||=[p(`💰 收入`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{S as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-DuRocsDz.js b/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-DuRocsDz.js
new file mode 100644
index 0000000..77ff54a
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/SysCategories-DuRocsDz.js
@@ -0,0 +1 @@
+import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,xn as p,yn as m}from"./config-provider-q7ATIdCu.js";import{n as h,t as g}from"./EditOutlined-h6ScL3Qz.js";import{t as _}from"./DeleteOutlined-yVoeJ3Fd.js";import{t as v}from"./api-wmB-hCXT.js";var y={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},b={key:0,style:{"font-size":`18px`}},x={key:0,style:{"font-size":`18px`}},S=t({__name:`SysCategories`,setup(t){let S=a([]),C=a(!0),w=a(!1),T=a(null),E=a({name:``,iconKey:`tag`,type:`expense`}),D=[{value:`food`,label:`🍜 餐饮`},{value:`cup`,label:`🥤 饮品`},{value:`cart`,label:`🛒 购物`},{value:`metro`,label:`🚇 交通`},{value:`house`,label:`🏠 住房`},{value:`game`,label:`🎮 娱乐`},{value:`pill`,label:`💊 医疗`},{value:`book`,label:`📖 学习`},{value:`shirt`,label:`👕 服饰`},{value:`gift`,label:`🎁 人情`},{value:`plane`,label:`✈️ 旅行`},{value:`tag`,label:`🏷️ 其他`},{value:`money`,label:`💰 工资`},{value:`briefcase`,label:`💼 兼职`},{value:`chart`,label:`📈 理财`},{value:`card`,label:`💳 报销`},{value:`sparkle`,label:`✨ 奖金`}],O=()=>S.value.filter(e=>e.type===`Expense`),k=()=>S.value.filter(e=>e.type===`Income`);i(A);async function A(){C.value=!0;try{S.value=await v.sysCategories()}finally{C.value=!1}}function j(){T.value=null,E.value={name:``,iconKey:`tag`,type:`expense`},w.value=!0}function M(e){T.value=e,E.value={name:e.name,iconKey:e.iconKey,type:e.type===`Income`?`income`:`expense`},w.value=!0}async function N(){let e={name:E.value.name,iconKey:E.value.iconKey,type:E.value.type};T.value?await v.updateSysCategory(T.value.id,e):await v.createSysCategory(e),c.success(T.value?`已更新`:`已创建`),w.value=!1,A()}async function P(e){await v.deleteSysCategory(e),c.success(`已删除(软删)`),A()}return(t,i)=>{let a=e(`a-button`),c=e(`a-popconfirm`),v=e(`a-table`),S=e(`a-card`),A=e(`a-col`),F=e(`a-row`),I=e(`a-input`),L=e(`a-form-item`),R=e(`a-select`),z=e(`a-radio`),B=e(`a-radio-group`),V=e(`a-form`),H=e(`a-modal`);return r(),u(d,null,[s(`div`,y,[i[5]||=s(`h2`,null,`系统默认分类`,-1),o(a,{type:`primary`,onClick:j},{default:n(()=>[o(l(h)),i[4]||=p(` 新建分类`,-1)]),_:1})]),i[8]||=s(`p`,{style:{color:`#999`,"font-size":`12px`,"margin-bottom":`14px`}},` 此处管理新用户注册时获得的默认分类。删除后已分配用户的分类不受影响(软删除,仅对新用户隐藏)。 `,-1),o(F,{gutter:16},{default:n(()=>[o(A,{span:12},{default:n(()=>[o(S,{title:`💸 支出分类`,size:`small`},{default:n(()=>[o(v,{columns:[{title:`排序`,dataIndex:`sortOrder`,width:55},{title:`图标`,key:`icon`,width:55},{title:`名称`,dataIndex:`name`,key:`name`},{title:``,key:`act`,width:90}],dataSource:O(),loading:C.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`icon`?(r(),u(`span`,b,f(D.find(e=>e.value===t.iconKey)?.label?.split(` `)[0]||`🏷️`),1)):m(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,type:`link`,onClick:e=>M(t)},{default:n(()=>[o(l(g))]),_:1},8,[`onClick`]),o(c,{title:`确定软删除?`,onConfirm:e=>P(t.id)},{default:n(()=>[o(a,{size:`small`,type:`link`,danger:``},{default:n(()=>[o(l(_))]),_:1})]),_:1},8,[`onConfirm`])],64)):m(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1})]),_:1}),o(A,{span:12},{default:n(()=>[o(S,{title:`💰 收入分类`,size:`small`},{default:n(()=>[o(v,{columns:[{title:`排序`,dataIndex:`sortOrder`,width:55},{title:`图标`,key:`icon`,width:55},{title:`名称`,dataIndex:`name`,key:`name`},{title:``,key:`act`,width:90}],dataSource:k(),loading:C.value,rowKey:`id`,size:`small`,pagination:{pageSize:10}},{bodyCell:n(({column:e,record:t})=>[e.key===`icon`?(r(),u(`span`,x,f(D.find(e=>e.value===t.iconKey)?.label?.split(` `)[0]||`🏷️`),1)):m(``,!0),e.key===`act`?(r(),u(d,{key:1},[o(a,{size:`small`,type:`link`,onClick:e=>M(t)},{default:n(()=>[o(l(g))]),_:1},8,[`onClick`]),o(c,{title:`确定软删除?`,onConfirm:e=>P(t.id)},{default:n(()=>[o(a,{size:`small`,type:`link`,danger:``},{default:n(()=>[o(l(_))]),_:1})]),_:1},8,[`onConfirm`])],64)):m(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1})]),_:1})]),_:1}),o(H,{open:w.value,"onUpdate:open":i[3]||=e=>w.value=e,title:T.value?`编辑分类`:`新建系统分类`,onOk:N,width:400},{default:n(()=>[o(V,{layout:`vertical`,style:{"margin-top":`8px`}},{default:n(()=>[o(L,{label:`分类名称`},{default:n(()=>[o(I,{value:E.value.name,"onUpdate:value":i[0]||=e=>E.value.name=e,placeholder:`如:宠物`},null,8,[`value`])]),_:1}),o(L,{label:`图标`},{default:n(()=>[o(R,{value:E.value.iconKey,"onUpdate:value":i[1]||=e=>E.value.iconKey=e,options:D},null,8,[`value`])]),_:1}),o(L,{label:`类型`},{default:n(()=>[o(B,{value:E.value.type,"onUpdate:value":i[2]||=e=>E.value.type=e},{default:n(()=>[o(z,{value:`expense`},{default:n(()=>[...i[6]||=[p(`💸 支出`,-1)]]),_:1}),o(z,{value:`income`},{default:n(()=>[...i[7]||=[p(`💰 收入`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])],64)}}});export{S as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Users-B1R9gLaP.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Users-B1R9gLaP.js
deleted file mode 100644
index 8b601b3..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Users-B1R9gLaP.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{t as g}from"./ReloadOutlined-CVrW_3-b.js";import{t as _}from"./api-C4vz6nB3.js";var v={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},y={style:{"margin-bottom":`14px`,display:`flex`,gap:`8px`}},b={key:0},x={key:1,style:{color:`#ccc`}},S={style:{color:`#999`}},C=15,w=t({__name:`Users`,setup(t){let w=a([]),T=a(0),E=a(!0),D=a(``),O=a(1),k=[{title:`ID`,dataIndex:`id`,key:`id`,width:60},{title:`用户名`,dataIndex:`username`,key:`un`,width:120},{title:`模式`,dataIndex:`appMode`,key:`mode`,width:80},{title:`AI 伙伴`,key:`comp`,width:150},{title:`账单(总/AI)`,key:`tx`},{title:`封禁`,dataIndex:`isBanned`,key:`ban`,width:70},{title:`注册时间`,dataIndex:`createdAt`,key:`reg`,width:110},{title:`最后登录`,dataIndex:`lastLoginAt`,key:`login`,width:110},{title:``,key:`act`,width:200}],A=a(!1),j=a(``),M=a(null);i(N);async function N(){E.value=!0;try{let e=await _.users({search:D.value||void 0,page:O.value,limit:C});w.value=e.list,T.value=e.total}finally{E.value=!1}}async function P(){O.value=1,N()}async function F(e){let t=await _.toggleBan(e.id);c.success(t.isBanned?`已封禁 ${e.username}`:`已解封 ${e.username}`),N()}async function I(e){j.value=e.nickname||e.username,A.value=!0,M.value=await _.userStats(e.id)}return(t,i)=>{let a=e(`a-button`),c=e(`a-input-search`),_=e(`a-tag`),L=e(`a-popconfirm`),R=e(`a-table`),z=e(`a-statistic`),B=e(`a-card`),V=e(`a-col`),H=e(`a-row`),U=e(`a-modal`);return r(),u(d,null,[s(`div`,v,[i[3]||=s(`h2`,null,`用户管理`,-1),o(a,{onClick:N},{default:n(()=>[o(l(g)),i[2]||=m(` 刷新`,-1)]),_:1})]),s(`div`,y,[o(c,{value:D.value,"onUpdate:value":i[0]||=e=>D.value=e,placeholder:`搜索用户名...`,style:{"max-width":`280px`},onSearch:P},null,8,[`value`])]),o(R,{columns:k,dataSource:w.value,loading:E.value,rowKey:`id`,size:`small`,pagination:{current:O.value,total:T.value,pageSize:C,showTotal:e=>`共 ${e} 人`,onChange:e=>{O.value=e,N()}}},{bodyCell:n(({column:e,record:t})=>[e.key===`mode`?(r(),p(_,{key:0,color:t.appMode===`ai`?`blue`:`green`},{default:n(()=>[m(f(t.appMode===`ai`?`全AI`:`普通`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`comp`?(r(),u(d,{key:1},[t.companion?(r(),u(`span`,b,`形象:`+f(t.companion.avatarKey)+` · 性格:`+f(t.companion.personaKey),1)):(r(),u(`span`,x,`未设置`))],64)):h(``,!0),e.key===`tx`?(r(),u(d,{key:2},[m(f(t.txCount)+` `,1),s(`span`,S,`(AI:`+f(t.aiTxCount)+`)`,1)],64)):h(``,!0),e.key===`ban`?(r(),p(_,{key:3,color:t.isBanned?`red`:`default`},{default:n(()=>[m(f(t.isBanned?`已封`:`正常`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`reg`?(r(),u(d,{key:4},[m(f(t.createdAt?.split(`T`)[0]),1)],64)):h(``,!0),e.key===`login`?(r(),u(d,{key:5},[m(f(t.lastLoginAt?t.lastLoginAt.split(`T`)[0]:`从未`),1)],64)):h(``,!0),e.key===`act`?(r(),u(d,{key:6},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>I(t)},{default:n(()=>[...i[4]||=[m(`📊 统计`,-1)]]),_:1},8,[`onClick`]),o(L,{title:t.isBanned?`确定解封?`:`确定封禁?`,onConfirm:e=>F(t)},{default:n(()=>[o(a,{size:`small`,danger:!t.isBanned},{default:n(()=>[m(f(t.isBanned?`解封`:`封禁`),1)]),_:2},1032,[`danger`])]),_:2},1032,[`title`,`onConfirm`])],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`,`pagination`]),o(U,{open:A.value,"onUpdate:open":i[1]||=e=>A.value=e,title:`${j.value} 使用统计`,footer:null,width:420},{default:n(()=>[M.value?(r(),p(H,{key:0,gutter:12},{default:n(()=>[o(V,{span:8},{default:n(()=>[o(B,{size:`small`},{default:n(()=>[o(z,{title:`总账单`,value:M.value.totalTransactions},null,8,[`value`])]),_:1})]),_:1}),o(V,{span:8},{default:n(()=>[o(B,{size:`small`},{default:n(()=>[o(z,{title:`AI 记账`,value:M.value.aiBooked},null,8,[`value`])]),_:1})]),_:1}),o(V,{span:8},{default:n(()=>[o(B,{size:`small`},{default:n(()=>[o(z,{title:`AI 准确率`,value:M.value.aiAccuracy,suffix:`%`,"value-style":{color:M.value.aiAccuracy>=70?`#00B386`:`#F0642D`}},null,8,[`value`,`value-style`])]),_:1})]),_:1})]),_:1})):h(``,!0)]),_:1},8,[`open`,`title`])],64)}}});export{w as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Users-BMT8aDm5.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Users-BMT8aDm5.js
new file mode 100644
index 0000000..354724d
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/Users-BMT8aDm5.js
@@ -0,0 +1 @@
+import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{t as ee}from"./ReloadOutlined-CVrW_3-b.js";import{t as g}from"./api-wmB-hCXT.js";import{t as _}from"./time-pIfF89ap.js";var v={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},y={style:{"margin-bottom":`14px`,display:`flex`,gap:`8px`}},te={style:{"font-size":`10px`,color:`#999`}},b={key:0},ne={key:1,style:{color:`#ccc`}},x={style:{color:`#999`}},S={key:2,style:{"font-size":`10px`,color:`#999`,"margin-top":`3px`}},C=15,w=t({__name:`Users`,setup(t){let w=a([]),T=a(0),E=a(!0),D=a(``),O=a(1),k=[{title:`ID`,dataIndex:`id`,key:`id`,width:60},{title:`用户名`,dataIndex:`username`,key:`un`,width:120},{title:`模式`,dataIndex:`appMode`,key:`mode`,width:80},{title:`AI 权限`,key:`aiPermission`,width:100},{title:`AI 对话额度`,key:`aiQuota`,width:150},{title:`AI 伙伴`,key:`comp`,width:150},{title:`账单(总/AI)`,key:`tx`},{title:`状态`,key:`status`,width:100},{title:`注册时间`,dataIndex:`createdAt`,key:`reg`,width:110},{title:`最后登录`,dataIndex:`lastLoginAt`,key:`login`,width:110},{title:``,key:`act`,width:250}],A=a(!1),j=a(``),M=a(null),N=a(!1),P=a(!1),F=a(null),I=a(50),L=a(`day`),R=a(!1),z={day:`每天`,week:`每周`,month:`每月`},B=e=>z[e];i(V);async function V(){E.value=!0;try{let e=await g.users({search:D.value||void 0,page:O.value,limit:C});w.value=e.list,T.value=e.total}finally{E.value=!1}}async function H(){O.value=1,V()}async function U(e){let t=await g.toggleBan(e.id);c.success(t.isBanned?`已封禁 ${e.username}`:`已解封 ${e.username}`),V()}async function W(e,t){let n=e.aiEnabled;e.aiEnabled=t;try{await g.updateUserPermissions(e.id,t),c.success(t?`已开放 AI 功能`:`已关闭该用户全部 AI 功能`)}catch{e.aiEnabled=n,c.error(`AI 权限修改失败`)}}function G(e){F.value=e,I.value=e.aiChatLimit,L.value=e.aiChatPeriod,R.value=!1,N.value=!0}async function K(){let e=F.value;if(e){P.value=!0;try{await g.updateAiChatQuota(e.id,I.value,L.value,R.value),c.success(`AI 对话额度已更新`),N.value=!1,await V()}catch{c.error(`AI 对话额度更新失败`)}finally{P.value=!1}}}async function re(e){await g.cancelAccountClosure(e.id),c.success(`已取消 `+e.username+` 的注销流程`),V()}async function ie(e){j.value=e.nickname||e.username,A.value=!0,M.value=await g.userStats(e.id)}return(t,i)=>{let a=e(`a-button`),c=e(`a-input-search`),g=e(`a-tag`),z=e(`a-switch`),q=e(`a-popconfirm`),ae=e(`a-table`),oe=e(`a-alert`),se=e(`a-input-number`),J=e(`a-form-item`),Y=e(`a-select-option`),ce=e(`a-select`),le=e(`a-checkbox`),ue=e(`a-form`),X=e(`a-modal`),Z=e(`a-statistic`),Q=e(`a-card`),$=e(`a-col`),de=e(`a-row`);return r(),u(d,null,[s(`div`,v,[i[7]||=s(`h2`,null,`用户管理`,-1),o(a,{onClick:V},{default:n(()=>[o(l(ee)),i[6]||=m(` 刷新`,-1)]),_:1})]),s(`div`,y,[o(c,{value:D.value,"onUpdate:value":i[0]||=e=>D.value=e,placeholder:`搜索用户名...`,style:{"max-width":`280px`},onSearch:H},null,8,[`value`])]),o(ae,{columns:k,dataSource:w.value,loading:E.value,rowKey:`id`,size:`small`,pagination:{current:O.value,total:T.value,pageSize:C,showTotal:e=>`共 ${e} 人`,onChange:e=>{O.value=e,V()}}},{bodyCell:n(({column:e,record:t})=>[e.key===`mode`?(r(),p(g,{key:0,color:t.appMode===`ai`?`blue`:`green`},{default:n(()=>[m(f(t.appMode===`ai`?`全AI`:`普通`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`aiPermission`?(r(),p(z,{key:1,checked:t.aiEnabled,"checked-children":`开`,"un-checked-children":`关`,onChange:e=>W(t,e)},null,8,[`checked`,`onChange`])):h(``,!0),e.key===`aiQuota`?(r(),u(d,{key:2},[o(a,{type:`link`,size:`small`,onClick:e=>G(t),style:{padding:`0`}},{default:n(()=>[m(f(t.aiChatUsed)+`/`+f(t.aiChatLimit===0?`不限`:t.aiChatLimit)+` · `+f(B(t.aiChatPeriod)),1)]),_:2},1032,[`onClick`]),s(`div`,te,f(l(_)(t.aiChatResetAt))+` 重置 `,1)],64)):h(``,!0),e.key===`comp`?(r(),u(d,{key:3},[t.companion?(r(),u(`span`,b,`形象:`+f(t.companion.avatarKey)+` · 性格:`+f(t.companion.personaKey),1)):(r(),u(`span`,ne,`未设置`))],64)):h(``,!0),e.key===`tx`?(r(),u(d,{key:4},[m(f(t.txCount)+` `,1),s(`span`,x,`(AI:`+f(t.aiTxCount)+`)`,1)],64)):h(``,!0),e.key===`status`?(r(),u(d,{key:5},[t.accountClosureScheduledAt?(r(),p(g,{key:0,color:`orange`},{default:n(()=>[...i[8]||=[m(`注销中`,-1)]]),_:1})):(r(),p(g,{key:1,color:t.isBanned?`red`:`default`},{default:n(()=>[m(f(t.isBanned?`已封`:`正常`),1)]),_:2},1032,[`color`])),t.accountClosureScheduledAt?(r(),u(`div`,S,f(l(_)(t.accountClosureScheduledAt))+` 删除 `,1)):h(``,!0)],64)):h(``,!0),e.key===`reg`?(r(),u(d,{key:6},[m(f(l(_)(t.createdAt)),1)],64)):h(``,!0),e.key===`login`?(r(),u(d,{key:7},[m(f(t.lastLoginAt?l(_)(t.lastLoginAt):`从未`),1)],64)):h(``,!0),e.key===`act`?(r(),u(d,{key:8},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>G(t)},{default:n(()=>[...i[9]||=[m(`额度`,-1)]]),_:1},8,[`onClick`]),o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>ie(t)},{default:n(()=>[...i[10]||=[m(`📊 统计`,-1)]]),_:1},8,[`onClick`]),t.accountClosureScheduledAt?(r(),p(q,{key:0,title:`确定取消该用户的注销流程?`,onConfirm:e=>re(t)},{default:n(()=>[o(a,{size:`small`,type:`primary`},{default:n(()=>[...i[11]||=[m(`取消注销`,-1)]]),_:1})]),_:1},8,[`onConfirm`])):(r(),p(q,{key:1,title:t.isBanned?`确定解封?`:`确定封禁?`,onConfirm:e=>U(t)},{default:n(()=>[o(a,{size:`small`,danger:!t.isBanned},{default:n(()=>[m(f(t.isBanned?`解封`:`封禁`),1)]),_:2},1032,[`danger`])]),_:2},1032,[`title`,`onConfirm`]))],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`,`pagination`]),o(X,{open:N.value,"onUpdate:open":i[4]||=e=>N.value=e,title:`调整 AI 对话额度`,"confirm-loading":P.value,"ok-text":`保存`,"cancel-text":`取消`,onOk:K},{default:n(()=>[F.value?(r(),p(oe,{key:0,type:`info`,message:F.value.nickname||F.value.username,"show-icon":``,style:{"margin-bottom":`14px`}},null,8,[`message`])):h(``,!0),o(ue,{layout:`vertical`},{default:n(()=>[o(J,{label:`周期内可用次数`},{default:n(()=>[o(se,{value:I.value,"onUpdate:value":i[1]||=e=>I.value=e,min:0,max:1e6,style:{width:`100%`}},null,8,[`value`]),i[12]||=s(`div`,{style:{"font-size":`11px`,color:`#999`,"margin-top":`4px`}},`设置为 0 表示不限次数。`,-1)]),_:1}),o(J,{label:`重置周期`},{default:n(()=>[o(ce,{value:L.value,"onUpdate:value":i[2]||=e=>L.value=e},{default:n(()=>[o(Y,{value:`day`},{default:n(()=>[...i[13]||=[m(`每天(上海时间 00:00)`,-1)]]),_:1}),o(Y,{value:`week`},{default:n(()=>[...i[14]||=[m(`每周(周一 00:00)`,-1)]]),_:1}),o(Y,{value:`month`},{default:n(()=>[...i[15]||=[m(`每月(每月 1 日 00:00)`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1}),o(le,{checked:R.value,"onUpdate:checked":i[3]||=e=>R.value=e},{default:n(()=>[...i[16]||=[m(`立即将本周期已用次数清零`,-1)]]),_:1},8,[`checked`])]),_:1})]),_:1},8,[`open`,`confirm-loading`]),o(X,{open:A.value,"onUpdate:open":i[5]||=e=>A.value=e,title:`${j.value} 使用统计`,footer:null,width:420},{default:n(()=>[M.value?(r(),p(de,{key:0,gutter:12},{default:n(()=>[o($,{span:8},{default:n(()=>[o(Q,{size:`small`},{default:n(()=>[o(Z,{title:`总账单`,value:M.value.totalTransactions},null,8,[`value`])]),_:1})]),_:1}),o($,{span:8},{default:n(()=>[o(Q,{size:`small`},{default:n(()=>[o(Z,{title:`AI 记账`,value:M.value.aiBooked},null,8,[`value`])]),_:1})]),_:1}),o($,{span:8},{default:n(()=>[o(Q,{size:`small`},{default:n(()=>[o(Z,{title:`AI 准确率`,value:M.value.aiAccuracy,suffix:`%`,"value-style":{color:M.value.aiAccuracy>=70?`#00B386`:`#F0642D`}},null,8,[`value`,`value-style`])]),_:1})]),_:1})]),_:1})):h(``,!0)]),_:1},8,[`open`,`title`])],64)}}});export{w as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/Users-DYYWsaDQ.js b/backend/MiaoJiZhang.Api/wwwroot/assets/Users-DYYWsaDQ.js
deleted file mode 100644
index 5f4214c..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/Users-DYYWsaDQ.js
+++ /dev/null
@@ -1 +0,0 @@
-import{Bn as e,Cn as t,Kn as n,Ln as r,Pn as i,Qn as a,Sn as o,_n as s,a as c,ar as l,bn as u,fn as d,or as f,vn as p,xn as m,yn as h}from"./config-provider-q7ATIdCu.js";import{t as g}from"./ReloadOutlined-CVrW_3-b.js";import{t as _}from"./api-BV_Zb8mM.js";var v={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`16px`}},y={style:{"margin-bottom":`14px`,display:`flex`,gap:`8px`}},b={key:0},x={key:1,style:{color:`#ccc`}},S={style:{color:`#999`}},C={key:2,style:{"font-size":`10px`,color:`#999`,"margin-top":`3px`}},w=15,T=t({__name:`Users`,setup(t){let T=a([]),E=a(0),D=a(!0),O=a(``),k=a(1),A=[{title:`ID`,dataIndex:`id`,key:`id`,width:60},{title:`用户名`,dataIndex:`username`,key:`un`,width:120},{title:`模式`,dataIndex:`appMode`,key:`mode`,width:80},{title:`AI 伙伴`,key:`comp`,width:150},{title:`账单(总/AI)`,key:`tx`},{title:`状态`,key:`status`,width:100},{title:`注册时间`,dataIndex:`createdAt`,key:`reg`,width:110},{title:`最后登录`,dataIndex:`lastLoginAt`,key:`login`,width:110},{title:``,key:`act`,width:200}],j=a(!1),M=a(``),N=a(null);i(P);async function P(){D.value=!0;try{let e=await _.users({search:O.value||void 0,page:k.value,limit:w});T.value=e.list,E.value=e.total}finally{D.value=!1}}async function F(){k.value=1,P()}async function I(e){let t=await _.toggleBan(e.id);c.success(t.isBanned?`已封禁 ${e.username}`:`已解封 ${e.username}`),P()}async function L(e){await _.cancelAccountClosure(e.id),c.success(`已取消 `+e.username+` 的注销流程`),P()}async function R(e){M.value=e.nickname||e.username,j.value=!0,N.value=await _.userStats(e.id)}return(t,i)=>{let a=e(`a-button`),c=e(`a-input-search`),_=e(`a-tag`),z=e(`a-popconfirm`),B=e(`a-table`),V=e(`a-statistic`),H=e(`a-card`),U=e(`a-col`),W=e(`a-row`),G=e(`a-modal`);return r(),u(d,null,[s(`div`,v,[i[3]||=s(`h2`,null,`用户管理`,-1),o(a,{onClick:P},{default:n(()=>[o(l(g)),i[2]||=m(` 刷新`,-1)]),_:1})]),s(`div`,y,[o(c,{value:O.value,"onUpdate:value":i[0]||=e=>O.value=e,placeholder:`搜索用户名...`,style:{"max-width":`280px`},onSearch:F},null,8,[`value`])]),o(B,{columns:A,dataSource:T.value,loading:D.value,rowKey:`id`,size:`small`,pagination:{current:k.value,total:E.value,pageSize:w,showTotal:e=>`共 ${e} 人`,onChange:e=>{k.value=e,P()}}},{bodyCell:n(({column:e,record:t})=>[e.key===`mode`?(r(),p(_,{key:0,color:t.appMode===`ai`?`blue`:`green`},{default:n(()=>[m(f(t.appMode===`ai`?`全AI`:`普通`),1)]),_:2},1032,[`color`])):h(``,!0),e.key===`comp`?(r(),u(d,{key:1},[t.companion?(r(),u(`span`,b,`形象:`+f(t.companion.avatarKey)+` · 性格:`+f(t.companion.personaKey),1)):(r(),u(`span`,x,`未设置`))],64)):h(``,!0),e.key===`tx`?(r(),u(d,{key:2},[m(f(t.txCount)+` `,1),s(`span`,S,`(AI:`+f(t.aiTxCount)+`)`,1)],64)):h(``,!0),e.key===`status`?(r(),u(d,{key:3},[t.accountClosureScheduledAt?(r(),p(_,{key:0,color:`orange`},{default:n(()=>[...i[4]||=[m(`注销中`,-1)]]),_:1})):(r(),p(_,{key:1,color:t.isBanned?`red`:`default`},{default:n(()=>[m(f(t.isBanned?`已封`:`正常`),1)]),_:2},1032,[`color`])),t.accountClosureScheduledAt?(r(),u(`div`,C,f(t.accountClosureScheduledAt.split(`T`)[0])+` 删除 `,1)):h(``,!0)],64)):h(``,!0),e.key===`reg`?(r(),u(d,{key:4},[m(f(t.createdAt?.split(`T`)[0]),1)],64)):h(``,!0),e.key===`login`?(r(),u(d,{key:5},[m(f(t.lastLoginAt?t.lastLoginAt.split(`T`)[0]:`从未`),1)],64)):h(``,!0),e.key===`act`?(r(),u(d,{key:6},[o(a,{size:`small`,style:{"margin-right":`6px`},onClick:e=>R(t)},{default:n(()=>[...i[5]||=[m(`📊 统计`,-1)]]),_:1},8,[`onClick`]),t.accountClosureScheduledAt?(r(),p(z,{key:0,title:`确定取消该用户的注销流程?`,onConfirm:e=>L(t)},{default:n(()=>[o(a,{size:`small`,type:`primary`},{default:n(()=>[...i[6]||=[m(`取消注销`,-1)]]),_:1})]),_:1},8,[`onConfirm`])):(r(),p(z,{key:1,title:t.isBanned?`确定解封?`:`确定封禁?`,onConfirm:e=>I(t)},{default:n(()=>[o(a,{size:`small`,danger:!t.isBanned},{default:n(()=>[m(f(t.isBanned?`解封`:`封禁`),1)]),_:2},1032,[`danger`])]),_:2},1032,[`title`,`onConfirm`]))],64)):h(``,!0)]),_:1},8,[`dataSource`,`loading`,`pagination`]),o(G,{open:j.value,"onUpdate:open":i[1]||=e=>j.value=e,title:`${M.value} 使用统计`,footer:null,width:420},{default:n(()=>[N.value?(r(),p(W,{key:0,gutter:12},{default:n(()=>[o(U,{span:8},{default:n(()=>[o(H,{size:`small`},{default:n(()=>[o(V,{title:`总账单`,value:N.value.totalTransactions},null,8,[`value`])]),_:1})]),_:1}),o(U,{span:8},{default:n(()=>[o(H,{size:`small`},{default:n(()=>[o(V,{title:`AI 记账`,value:N.value.aiBooked},null,8,[`value`])]),_:1})]),_:1}),o(U,{span:8},{default:n(()=>[o(H,{size:`small`},{default:n(()=>[o(V,{title:`AI 准确率`,value:N.value.aiAccuracy,suffix:`%`,"value-style":{color:N.value.aiAccuracy>=70?`#00B386`:`#F0642D`}},null,8,[`value`,`value-style`])]),_:1})]),_:1})]),_:1})):h(``,!0)]),_:1},8,[`open`,`title`])],64)}}});export{T as default};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/api-C4vz6nB3.js b/backend/MiaoJiZhang.Api/wwwroot/assets/api-C4vz6nB3.js
deleted file mode 100644
index 44d985b..0000000
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/api-C4vz6nB3.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import{a as e}from"./config-provider-q7ATIdCu.js";import{t}from"./index-Dt7HDEKz.js";function n(e,t){return function(){return e.apply(t,arguments)}}var{toString:r}=Object.prototype,{getPrototypeOf:i}=Object,{iterator:a,toStringTag:o}=Symbol,s=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),c=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),s(n,t))return!0;n=i(n)}return!1},l=(e,t)=>e!=null&&c(e,t)?e[t]:void 0,u=(e=>t=>{let n=r.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),d=e=>(e=e.toLowerCase(),t=>u(t)===e),f=e=>t=>typeof t===e,{isArray:p}=Array,m=f(`undefined`);function h(e){return e!==null&&!m(e)&&e.constructor!==null&&!m(e.constructor)&&y(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var g=d(`ArrayBuffer`);function _(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&g(e.buffer),t}var v=f(`string`),y=f(`function`),b=f(`number`),x=e=>typeof e==`object`&&!!e,S=e=>e===!0||e===!1,C=e=>{if(!x(e))return!1;let t=i(e);return(t===null||t===Object.prototype||i(t)===null)&&!c(e,o)&&!c(e,a)},w=e=>{if(!x(e)||h(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},T=d(`Date`),E=d(`File`),D=e=>!!(e&&e.uri!==void 0),ee=e=>e&&e.getParts!==void 0,te=d(`Blob`),O=d(`FileList`),k=e=>x(e)&&y(e.pipe);function A(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var j=A(),M=j.FormData===void 0?void 0:j.FormData,ne=e=>{if(!e)return!1;if(M&&e instanceof M)return!0;let t=i(e);if(!t||t===Object.prototype||!y(e.append))return!1;let n=u(e);return n===`formdata`||n===`object`&&y(e.toString)&&e.toString()===`[object FormData]`},re=d(`URLSearchParams`),[ie,N,ae,oe]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(d),P=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function F(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),p(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var I=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,ce=e=>!m(e)&&e!==I;function le(...e){let{caseless:t,skipUndefined:n}=ce(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&se(r,i)||i,o=s(r,a)?r[a]:void 0;C(o)&&C(e)?r[a]=le(o,e):C(e)?r[a]=le({},e):p(e)?r[a]=e.slice():(!n||!m(e))&&(r[a]=e)};for(let t=0,n=e.length;t(F(t,(t,i)=>{r&&y(t)?Object.defineProperty(e,i,{__proto__:null,value:n(t,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),e),de=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fe=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},pe=(e,t,n,r)=>{let a,o,s,c={};if(t||={},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),o=a.length;o-->0;)s=a[o],(!r||r(s,e,t))&&!c[s]&&(t[s]=e[s],c[s]=!0);e=n!==!1&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},me=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},he=e=>{if(!e)return null;if(p(e))return e;let t=e.length;if(!b(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},ge=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&i(Uint8Array)),_e=(e,t)=>{let n=(e&&e[a]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},ve=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ye=d(`HTMLFormElement`),be=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:xe}=Object.prototype,Se=d(`RegExp`),Ce=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};F(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},we=e=>{Ce(e,(t,n)=>{if(y(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(y(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Te=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return p(e)?r(e):r(String(e).split(t)),n},Ee=()=>{},De=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Oe(e){return!!(e&&y(e.append)&&e[o]===`FormData`&&e[a])}var ke=e=>{let t=new WeakSet,n=e=>{if(x(e)){if(t.has(e))return;if(h(e))return e;if(!(`toJSON`in e)){t.add(e);let r=p(e)?[]:{};return F(e,(e,t)=>{let i=n(e);!m(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},Ae=d(`AsyncFunction`),je=e=>e&&(x(e)||y(e))&&y(e.then)&&y(e.catch),Me=((e,t)=>e?setImmediate:t?((e,t)=>(I.addEventListener(`message`,({source:n,data:r})=>{n===I&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),I.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,y(I.postMessage)),Ne=typeof queueMicrotask<`u`?queueMicrotask.bind(I):typeof process<`u`&&process.nextTick||Me,Pe=e=>e!=null&&y(e[a]),L={isArray:p,isArrayBuffer:g,isBuffer:h,isFormData:ne,isArrayBufferView:_,isString:v,isNumber:b,isBoolean:S,isObject:x,isPlainObject:C,isEmptyObject:w,isReadableStream:ie,isRequest:N,isResponse:ae,isHeaders:oe,isUndefined:m,isDate:T,isFile:E,isReactNativeBlob:D,isReactNative:ee,isBlob:te,isRegExp:Se,isFunction:y,isStream:k,isURLSearchParams:re,isTypedArray:ge,isFileList:O,forEach:F,merge:le,extend:ue,trim:P,stripBOM:de,inherits:fe,toFlatObject:pe,kindOf:u,kindOfTest:d,endsWith:me,toArray:he,forEachEntry:_e,matchAll:ve,isHTMLForm:ye,hasOwnProperty:s,hasOwnProp:s,hasOwnInPrototypeChain:c,getSafeProp:l,reduceDescriptors:Ce,freezeMethods:we,toObjectSet:Te,toCamelCase:be,noop:Ee,toFiniteNumber:De,findKey:se,global:I,isContextDefined:ce,isSpecCompliantForm:Oe,toJSONObject:ke,isAsyncFn:Ae,isThenable:je,setImmediate:Me,asap:Ne,isIterable:Pe,isSafeIterable:e=>e!=null&&c(e,a)&&Pe(e)},Fe=L.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Ie=e=>{let t={},n,r,i;return e&&e.split(`
-`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&Fe[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t};function Le(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var Re=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),ze=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function Be(e,t){return L.isArray(e)?e.map(e=>Be(e,t)):Le(String(e).replace(t,``))}var Ve=e=>Be(e,Re),He=e=>Be(e,ze);function Ue(e){let t=Object.create(null);return L.forEach(e.toJSON(),(e,n)=>{t[n]=He(e)}),t}var We=Symbol(`internals`);function R(e){return e&&String(e).trim().toLowerCase()}function Ge(e){return e===!1||e==null?e:L.isArray(e)?e.map(Ge):Ve(String(e))}function Ke(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var qe=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Je(e,t,n,r,i){if(L.isFunction(r))return r.call(this,t,n);if(i&&(t=n),L.isString(t)){if(L.isString(r))return t.indexOf(r)!==-1;if(L.isRegExp(r))return r.test(t)}}function Ye(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function Xe(e,t){let n=L.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var z=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=R(t);if(!i)return;let a=L.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=Ge(e))}let a=(e,t)=>L.forEach(e,(e,n)=>i(e,n,t));if(L.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(L.isString(e)&&(e=e.trim())&&!qe(e))a(Ie(e),t);else if(L.isObject(e)&&L.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!L.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],L.hasOwnProp(n,i)?(r=n[i],n[i]=L.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=R(e),e){let n=L.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return Ke(e);if(L.isFunction(t))return t.call(this,e,n);if(L.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=R(e),e){let n=L.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||Je(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=R(e),e){let i=L.findKey(n,e);i&&(!t||Je(n,n[i],i,t))&&(delete n[i],r=!0)}}return L.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||Je(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return L.forEach(this,(r,i)=>{let a=L.findKey(n,i);if(a){t[a]=Ge(r),delete t[i];return}let o=e?Ye(i):String(i).trim();o!==i&&delete t[i],t[o]=Ge(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return L.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&L.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(`
-`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[We]=this[We]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=R(e);t[r]||(Xe(n,e),t[r]=!0)}return L.isArray(e)?e.forEach(r):r(e),this}};z.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),L.reduceDescriptors(z.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),L.freezeMethods(z);var Ze=`[REDACTED ****]`;function Qe(e){if(L.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(L.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function $e(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||L.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof z&&(e=e.toJSON()),r.push(e);let t;if(L.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);L.isUndefined(r)||(t[n]=r)});else{if(!L.isPlainObject(e)&&Qe(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?Ze:i(a);L.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}var B=class e extends Error{static from(t,n,r,i,a,o){let s=new e(t.message,n||t.code,r,i,a);return Object.defineProperty(s,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&L.hasOwnProp(e,`redact`)?e.redact:void 0,n=L.isArray(t)&&t.length>0?$e(e,t):L.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};B.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,B.ERR_BAD_OPTION=`ERR_BAD_OPTION`,B.ECONNABORTED=`ECONNABORTED`,B.ETIMEDOUT=`ETIMEDOUT`,B.ECONNREFUSED=`ECONNREFUSED`,B.ERR_NETWORK=`ERR_NETWORK`,B.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,B.ERR_DEPRECATED=`ERR_DEPRECATED`,B.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,B.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,B.ERR_CANCELED=`ERR_CANCELED`,B.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,B.ERR_INVALID_URL=`ERR_INVALID_URL`,B.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function et(e){return L.isPlainObject(e)||L.isArray(e)}function tt(e){return L.endsWith(e,`[]`)?e.slice(0,-2):e}function nt(e,t,n){return e?e.concat(t).map(function(e,t){return e=tt(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function rt(e){return L.isArray(e)&&!e.some(et)}var it=L.toFlatObject(L,{},null,function(e){return/^is[A-Z]/.test(e)});function V(e,t,n){if(!L.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=L.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!L.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&L.isSpecCompliantForm(t),u=[];if(!L.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(L.isDate(e))return e.toISOString();if(L.isBoolean(e))return e.toString();if(!l&&L.isBlob(e))throw new B(`Blob is not supported. Use a Buffer instead.`);if(L.isArrayBuffer(e)||L.isTypedArray(e)){if(l&&typeof s==`function`)return new s([e]);if(typeof Buffer<`u`)return Buffer.from(e);throw new B(`Blob is not supported. Use a Buffer instead.`,B.ERR_NOT_SUPPORT)}return e}function f(e){if(e>c)throw new B(`Object is too deeply nested (`+e+` levels). Max depth: `+c,B.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!L.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(L.isReactNative(t)&&L.isReactNativeBlob(e))return t.append(nt(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(L.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(L.isArray(e)&&rt(e)||(L.isFileList(e)||L.endsWith(n,`[]`))&&(s=L.toArray(e)))return n=tt(n),s.forEach(function(e,r){!(L.isUndefined(e)||e===null)&&t.append(o===!0?nt([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return et(e)?!0:(t.append(nt(i,n,a),d(e)),!1)}let h=Object.assign(it,{defaultVisitor:m,convertValue:d,isVisitable:et});function g(e,n,r=0){if(!L.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),L.forEach(e,function(e,a){(!(L.isUndefined(e)||e===null)&&i.call(t,e,L.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!L.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function at(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function ot(e,t){this._pairs=[],e&&V(e,this,t)}var st=ot.prototype;st.append=function(e,t){this._pairs.push([e,t])},st.toString=function(e){let t=e?t=>e.call(this,t,at):at;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function ct(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function lt(e,t,n){if(!t)return e;e||=``;let r=L.isFunction(n)?{serialize:n}:n,i=L.getSafeProp(r,`encode`)||ct,a=L.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):L.isURLSearchParams(t)?t.toString():new ot(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var ut=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&=[]}forEach(e){L.forEach(this.handlers,function(t){t!==null&&e(t)})}},dt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},ft={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:ot,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},pt=t({hasBrowserEnv:()=>mt,hasStandardBrowserEnv:()=>gt,hasStandardBrowserWebWorkerEnv:()=>_t,navigator:()=>ht,origin:()=>vt}),mt=typeof window<`u`&&typeof document<`u`,ht=typeof navigator==`object`&&navigator||void 0,gt=mt&&(!ht||[`ReactNative`,`NativeScript`,`NS`].indexOf(ht.product)<0),_t=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,vt=mt&&window.location.href||`http://localhost`,H={...pt,...ft};function yt(e,t){return V(e,new H.classes.URLSearchParams,{visitor:function(e,t,n,r){return H.isNode&&L.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var bt=100;function xt(e){if(e>bt)throw new B(`FormData field is too deeply nested (`+e+` levels). Max depth: `+bt,B.ERR_FORM_DATA_DEPTH_EXCEEDED)}function St(e){let t=[],n=/\w+|\[(\w*)]/g,r;for(;(r=n.exec(e))!==null;)xt(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Ct(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&L.isArray(r)?r.length:a,s?(L.hasOwnProp(r,a)?r[a]=L.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!L.hasOwnProp(r,a)||!L.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&L.isArray(r[a])&&(r[a]=Ct(r[a])),!o)}if(L.isFormData(e)&&L.isFunction(e.entries)){let n={};return L.forEachEntry(e,(e,r)=>{t(St(e),r,n,0)}),n}return null}var U=(e,t)=>e!=null&&L.hasOwnProp(e,t)?e[t]:void 0;function Tt(e,t,n){if(L.isString(e))try{return(t||JSON.parse)(e),L.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var W={transitional:dt,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=L.isObject(e);if(i&&L.isHTMLForm(e)&&(e=new FormData(e)),L.isFormData(e))return r?JSON.stringify(wt(e)):e;if(L.isArrayBuffer(e)||L.isBuffer(e)||L.isStream(e)||L.isFile(e)||L.isBlob(e)||L.isReadableStream(e))return e;if(L.isArrayBufferView(e))return e.buffer;if(L.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=U(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return yt(e,t).toString();if((a=L.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=U(this,`env`),r=n&&n.FormData;return V(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),Tt(e)):e}],transformResponse:[function(e){let t=U(this,`transitional`)||W.transitional,n=t&&t.forcedJSONParsing,r=U(this,`responseType`),i=r===`json`;if(L.isResponse(e)||L.isReadableStream(e))return e;if(e&&L.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,U(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?B.from(e,B.ERR_BAD_RESPONSE,this,null,U(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:H.classes.FormData,Blob:H.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{W.headers[e]={}});function Et(e,t){let n=this||W,r=t||n,i=z.from(r.headers),a=r.data;return L.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Dt(e){return!!(e&&e.__CANCEL__)}var G=class extends B{constructor(e,t,n){super(e??`canceled`,B.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function Ot(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new B(`Request failed with status code `+n.status,n.status>=400&&n.status<500?B.ERR_BAD_REQUEST:B.ERR_BAD_RESPONSE,n.config,n.request,n))}function kt(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function At(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var K=(e,t,n=3)=>{let r=0,i=At(50,250);return jt(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=o==null?a:Math.min(a,o),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},Mt=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Nt=e=>(...t)=>L.asap(()=>e(...t)),Pt=H.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,H.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(H.origin),H.navigator&&/(msie|trident)/i.test(H.navigator.userAgent)):()=>!0,Ft=H.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];L.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),L.isString(r)&&s.push(`path=${r}`),L.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),L.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;ne instanceof z?{...e}:e;function q(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return L.isPlainObject(e)&&L.isPlainObject(t)?L.merge.call({caseless:r},e,t):L.isPlainObject(t)?L.merge({},t):L.isArray(t)?t.slice():t}function i(e,t,n,i){if(!L.isUndefined(t))return r(e,t,n,i);if(!L.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!L.isUndefined(t))return r(void 0,t)}function o(e,t){if(!L.isUndefined(t))return r(void 0,t);if(!L.isUndefined(e))return r(void 0,e)}function s(n){let r=L.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!L.isUndefined(r))if(L.isPlainObject(r)){if(L.hasOwnProp(r,n))return r[n]}else return;let i=L.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(L.isPlainObject(i)&&L.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(L.hasOwnProp(t,a))return r(n,i);if(L.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(Wt(e),Wt(t),n,!0)};return L.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=L.hasOwnProp(l,r)?l[r]:i,o=a(L.hasOwnProp(e,r)?e[r]:void 0,L.hasOwnProp(t,r)?t[r]:void 0,r);L.isUndefined(o)&&a!==c||(n[r]=o)}),L.hasOwnProp(t,`validateStatus`)&&L.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(L.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var Gt=[`content-type`,`content-length`];function Kt(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{Gt.includes(t.toLowerCase())&&e.set(t,n)})}var qt=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function Jt(e){let t=q({},e),n=e=>L.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=z.from(s),t.url=lt(Ut(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=L.getSafeProp(c,`username`)||``,n=L.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?qt(n):``)))}catch(t){throw B.from(t,B.ERR_BAD_OPTION_VALUE,e)}}if(L.isFormData(r)&&(H.hasStandardBrowserEnv||H.hasStandardBrowserWebWorkerEnv||L.isReactNative(r)?s.setContentType(void 0):L.isFunction(r.getHeaders)&&Kt(s,r.getHeaders(),n(`formDataHeaderPolicy`))),H.hasStandardBrowserEnv&&(L.isFunction(i)&&(i=i(t)),i===!0||i==null&&Pt(t.url))){let e=a&&o&&Ft.read(o);e&&s.set(a,e)}return t}var Yt=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=Jt(e),i=r.data,a=z.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=z.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());Ot(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.startsWith(`file:`))||setTimeout(g)},h.onabort=function(){h&&=(n(new B(`Request aborted`,B.ECONNABORTED,e,h)),m(),null)},h.onerror=function(t){let r=new B(t&&t.message?t.message:`Network Error`,B.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||dt;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new B(t,i.clarifyTimeoutError?B.ETIMEDOUT:B.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&L.forEach(Ue(a),function(e,t){h.setRequestHeader(t,e)}),L.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=K(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=K(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new G(null,e,h):t),h.abort(),m(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=kt(r.url);if(_&&!H.protocols.includes(_)){n(new B(`Unsupported protocol `+_+`:`,B.ERR_BAD_REQUEST,e)),m();return}h.send(i||null)})},Xt=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof B?t:new G(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new B(`timeout of ${t}ms exceeded`,B.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>e.addEventListener(`abort`,i,{once:!0}));let{signal:s}=n;return s.unsubscribe=()=>L.asap(o),s},Zt=function*(e,t){let n=e.byteLength;if(!t||n{let i=Qt(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},J=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,tn=(e,t,n)=>t+2e>=2&&r.charCodeAt(e-2)===37&&r.charCodeAt(e-1)===51&&(r.charCodeAt(e)===68||r.charCodeAt(e)===100);i>=0&&(r.charCodeAt(i)===61?(n++,i--):a(i)&&(n++,i-=3)),n===1&&i>=0&&(r.charCodeAt(i)===61||a(i))&&n++;let o=Math.floor(e/4)*3-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}var rn=`1.18.1`,an=64*1024,{isFunction:on}=L,sn=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),cn=e=>{if(!L.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},ln=(e,...t)=>{try{return!!e(...t)}catch{return!1}},un=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},dn=e=>{let t=L.global!==void 0&&L.global!==null?L.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=L.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?on(i):typeof fetch==`function`,c=on(a),l=on(o);if(!s)return!1;let u=s&&on(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&ln(()=>{let e=!1,t=new a(H.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&ln(()=>L.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new B(`Response type '${e}' is not supported`,B.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(L.isBlob(e))return e.size;if(L.isSpecCompliantForm(e))return(await new a(H.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(L.isArrayBufferView(e)||L.isArrayBuffer(e))return e.byteLength;if(L.isURLSearchParams(e)&&(e+=``),L.isString(e))return(await d(e)).byteLength},g=async(e,t)=>L.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=Jt(e),E=L.isNumber(w)&&w>-1,D=L.isNumber(T)&&T>-1,ee=t=>L.hasOwnProp(e,t)?e[t]:void 0,te=i||fetch;b=b?(b+``).toLowerCase():`text`;let O=Xt([l,d&&d.toAbortSignal()],_),k=null,A=O&&O.unsubscribe&&(()=>{O.unsubscribe()}),j,M=null,ne=()=>new B(`Request body larger than maxBodyLength limit`,B.ERR_BAD_REQUEST,e,k);try{let i,l=ee(`auth`);if(l&&(i={username:L.getSafeProp(l,`username`)||``,password:L.getSafeProp(l,`password`)||``}),un(t)){let e=new URL(t,H.origin);!i&&(e.username||e.password)&&(i={username:cn(e.username),password:cn(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(sn((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&nn(t)>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(j=e,e>T))throw ne()}let d=D&&(L.isReadableStream(s)||L.isStream(s)),_=(e,t,n)=>en(e,an,e=>{if(D&&e>T)throw M=ne();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(j??=await g(x,s),j!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(L.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&Mt(j,K(Nt(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new B(`Stream request bodies are not supported by the current fetch implementation`,B.ERR_NOT_SUPPORT,e,k);L.isString(S)||(S=S?`include`:`omit`);let re=c&&`credentials`in a.prototype;if(L.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+rn,!1);let ie={...C,signal:O,method:n.toUpperCase(),headers:Ue(x.normalize()),body:s,duplex:`half`,credentials:re?S:void 0};k=c&&new a(t,ie);let N=await(c?te(k,C):te(t,ie)),ae=z.from(N.headers);if(E){let t=L.toFiniteNumber(ae.getContentLength());if(t!=null&&t>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k)}let oe=p&&(b===`stream`||b===`response`);if(p&&N.body&&(v||E||oe&&A)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=N[e]});let n=L.toFiniteNumber(ae.getContentLength()),[r,i]=v&&Mt(n,K(Nt(v),!0))||[],a=0;N=new o(en(N.body,an,t=>{if(E&&(a=t,a>w))throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k);r&&r(t)},()=>{i&&i(),A&&A()}),t)}b||=`text`;let P=await m[L.findKey(m,b)||`text`](N,e);if(E&&!p&&!oe){let t;if(P!=null&&(typeof P.byteLength==`number`?t=P.byteLength:typeof P.size==`number`?t=P.size:typeof P==`string`&&(t=typeof r==`function`?new r().encode(P).byteLength:P.length)),typeof t==`number`&&t>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k)}return!oe&&A&&A(),await new Promise((t,n)=>{Ot(t,n,{data:P,headers:z.from(N.headers),status:N.status,statusText:N.statusText,config:e,request:k})})}catch(t){if(A&&A(),O&&O.aborted&&O.reason instanceof B){let n=O.reason;throw n.config=e,k&&(n.request=k),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(M)throw k&&!M.request&&(M.request=k),M;if(t instanceof B)throw k&&!t.request&&(t.request=k),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new B(`Network Error`,B.ERR_NETWORK,e,k,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw B.from(t,t&&t.code,e,k,t&&t.response)}}},fn=new Map,pn=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=fn;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:dn(t)),l=c;return c};pn();var mn={http:null,xhr:Yt,fetch:{get:pn}};L.forEach(mn,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var hn=e=>`- ${e}`,gn=e=>L.isFunction(e)||e===null||e===!1;function _n(e,t){e=L.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new B(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since :
-`+e.map(hn).join(`
-`):` `+hn(e[0]):`as no adapter specified`),B.ERR_NOT_SUPPORT)}return i}var vn={getAdapter:_n,adapters:mn};function yn(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new G(null,e)}function bn(e){return yn(e),e.headers=z.from(e.headers),e.data=Et.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),vn.getAdapter(e.adapter||W.adapter,e)(e).then(function(t){yn(e),e.response=t;try{t.data=Et.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=z.from(t.headers),t},function(t){if(!Dt(t)&&(yn(e),t&&t.response)){e.response=t.response;try{t.response.data=Et.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=z.from(t.response.headers)}return Promise.reject(t)})}var xn={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{xn[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var Sn={};xn.transitional=function(e,t,n){function r(e,t){return`[Axios v`+rn+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new B(r(i,` has been removed`+(t?` in `+t:``)),B.ERR_DEPRECATED);return t&&!Sn[i]&&(Sn[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),!e||e(n,i,a)}},xn.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Cn(e,t,n){if(typeof e!=`object`||!e)throw new B(`options must be an object`,B.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-->0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new B(`option `+a+` must be `+n,B.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new B(`Unknown option `+a,B.ERR_BAD_OPTION)}}var Y={assertOptions:Cn,validators:xn},X=Y.validators,Z=class{constructor(e){this.defaults=e||{},this.interceptors={request:new ut,response:new ut}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=(()=>{if(!t.stack)return``;let e=t.stack.indexOf(`
-`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(`
-`),r=t===-1?-1:n.indexOf(`
-`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=`
-`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=q(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&Y.assertOptions(n,{silentJSONParsing:X.transitional(X.boolean),forcedJSONParsing:X.transitional(X.boolean),clarifyTimeoutError:X.transitional(X.boolean),legacyInterceptorReqResOrdering:X.transitional(X.boolean),advertiseZstdAcceptEncoding:X.transitional(X.boolean),validateStatusUndefinedResolves:X.transitional(X.boolean)},!1),r!=null&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:Y.assertOptions(r,{encode:X.function,serialize:X.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),Y.assertOptions(t,{baseUrl:X.spelling(`baseURL`),withXsrfToken:X.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&L.merge(i.common,i[t.method]);i&&L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=z.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||dt;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[bn.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new G(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Tn(e){return function(t){return e.apply(null,t)}}function En(e){return L.isObject(e)&&e.isAxiosError===!0}var Dn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Dn).forEach(([e,t])=>{Dn[t]=e});function On(e){let t=new Z(e),r=n(Z.prototype.request,t);return L.extend(r,Z.prototype,t,{allOwnKeys:!0}),L.extend(r,t,null,{allOwnKeys:!0}),r.create=function(t){return On(q(e,t))},r}var Q=On(W);Q.Axios=Z,Q.CanceledError=G,Q.CancelToken=wn,Q.isCancel=Dt,Q.VERSION=rn,Q.toFormData=V,Q.AxiosError=B,Q.Cancel=Q.CanceledError,Q.all=function(e){return Promise.all(e)},Q.spread=Tn,Q.isAxiosError=En,Q.mergeConfig=q,Q.AxiosHeaders=z,Q.formToJSON=e=>wt(L.isHTMLForm(e)?new FormData(e):e),Q.getAdapter=vn.getAdapter,Q.HttpStatusCode=Dn,Q.default=Q;var kn=localStorage.getItem(`miaoji_admin_key`)||``,$=Q.create({baseURL:``,headers:{"X-Admin-Key":kn}});$.interceptors.response.use(e=>e,t=>(t.response?.status===401&&e.error(`管理密钥无效,请在 localStorage 设置 miaoji_admin_key`),Promise.reject(t)));var An={dashboard:()=>$.get(`/api/admin/dashboard`).then(e=>e.data),configs:()=>$.get(`/api/admin/configs`).then(e=>e.data),updateConfig:(e,t)=>$.put(`/api/admin/configs/${e}`,{value:t}).then(e=>e.data),createConfig:(e,t)=>$.post(`/api/admin/configs`,{key:e,value:t}).then(e=>e.data),personas:()=>$.get(`/api/admin/personas`).then(e=>e.data),createPersona:e=>$.post(`/api/admin/personas`,e).then(e=>e.data),updatePersona:(e,t)=>$.put(`/api/admin/personas/${e}`,t).then(e=>e.data),deletePersona:e=>$.delete(`/api/admin/personas/${e}`),avatars:()=>$.get(`/api/admin/avatars`).then(e=>e.data),createAvatar:e=>$.post(`/api/admin/avatars`,e).then(e=>e.data),updateAvatar:(e,t)=>$.put(`/api/admin/avatars/${e}`,t).then(e=>e.data),deleteAvatar:e=>$.delete(`/api/admin/avatars/${e}`),stickers:()=>$.get(`/api/admin/stickers`).then(e=>e.data),createSticker:e=>$.post(`/api/admin/stickers`,e).then(e=>e.data),updateSticker:(e,t)=>$.put(`/api/admin/stickers/${e}`,t).then(e=>e.data),deleteSticker:e=>$.delete(`/api/admin/stickers/${e}`),users:e=>$.get(`/api/admin/users`,{params:e}).then(e=>e.data),toggleBan:e=>$.put(`/api/admin/users/${e}/ban`).then(e=>e.data),userStats:e=>$.get(`/api/admin/users/${e}/stats`).then(e=>e.data),sysCategories:()=>$.get(`/api/admin/categories`).then(e=>e.data),createSysCategory:e=>$.post(`/api/admin/categories`,e).then(e=>e.data),updateSysCategory:(e,t)=>$.put(`/api/admin/categories/${e}`,t).then(e=>e.data),deleteSysCategory:e=>$.delete(`/api/admin/categories/${e}`),testLlm:()=>$.post(`/api/admin/llm/test`).then(e=>e.data)};export{An as t};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/api-BV_Zb8mM.js b/backend/MiaoJiZhang.Api/wwwroot/assets/api-wmB-hCXT.js
similarity index 81%
rename from backend/MiaoJiZhang.Api/wwwroot/assets/api-BV_Zb8mM.js
rename to backend/MiaoJiZhang.Api/wwwroot/assets/api-wmB-hCXT.js
index 8f04294..fbb4e8a 100644
--- a/backend/MiaoJiZhang.Api/wwwroot/assets/api-BV_Zb8mM.js
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/api-wmB-hCXT.js
@@ -1,9 +1,9 @@
-import{a as e}from"./config-provider-q7ATIdCu.js";import{t}from"./index-BSN4-dIH.js";function n(e,t){return function(){return e.apply(t,arguments)}}var{toString:r}=Object.prototype,{getPrototypeOf:i}=Object,{iterator:a,toStringTag:o}=Symbol,s=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),c=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),s(n,t))return!0;n=i(n)}return!1},l=(e,t)=>e!=null&&c(e,t)?e[t]:void 0,u=(e=>t=>{let n=r.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),d=e=>(e=e.toLowerCase(),t=>u(t)===e),f=e=>t=>typeof t===e,{isArray:p}=Array,m=f(`undefined`);function h(e){return e!==null&&!m(e)&&e.constructor!==null&&!m(e.constructor)&&y(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var g=d(`ArrayBuffer`);function _(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&g(e.buffer),t}var v=f(`string`),y=f(`function`),b=f(`number`),x=e=>typeof e==`object`&&!!e,S=e=>e===!0||e===!1,C=e=>{if(!x(e))return!1;let t=i(e);return(t===null||t===Object.prototype||i(t)===null)&&!c(e,o)&&!c(e,a)},w=e=>{if(!x(e)||h(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},T=d(`Date`),E=d(`File`),D=e=>!!(e&&e.uri!==void 0),ee=e=>e&&e.getParts!==void 0,te=d(`Blob`),O=d(`FileList`),k=e=>x(e)&&y(e.pipe);function A(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var j=A(),M=j.FormData===void 0?void 0:j.FormData,ne=e=>{if(!e)return!1;if(M&&e instanceof M)return!0;let t=i(e);if(!t||t===Object.prototype||!y(e.append))return!1;let n=u(e);return n===`formdata`||n===`object`&&y(e.toString)&&e.toString()===`[object FormData]`},re=d(`URLSearchParams`),[ie,N,ae,oe]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(d),P=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function F(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),p(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var I=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,ce=e=>!m(e)&&e!==I;function le(...e){let{caseless:t,skipUndefined:n}=ce(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&se(r,i)||i,o=s(r,a)?r[a]:void 0;C(o)&&C(e)?r[a]=le(o,e):C(e)?r[a]=le({},e):p(e)?r[a]=e.slice():(!n||!m(e))&&(r[a]=e)};for(let t=0,n=e.length;t(F(t,(t,i)=>{r&&y(t)?Object.defineProperty(e,i,{__proto__:null,value:n(t,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),e),de=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fe=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},pe=(e,t,n,r)=>{let a,o,s,c={};if(t||={},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),o=a.length;o-->0;)s=a[o],(!r||r(s,e,t))&&!c[s]&&(t[s]=e[s],c[s]=!0);e=n!==!1&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},me=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},he=e=>{if(!e)return null;if(p(e))return e;let t=e.length;if(!b(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},ge=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&i(Uint8Array)),_e=(e,t)=>{let n=(e&&e[a]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},ve=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ye=d(`HTMLFormElement`),be=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:xe}=Object.prototype,Se=d(`RegExp`),Ce=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};F(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},we=e=>{Ce(e,(t,n)=>{if(y(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(y(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Te=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return p(e)?r(e):r(String(e).split(t)),n},Ee=()=>{},De=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Oe(e){return!!(e&&y(e.append)&&e[o]===`FormData`&&e[a])}var ke=e=>{let t=new WeakSet,n=e=>{if(x(e)){if(t.has(e))return;if(h(e))return e;if(!(`toJSON`in e)){t.add(e);let r=p(e)?[]:{};return F(e,(e,t)=>{let i=n(e);!m(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},Ae=d(`AsyncFunction`),je=e=>e&&(x(e)||y(e))&&y(e.then)&&y(e.catch),Me=((e,t)=>e?setImmediate:t?((e,t)=>(I.addEventListener(`message`,({source:n,data:r})=>{n===I&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),I.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,y(I.postMessage)),Ne=typeof queueMicrotask<`u`?queueMicrotask.bind(I):typeof process<`u`&&process.nextTick||Me,Pe=e=>e!=null&&y(e[a]),L={isArray:p,isArrayBuffer:g,isBuffer:h,isFormData:ne,isArrayBufferView:_,isString:v,isNumber:b,isBoolean:S,isObject:x,isPlainObject:C,isEmptyObject:w,isReadableStream:ie,isRequest:N,isResponse:ae,isHeaders:oe,isUndefined:m,isDate:T,isFile:E,isReactNativeBlob:D,isReactNative:ee,isBlob:te,isRegExp:Se,isFunction:y,isStream:k,isURLSearchParams:re,isTypedArray:ge,isFileList:O,forEach:F,merge:le,extend:ue,trim:P,stripBOM:de,inherits:fe,toFlatObject:pe,kindOf:u,kindOfTest:d,endsWith:me,toArray:he,forEachEntry:_e,matchAll:ve,isHTMLForm:ye,hasOwnProperty:s,hasOwnProp:s,hasOwnInPrototypeChain:c,getSafeProp:l,reduceDescriptors:Ce,freezeMethods:we,toObjectSet:Te,toCamelCase:be,noop:Ee,toFiniteNumber:De,findKey:se,global:I,isContextDefined:ce,isSpecCompliantForm:Oe,toJSONObject:ke,isAsyncFn:Ae,isThenable:je,setImmediate:Me,asap:Ne,isIterable:Pe,isSafeIterable:e=>e!=null&&c(e,a)&&Pe(e)},Fe=L.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Ie=e=>{let t={},n,r,i;return e&&e.split(`
+import{r as e}from"./dayjs.min-CeCVojfG.js";import{a as t}from"./config-provider-q7ATIdCu.js";function n(e,t){return function(){return e.apply(t,arguments)}}var{toString:r}=Object.prototype,{getPrototypeOf:i}=Object,{iterator:a,toStringTag:o}=Symbol,s=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),c=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),s(n,t))return!0;n=i(n)}return!1},l=(e,t)=>e!=null&&c(e,t)?e[t]:void 0,u=(e=>t=>{let n=r.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),d=e=>(e=e.toLowerCase(),t=>u(t)===e),f=e=>t=>typeof t===e,{isArray:p}=Array,m=f(`undefined`);function h(e){return e!==null&&!m(e)&&e.constructor!==null&&!m(e.constructor)&&y(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var g=d(`ArrayBuffer`);function _(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&g(e.buffer),t}var v=f(`string`),y=f(`function`),b=f(`number`),x=e=>typeof e==`object`&&!!e,S=e=>e===!0||e===!1,C=e=>{if(!x(e))return!1;let t=i(e);return(t===null||t===Object.prototype||i(t)===null)&&!c(e,o)&&!c(e,a)},w=e=>{if(!x(e)||h(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},T=d(`Date`),E=d(`File`),D=e=>!!(e&&e.uri!==void 0),ee=e=>e&&e.getParts!==void 0,te=d(`Blob`),O=d(`FileList`),k=e=>x(e)&&y(e.pipe);function A(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var j=A(),M=j.FormData===void 0?void 0:j.FormData,ne=e=>{if(!e)return!1;if(M&&e instanceof M)return!0;let t=i(e);if(!t||t===Object.prototype||!y(e.append))return!1;let n=u(e);return n===`formdata`||n===`object`&&y(e.toString)&&e.toString()===`[object FormData]`},re=d(`URLSearchParams`),[ie,N,ae,oe]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(d),P=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function F(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),p(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var I=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,ce=e=>!m(e)&&e!==I;function le(...e){let{caseless:t,skipUndefined:n}=ce(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&se(r,i)||i,o=s(r,a)?r[a]:void 0;C(o)&&C(e)?r[a]=le(o,e):C(e)?r[a]=le({},e):p(e)?r[a]=e.slice():(!n||!m(e))&&(r[a]=e)};for(let t=0,n=e.length;t(F(t,(t,i)=>{r&&y(t)?Object.defineProperty(e,i,{__proto__:null,value:n(t,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:i}),e),de=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fe=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},pe=(e,t,n,r)=>{let a,o,s,c={};if(t||={},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),o=a.length;o-->0;)s=a[o],(!r||r(s,e,t))&&!c[s]&&(t[s]=e[s],c[s]=!0);e=n!==!1&&i(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},me=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},he=e=>{if(!e)return null;if(p(e))return e;let t=e.length;if(!b(t))return null;let n=Array(t);for(;t-->0;)n[t]=e[t];return n},ge=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&i(Uint8Array)),_e=(e,t)=>{let n=(e&&e[a]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},ve=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},ye=d(`HTMLFormElement`),be=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:xe}=Object.prototype,Se=d(`RegExp`),Ce=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};F(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},we=e=>{Ce(e,(t,n)=>{if(y(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(y(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Te=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return p(e)?r(e):r(String(e).split(t)),n},Ee=()=>{},De=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Oe(e){return!!(e&&y(e.append)&&e[o]===`FormData`&&e[a])}var ke=e=>{let t=new WeakSet,n=e=>{if(x(e)){if(t.has(e))return;if(h(e))return e;if(!(`toJSON`in e)){t.add(e);let r=p(e)?[]:{};return F(e,(e,t)=>{let i=n(e);!m(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},Ae=d(`AsyncFunction`),je=e=>e&&(x(e)||y(e))&&y(e.then)&&y(e.catch),Me=((e,t)=>e?setImmediate:t?((e,t)=>(I.addEventListener(`message`,({source:n,data:r})=>{n===I&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),I.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,y(I.postMessage)),Ne=typeof queueMicrotask<`u`?queueMicrotask.bind(I):typeof process<`u`&&process.nextTick||Me,Pe=e=>e!=null&&y(e[a]),L={isArray:p,isArrayBuffer:g,isBuffer:h,isFormData:ne,isArrayBufferView:_,isString:v,isNumber:b,isBoolean:S,isObject:x,isPlainObject:C,isEmptyObject:w,isReadableStream:ie,isRequest:N,isResponse:ae,isHeaders:oe,isUndefined:m,isDate:T,isFile:E,isReactNativeBlob:D,isReactNative:ee,isBlob:te,isRegExp:Se,isFunction:y,isStream:k,isURLSearchParams:re,isTypedArray:ge,isFileList:O,forEach:F,merge:le,extend:ue,trim:P,stripBOM:de,inherits:fe,toFlatObject:pe,kindOf:u,kindOfTest:d,endsWith:me,toArray:he,forEachEntry:_e,matchAll:ve,isHTMLForm:ye,hasOwnProperty:s,hasOwnProp:s,hasOwnInPrototypeChain:c,getSafeProp:l,reduceDescriptors:Ce,freezeMethods:we,toObjectSet:Te,toCamelCase:be,noop:Ee,toFiniteNumber:De,findKey:se,global:I,isContextDefined:ce,isSpecCompliantForm:Oe,toJSONObject:ke,isAsyncFn:Ae,isThenable:je,setImmediate:Me,asap:Ne,isIterable:Pe,isSafeIterable:e=>e!=null&&c(e,a)&&Pe(e)},Fe=L.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Ie=e=>{let t={},n,r,i;return e&&e.split(`
`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&Fe[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t};function Le(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var Re=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),ze=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function Be(e,t){return L.isArray(e)?e.map(e=>Be(e,t)):Le(String(e).replace(t,``))}var Ve=e=>Be(e,Re),He=e=>Be(e,ze);function Ue(e){let t=Object.create(null);return L.forEach(e.toJSON(),(e,n)=>{t[n]=He(e)}),t}var We=Symbol(`internals`);function R(e){return e&&String(e).trim().toLowerCase()}function Ge(e){return e===!1||e==null?e:L.isArray(e)?e.map(Ge):Ve(String(e))}function Ke(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var qe=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Je(e,t,n,r,i){if(L.isFunction(r))return r.call(this,t,n);if(i&&(t=n),L.isString(t)){if(L.isString(r))return t.indexOf(r)!==-1;if(L.isRegExp(r))return r.test(t)}}function Ye(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function Xe(e,t){let n=L.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var z=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=R(t);if(!i)return;let a=L.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=Ge(e))}let a=(e,t)=>L.forEach(e,(e,n)=>i(e,n,t));if(L.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(L.isString(e)&&(e=e.trim())&&!qe(e))a(Ie(e),t);else if(L.isObject(e)&&L.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!L.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],L.hasOwnProp(n,i)?(r=n[i],n[i]=L.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=R(e),e){let n=L.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return Ke(e);if(L.isFunction(t))return t.call(this,e,n);if(L.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=R(e),e){let n=L.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||Je(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=R(e),e){let i=L.findKey(n,e);i&&(!t||Je(n,n[i],i,t))&&(delete n[i],r=!0)}}return L.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||Je(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return L.forEach(this,(r,i)=>{let a=L.findKey(n,i);if(a){t[a]=Ge(r),delete t[i];return}let o=e?Ye(i):String(i).trim();o!==i&&delete t[i],t[o]=Ge(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return L.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&L.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(`
-`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[We]=this[We]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=R(e);t[r]||(Xe(n,e),t[r]=!0)}return L.isArray(e)?e.forEach(r):r(e),this}};z.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),L.reduceDescriptors(z.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),L.freezeMethods(z);var Ze=`[REDACTED ****]`;function Qe(e){if(L.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(L.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function $e(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||L.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof z&&(e=e.toJSON()),r.push(e);let t;if(L.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);L.isUndefined(r)||(t[n]=r)});else{if(!L.isPlainObject(e)&&Qe(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?Ze:i(a);L.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}var B=class e extends Error{static from(t,n,r,i,a,o){let s=new e(t.message,n||t.code,r,i,a);return Object.defineProperty(s,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&L.hasOwnProp(e,`redact`)?e.redact:void 0,n=L.isArray(t)&&t.length>0?$e(e,t):L.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};B.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,B.ERR_BAD_OPTION=`ERR_BAD_OPTION`,B.ECONNABORTED=`ECONNABORTED`,B.ETIMEDOUT=`ETIMEDOUT`,B.ECONNREFUSED=`ECONNREFUSED`,B.ERR_NETWORK=`ERR_NETWORK`,B.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,B.ERR_DEPRECATED=`ERR_DEPRECATED`,B.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,B.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,B.ERR_CANCELED=`ERR_CANCELED`,B.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,B.ERR_INVALID_URL=`ERR_INVALID_URL`,B.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function et(e){return L.isPlainObject(e)||L.isArray(e)}function tt(e){return L.endsWith(e,`[]`)?e.slice(0,-2):e}function nt(e,t,n){return e?e.concat(t).map(function(e,t){return e=tt(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function rt(e){return L.isArray(e)&&!e.some(et)}var it=L.toFlatObject(L,{},null,function(e){return/^is[A-Z]/.test(e)});function V(e,t,n){if(!L.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=L.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!L.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&L.isSpecCompliantForm(t),u=[];if(!L.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(L.isDate(e))return e.toISOString();if(L.isBoolean(e))return e.toString();if(!l&&L.isBlob(e))throw new B(`Blob is not supported. Use a Buffer instead.`);if(L.isArrayBuffer(e)||L.isTypedArray(e)){if(l&&typeof s==`function`)return new s([e]);if(typeof Buffer<`u`)return Buffer.from(e);throw new B(`Blob is not supported. Use a Buffer instead.`,B.ERR_NOT_SUPPORT)}return e}function f(e){if(e>c)throw new B(`Object is too deeply nested (`+e+` levels). Max depth: `+c,B.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!L.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(L.isReactNative(t)&&L.isReactNativeBlob(e))return t.append(nt(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(L.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(L.isArray(e)&&rt(e)||(L.isFileList(e)||L.endsWith(n,`[]`))&&(s=L.toArray(e)))return n=tt(n),s.forEach(function(e,r){!(L.isUndefined(e)||e===null)&&t.append(o===!0?nt([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return et(e)?!0:(t.append(nt(i,n,a),d(e)),!1)}let h=Object.assign(it,{defaultVisitor:m,convertValue:d,isVisitable:et});function g(e,n,r=0){if(!L.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),L.forEach(e,function(e,a){(!(L.isUndefined(e)||e===null)&&i.call(t,e,L.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!L.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function at(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function ot(e,t){this._pairs=[],e&&V(e,this,t)}var st=ot.prototype;st.append=function(e,t){this._pairs.push([e,t])},st.toString=function(e){let t=e?t=>e.call(this,t,at):at;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function ct(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function lt(e,t,n){if(!t)return e;e||=``;let r=L.isFunction(n)?{serialize:n}:n,i=L.getSafeProp(r,`encode`)||ct,a=L.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):L.isURLSearchParams(t)?t.toString():new ot(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var ut=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&=[]}forEach(e){L.forEach(this.handlers,function(t){t!==null&&e(t)})}},dt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},ft={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:ot,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},pt=t({hasBrowserEnv:()=>mt,hasStandardBrowserEnv:()=>gt,hasStandardBrowserWebWorkerEnv:()=>_t,navigator:()=>ht,origin:()=>vt}),mt=typeof window<`u`&&typeof document<`u`,ht=typeof navigator==`object`&&navigator||void 0,gt=mt&&(!ht||[`ReactNative`,`NativeScript`,`NS`].indexOf(ht.product)<0),_t=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,vt=mt&&window.location.href||`http://localhost`,H={...pt,...ft};function yt(e,t){return V(e,new H.classes.URLSearchParams,{visitor:function(e,t,n,r){return H.isNode&&L.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var bt=100;function xt(e){if(e>bt)throw new B(`FormData field is too deeply nested (`+e+` levels). Max depth: `+bt,B.ERR_FORM_DATA_DEPTH_EXCEEDED)}function St(e){let t=[],n=/\w+|\[(\w*)]/g,r;for(;(r=n.exec(e))!==null;)xt(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Ct(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&L.isArray(r)?r.length:a,s?(L.hasOwnProp(r,a)?r[a]=L.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!L.hasOwnProp(r,a)||!L.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&L.isArray(r[a])&&(r[a]=Ct(r[a])),!o)}if(L.isFormData(e)&&L.isFunction(e.entries)){let n={};return L.forEachEntry(e,(e,r)=>{t(St(e),r,n,0)}),n}return null}var U=(e,t)=>e!=null&&L.hasOwnProp(e,t)?e[t]:void 0;function Tt(e,t,n){if(L.isString(e))try{return(t||JSON.parse)(e),L.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var W={transitional:dt,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=L.isObject(e);if(i&&L.isHTMLForm(e)&&(e=new FormData(e)),L.isFormData(e))return r?JSON.stringify(wt(e)):e;if(L.isArrayBuffer(e)||L.isBuffer(e)||L.isStream(e)||L.isFile(e)||L.isBlob(e)||L.isReadableStream(e))return e;if(L.isArrayBufferView(e))return e.buffer;if(L.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=U(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return yt(e,t).toString();if((a=L.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=U(this,`env`),r=n&&n.FormData;return V(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),Tt(e)):e}],transformResponse:[function(e){let t=U(this,`transitional`)||W.transitional,n=t&&t.forcedJSONParsing,r=U(this,`responseType`),i=r===`json`;if(L.isResponse(e)||L.isReadableStream(e))return e;if(e&&L.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,U(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?B.from(e,B.ERR_BAD_RESPONSE,this,null,U(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:H.classes.FormData,Blob:H.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{W.headers[e]={}});function Et(e,t){let n=this||W,r=t||n,i=z.from(r.headers),a=r.data;return L.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Dt(e){return!!(e&&e.__CANCEL__)}var G=class extends B{constructor(e,t,n){super(e??`canceled`,B.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function Ot(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new B(`Request failed with status code `+n.status,n.status>=400&&n.status<500?B.ERR_BAD_REQUEST:B.ERR_BAD_RESPONSE,n.config,n.request,n))}function kt(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function At(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var K=(e,t,n=3)=>{let r=0,i=At(50,250);return jt(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=o==null?a:Math.min(a,o),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},Mt=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Nt=e=>(...t)=>L.asap(()=>e(...t)),Pt=H.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,H.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(H.origin),H.navigator&&/(msie|trident)/i.test(H.navigator.userAgent)):()=>!0,Ft=H.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];L.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),L.isString(r)&&s.push(`path=${r}`),L.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),L.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;ne instanceof z?{...e}:e;function q(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return L.isPlainObject(e)&&L.isPlainObject(t)?L.merge.call({caseless:r},e,t):L.isPlainObject(t)?L.merge({},t):L.isArray(t)?t.slice():t}function i(e,t,n,i){if(!L.isUndefined(t))return r(e,t,n,i);if(!L.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!L.isUndefined(t))return r(void 0,t)}function o(e,t){if(!L.isUndefined(t))return r(void 0,t);if(!L.isUndefined(e))return r(void 0,e)}function s(n){let r=L.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!L.isUndefined(r))if(L.isPlainObject(r)){if(L.hasOwnProp(r,n))return r[n]}else return;let i=L.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(L.isPlainObject(i)&&L.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(L.hasOwnProp(t,a))return r(n,i);if(L.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(Wt(e),Wt(t),n,!0)};return L.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=L.hasOwnProp(l,r)?l[r]:i,o=a(L.hasOwnProp(e,r)?e[r]:void 0,L.hasOwnProp(t,r)?t[r]:void 0,r);L.isUndefined(o)&&a!==c||(n[r]=o)}),L.hasOwnProp(t,`validateStatus`)&&L.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(L.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var Gt=[`content-type`,`content-length`];function Kt(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{Gt.includes(t.toLowerCase())&&e.set(t,n)})}var qt=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function Jt(e){let t=q({},e),n=e=>L.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=z.from(s),t.url=lt(Ut(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=L.getSafeProp(c,`username`)||``,n=L.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?qt(n):``)))}catch(t){throw B.from(t,B.ERR_BAD_OPTION_VALUE,e)}}if(L.isFormData(r)&&(H.hasStandardBrowserEnv||H.hasStandardBrowserWebWorkerEnv||L.isReactNative(r)?s.setContentType(void 0):L.isFunction(r.getHeaders)&&Kt(s,r.getHeaders(),n(`formDataHeaderPolicy`))),H.hasStandardBrowserEnv&&(L.isFunction(i)&&(i=i(t)),i===!0||i==null&&Pt(t.url))){let e=a&&o&&Ft.read(o);e&&s.set(a,e)}return t}var Yt=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=Jt(e),i=r.data,a=z.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=z.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());Ot(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.startsWith(`file:`))||setTimeout(g)},h.onabort=function(){h&&=(n(new B(`Request aborted`,B.ECONNABORTED,e,h)),m(),null)},h.onerror=function(t){let r=new B(t&&t.message?t.message:`Network Error`,B.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||dt;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new B(t,i.clarifyTimeoutError?B.ETIMEDOUT:B.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&L.forEach(Ue(a),function(e,t){h.setRequestHeader(t,e)}),L.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=K(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=K(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new G(null,e,h):t),h.abort(),m(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=kt(r.url);if(_&&!H.protocols.includes(_)){n(new B(`Unsupported protocol `+_+`:`,B.ERR_BAD_REQUEST,e)),m();return}h.send(i||null)})},Xt=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof B?t:new G(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new B(`timeout of ${t}ms exceeded`,B.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>e.addEventListener(`abort`,i,{once:!0}));let{signal:s}=n;return s.unsubscribe=()=>L.asap(o),s},Zt=function*(e,t){let n=e.byteLength;if(!t||n{let i=Qt(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},J=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,tn=(e,t,n)=>t+2e>=2&&r.charCodeAt(e-2)===37&&r.charCodeAt(e-1)===51&&(r.charCodeAt(e)===68||r.charCodeAt(e)===100);i>=0&&(r.charCodeAt(i)===61?(n++,i--):a(i)&&(n++,i-=3)),n===1&&i>=0&&(r.charCodeAt(i)===61||a(i))&&n++;let o=Math.floor(e/4)*3-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}var rn=`1.18.1`,an=64*1024,{isFunction:on}=L,sn=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),cn=e=>{if(!L.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},ln=(e,...t)=>{try{return!!e(...t)}catch{return!1}},un=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},dn=e=>{let t=L.global!==void 0&&L.global!==null?L.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=L.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?on(i):typeof fetch==`function`,c=on(a),l=on(o);if(!s)return!1;let u=s&&on(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&ln(()=>{let e=!1,t=new a(H.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&ln(()=>L.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new B(`Response type '${e}' is not supported`,B.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(L.isBlob(e))return e.size;if(L.isSpecCompliantForm(e))return(await new a(H.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(L.isArrayBufferView(e)||L.isArrayBuffer(e))return e.byteLength;if(L.isURLSearchParams(e)&&(e+=``),L.isString(e))return(await d(e)).byteLength},g=async(e,t)=>L.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=Jt(e),E=L.isNumber(w)&&w>-1,D=L.isNumber(T)&&T>-1,ee=t=>L.hasOwnProp(e,t)?e[t]:void 0,te=i||fetch;b=b?(b+``).toLowerCase():`text`;let O=Xt([l,d&&d.toAbortSignal()],_),k=null,A=O&&O.unsubscribe&&(()=>{O.unsubscribe()}),j,M=null,ne=()=>new B(`Request body larger than maxBodyLength limit`,B.ERR_BAD_REQUEST,e,k);try{let i,l=ee(`auth`);if(l&&(i={username:L.getSafeProp(l,`username`)||``,password:L.getSafeProp(l,`password`)||``}),un(t)){let e=new URL(t,H.origin);!i&&(e.username||e.password)&&(i={username:cn(e.username),password:cn(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(sn((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&nn(t)>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(j=e,e>T))throw ne()}let d=D&&(L.isReadableStream(s)||L.isStream(s)),_=(e,t,n)=>en(e,an,e=>{if(D&&e>T)throw M=ne();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(j??=await g(x,s),j!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(L.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&Mt(j,K(Nt(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new B(`Stream request bodies are not supported by the current fetch implementation`,B.ERR_NOT_SUPPORT,e,k);L.isString(S)||(S=S?`include`:`omit`);let re=c&&`credentials`in a.prototype;if(L.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+rn,!1);let ie={...C,signal:O,method:n.toUpperCase(),headers:Ue(x.normalize()),body:s,duplex:`half`,credentials:re?S:void 0};k=c&&new a(t,ie);let N=await(c?te(k,C):te(t,ie)),ae=z.from(N.headers);if(E){let t=L.toFiniteNumber(ae.getContentLength());if(t!=null&&t>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k)}let oe=p&&(b===`stream`||b===`response`);if(p&&N.body&&(v||E||oe&&A)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=N[e]});let n=L.toFiniteNumber(ae.getContentLength()),[r,i]=v&&Mt(n,K(Nt(v),!0))||[],a=0;N=new o(en(N.body,an,t=>{if(E&&(a=t,a>w))throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k);r&&r(t)},()=>{i&&i(),A&&A()}),t)}b||=`text`;let P=await m[L.findKey(m,b)||`text`](N,e);if(E&&!p&&!oe){let t;if(P!=null&&(typeof P.byteLength==`number`?t=P.byteLength:typeof P.size==`number`?t=P.size:typeof P==`string`&&(t=typeof r==`function`?new r().encode(P).byteLength:P.length)),typeof t==`number`&&t>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k)}return!oe&&A&&A(),await new Promise((t,n)=>{Ot(t,n,{data:P,headers:z.from(N.headers),status:N.status,statusText:N.statusText,config:e,request:k})})}catch(t){if(A&&A(),O&&O.aborted&&O.reason instanceof B){let n=O.reason;throw n.config=e,k&&(n.request=k),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(M)throw k&&!M.request&&(M.request=k),M;if(t instanceof B)throw k&&!t.request&&(t.request=k),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new B(`Network Error`,B.ERR_NETWORK,e,k,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw B.from(t,t&&t.code,e,k,t&&t.response)}}},fn=new Map,pn=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=fn;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:dn(t)),l=c;return c};pn();var mn={http:null,xhr:Yt,fetch:{get:pn}};L.forEach(mn,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var hn=e=>`- ${e}`,gn=e=>L.isFunction(e)||e===null||e===!1;function _n(e,t){e=L.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new B(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since :
+`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[We]=this[We]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=R(e);t[r]||(Xe(n,e),t[r]=!0)}return L.isArray(e)?e.forEach(r):r(e),this}};z.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),L.reduceDescriptors(z.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),L.freezeMethods(z);var Ze=`[REDACTED ****]`;function Qe(e){if(L.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(L.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function $e(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||L.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof z&&(e=e.toJSON()),r.push(e);let t;if(L.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);L.isUndefined(r)||(t[n]=r)});else{if(!L.isPlainObject(e)&&Qe(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?Ze:i(a);L.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}var B=class e extends Error{static from(t,n,r,i,a,o){let s=new e(t.message,n||t.code,r,i,a);return Object.defineProperty(s,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&L.hasOwnProp(e,`redact`)?e.redact:void 0,n=L.isArray(t)&&t.length>0?$e(e,t):L.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};B.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,B.ERR_BAD_OPTION=`ERR_BAD_OPTION`,B.ECONNABORTED=`ECONNABORTED`,B.ETIMEDOUT=`ETIMEDOUT`,B.ECONNREFUSED=`ECONNREFUSED`,B.ERR_NETWORK=`ERR_NETWORK`,B.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,B.ERR_DEPRECATED=`ERR_DEPRECATED`,B.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,B.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,B.ERR_CANCELED=`ERR_CANCELED`,B.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,B.ERR_INVALID_URL=`ERR_INVALID_URL`,B.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function et(e){return L.isPlainObject(e)||L.isArray(e)}function tt(e){return L.endsWith(e,`[]`)?e.slice(0,-2):e}function nt(e,t,n){return e?e.concat(t).map(function(e,t){return e=tt(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function rt(e){return L.isArray(e)&&!e.some(et)}var it=L.toFlatObject(L,{},null,function(e){return/^is[A-Z]/.test(e)});function V(e,t,n){if(!L.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=L.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!L.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&L.isSpecCompliantForm(t),u=[];if(!L.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(L.isDate(e))return e.toISOString();if(L.isBoolean(e))return e.toString();if(!l&&L.isBlob(e))throw new B(`Blob is not supported. Use a Buffer instead.`);if(L.isArrayBuffer(e)||L.isTypedArray(e)){if(l&&typeof s==`function`)return new s([e]);if(typeof Buffer<`u`)return Buffer.from(e);throw new B(`Blob is not supported. Use a Buffer instead.`,B.ERR_NOT_SUPPORT)}return e}function f(e){if(e>c)throw new B(`Object is too deeply nested (`+e+` levels). Max depth: `+c,B.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!L.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(L.isReactNative(t)&&L.isReactNativeBlob(e))return t.append(nt(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(L.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(L.isArray(e)&&rt(e)||(L.isFileList(e)||L.endsWith(n,`[]`))&&(s=L.toArray(e)))return n=tt(n),s.forEach(function(e,r){!(L.isUndefined(e)||e===null)&&t.append(o===!0?nt([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return et(e)?!0:(t.append(nt(i,n,a),d(e)),!1)}let h=Object.assign(it,{defaultVisitor:m,convertValue:d,isVisitable:et});function g(e,n,r=0){if(!L.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),L.forEach(e,function(e,a){(!(L.isUndefined(e)||e===null)&&i.call(t,e,L.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!L.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function at(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function ot(e,t){this._pairs=[],e&&V(e,this,t)}var st=ot.prototype;st.append=function(e,t){this._pairs.push([e,t])},st.toString=function(e){let t=e?t=>e.call(this,t,at):at;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function ct(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function lt(e,t,n){if(!t)return e;e||=``;let r=L.isFunction(n)?{serialize:n}:n,i=L.getSafeProp(r,`encode`)||ct,a=L.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):L.isURLSearchParams(t)?t.toString():new ot(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var ut=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&=[]}forEach(e){L.forEach(this.handlers,function(t){t!==null&&e(t)})}},dt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},ft={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:ot,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},pt=e({hasBrowserEnv:()=>mt,hasStandardBrowserEnv:()=>gt,hasStandardBrowserWebWorkerEnv:()=>_t,navigator:()=>ht,origin:()=>vt}),mt=typeof window<`u`&&typeof document<`u`,ht=typeof navigator==`object`&&navigator||void 0,gt=mt&&(!ht||[`ReactNative`,`NativeScript`,`NS`].indexOf(ht.product)<0),_t=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,vt=mt&&window.location.href||`http://localhost`,H={...pt,...ft};function yt(e,t){return V(e,new H.classes.URLSearchParams,{visitor:function(e,t,n,r){return H.isNode&&L.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var bt=100;function xt(e){if(e>bt)throw new B(`FormData field is too deeply nested (`+e+` levels). Max depth: `+bt,B.ERR_FORM_DATA_DEPTH_EXCEEDED)}function St(e){let t=[],n=/\w+|\[(\w*)]/g,r;for(;(r=n.exec(e))!==null;)xt(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Ct(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&L.isArray(r)?r.length:a,s?(L.hasOwnProp(r,a)?r[a]=L.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!L.hasOwnProp(r,a)||!L.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&L.isArray(r[a])&&(r[a]=Ct(r[a])),!o)}if(L.isFormData(e)&&L.isFunction(e.entries)){let n={};return L.forEachEntry(e,(e,r)=>{t(St(e),r,n,0)}),n}return null}var U=(e,t)=>e!=null&&L.hasOwnProp(e,t)?e[t]:void 0;function Tt(e,t,n){if(L.isString(e))try{return(t||JSON.parse)(e),L.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var W={transitional:dt,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=L.isObject(e);if(i&&L.isHTMLForm(e)&&(e=new FormData(e)),L.isFormData(e))return r?JSON.stringify(wt(e)):e;if(L.isArrayBuffer(e)||L.isBuffer(e)||L.isStream(e)||L.isFile(e)||L.isBlob(e)||L.isReadableStream(e))return e;if(L.isArrayBufferView(e))return e.buffer;if(L.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=U(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return yt(e,t).toString();if((a=L.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=U(this,`env`),r=n&&n.FormData;return V(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),Tt(e)):e}],transformResponse:[function(e){let t=U(this,`transitional`)||W.transitional,n=t&&t.forcedJSONParsing,r=U(this,`responseType`),i=r===`json`;if(L.isResponse(e)||L.isReadableStream(e))return e;if(e&&L.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,U(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?B.from(e,B.ERR_BAD_RESPONSE,this,null,U(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:H.classes.FormData,Blob:H.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{W.headers[e]={}});function Et(e,t){let n=this||W,r=t||n,i=z.from(r.headers),a=r.data;return L.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Dt(e){return!!(e&&e.__CANCEL__)}var G=class extends B{constructor(e,t,n){super(e??`canceled`,B.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function Ot(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new B(`Request failed with status code `+n.status,n.status>=400&&n.status<500?B.ERR_BAD_REQUEST:B.ERR_BAD_RESPONSE,n.config,n.request,n))}function kt(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function At(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var K=(e,t,n=3)=>{let r=0,i=At(50,250);return jt(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=o==null?a:Math.min(a,o),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},Mt=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Nt=e=>(...t)=>L.asap(()=>e(...t)),Pt=H.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,H.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(H.origin),H.navigator&&/(msie|trident)/i.test(H.navigator.userAgent)):()=>!0,Ft=H.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];L.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),L.isString(r)&&s.push(`path=${r}`),L.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),L.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;ne instanceof z?{...e}:e;function q(e,t){e||={},t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return L.isPlainObject(e)&&L.isPlainObject(t)?L.merge.call({caseless:r},e,t):L.isPlainObject(t)?L.merge({},t):L.isArray(t)?t.slice():t}function i(e,t,n,i){if(!L.isUndefined(t))return r(e,t,n,i);if(!L.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!L.isUndefined(t))return r(void 0,t)}function o(e,t){if(!L.isUndefined(t))return r(void 0,t);if(!L.isUndefined(e))return r(void 0,e)}function s(n){let r=L.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!L.isUndefined(r))if(L.isPlainObject(r)){if(L.hasOwnProp(r,n))return r[n]}else return;let i=L.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(L.isPlainObject(i)&&L.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(L.hasOwnProp(t,a))return r(n,i);if(L.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(Wt(e),Wt(t),n,!0)};return L.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=L.hasOwnProp(l,r)?l[r]:i,o=a(L.hasOwnProp(e,r)?e[r]:void 0,L.hasOwnProp(t,r)?t[r]:void 0,r);L.isUndefined(o)&&a!==c||(n[r]=o)}),L.hasOwnProp(t,`validateStatus`)&&L.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(L.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var Gt=[`content-type`,`content-length`];function Kt(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t||{}).forEach(([t,n])=>{Gt.includes(t.toLowerCase())&&e.set(t,n)})}var qt=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function Jt(e){let t=q({},e),n=e=>L.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=z.from(s),t.url=lt(Ut(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let t=L.getSafeProp(c,`username`)||``,n=L.getSafeProp(c,`password`)||``;try{s.set(`Authorization`,`Basic `+btoa(t+`:`+(n?qt(n):``)))}catch(t){throw B.from(t,B.ERR_BAD_OPTION_VALUE,e)}}if(L.isFormData(r)&&(H.hasStandardBrowserEnv||H.hasStandardBrowserWebWorkerEnv||L.isReactNative(r)?s.setContentType(void 0):L.isFunction(r.getHeaders)&&Kt(s,r.getHeaders(),n(`formDataHeaderPolicy`))),H.hasStandardBrowserEnv&&(L.isFunction(i)&&(i=i(t)),i===!0||i==null&&Pt(t.url))){let e=a&&o&&Ft.read(o);e&&s.set(a,e)}return t}var Yt=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=Jt(e),i=r.data,a=z.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=z.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());Ot(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.startsWith(`file:`))||setTimeout(g)},h.onabort=function(){h&&=(n(new B(`Request aborted`,B.ECONNABORTED,e,h)),m(),null)},h.onerror=function(t){let r=new B(t&&t.message?t.message:`Network Error`,B.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||dt;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new B(t,i.clarifyTimeoutError?B.ETIMEDOUT:B.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&L.forEach(Ue(a),function(e,t){h.setRequestHeader(t,e)}),L.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=K(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=K(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new G(null,e,h):t),h.abort(),m(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=kt(r.url);if(_&&!H.protocols.includes(_)){n(new B(`Unsupported protocol `+_+`:`,B.ERR_BAD_REQUEST,e)),m();return}h.send(i||null)})},Xt=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof B?t:new G(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new B(`timeout of ${t}ms exceeded`,B.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>e.addEventListener(`abort`,i,{once:!0}));let{signal:s}=n;return s.unsubscribe=()=>L.asap(o),s},Zt=function*(e,t){let n=e.byteLength;if(!t||n{let i=Qt(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},J=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,tn=(e,t,n)=>t+2e>=2&&r.charCodeAt(e-2)===37&&r.charCodeAt(e-1)===51&&(r.charCodeAt(e)===68||r.charCodeAt(e)===100);i>=0&&(r.charCodeAt(i)===61?(n++,i--):a(i)&&(n++,i-=3)),n===1&&i>=0&&(r.charCodeAt(i)===61||a(i))&&n++;let o=Math.floor(e/4)*3-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}var rn=`1.18.1`,an=64*1024,{isFunction:on}=L,sn=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),cn=e=>{if(!L.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},ln=(e,...t)=>{try{return!!e(...t)}catch{return!1}},un=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},dn=e=>{let t=L.global!==void 0&&L.global!==null?L.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=L.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?on(i):typeof fetch==`function`,c=on(a),l=on(o);if(!s)return!1;let u=s&&on(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&ln(()=>{let e=!1,t=new a(H.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&ln(()=>L.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new B(`Response type '${e}' is not supported`,B.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(L.isBlob(e))return e.size;if(L.isSpecCompliantForm(e))return(await new a(H.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(L.isArrayBufferView(e)||L.isArrayBuffer(e))return e.byteLength;if(L.isURLSearchParams(e)&&(e+=``),L.isString(e))return(await d(e)).byteLength},g=async(e,t)=>L.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=Jt(e),E=L.isNumber(w)&&w>-1,D=L.isNumber(T)&&T>-1,ee=t=>L.hasOwnProp(e,t)?e[t]:void 0,te=i||fetch;b=b?(b+``).toLowerCase():`text`;let O=Xt([l,d&&d.toAbortSignal()],_),k=null,A=O&&O.unsubscribe&&(()=>{O.unsubscribe()}),j,M=null,ne=()=>new B(`Request body larger than maxBodyLength limit`,B.ERR_BAD_REQUEST,e,k);try{let i,l=ee(`auth`);if(l&&(i={username:L.getSafeProp(l,`username`)||``,password:L.getSafeProp(l,`password`)||``}),un(t)){let e=new URL(t,H.origin);!i&&(e.username||e.password)&&(i={username:cn(e.username),password:cn(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(sn((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&nn(t)>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(j=e,e>T))throw ne()}let d=D&&(L.isReadableStream(s)||L.isStream(s)),_=(e,t,n)=>en(e,an,e=>{if(D&&e>T)throw M=ne();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(j??=await g(x,s),j!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(L.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&Mt(j,K(Nt(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new B(`Stream request bodies are not supported by the current fetch implementation`,B.ERR_NOT_SUPPORT,e,k);L.isString(S)||(S=S?`include`:`omit`);let re=c&&`credentials`in a.prototype;if(L.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+rn,!1);let ie={...C,signal:O,method:n.toUpperCase(),headers:Ue(x.normalize()),body:s,duplex:`half`,credentials:re?S:void 0};k=c&&new a(t,ie);let N=await(c?te(k,C):te(t,ie)),ae=z.from(N.headers);if(E){let t=L.toFiniteNumber(ae.getContentLength());if(t!=null&&t>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k)}let oe=p&&(b===`stream`||b===`response`);if(p&&N.body&&(v||E||oe&&A)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=N[e]});let n=L.toFiniteNumber(ae.getContentLength()),[r,i]=v&&Mt(n,K(Nt(v),!0))||[],a=0;N=new o(en(N.body,an,t=>{if(E&&(a=t,a>w))throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k);r&&r(t)},()=>{i&&i(),A&&A()}),t)}b||=`text`;let P=await m[L.findKey(m,b)||`text`](N,e);if(E&&!p&&!oe){let t;if(P!=null&&(typeof P.byteLength==`number`?t=P.byteLength:typeof P.size==`number`?t=P.size:typeof P==`string`&&(t=typeof r==`function`?new r().encode(P).byteLength:P.length)),typeof t==`number`&&t>w)throw new B(`maxContentLength size of `+w+` exceeded`,B.ERR_BAD_RESPONSE,e,k)}return!oe&&A&&A(),await new Promise((t,n)=>{Ot(t,n,{data:P,headers:z.from(N.headers),status:N.status,statusText:N.statusText,config:e,request:k})})}catch(t){if(A&&A(),O&&O.aborted&&O.reason instanceof B){let n=O.reason;throw n.config=e,k&&(n.request=k),t!==n&&Object.defineProperty(n,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),n}if(M)throw k&&!M.request&&(M.request=k),M;if(t instanceof B)throw k&&!t.request&&(t.request=k),t;if(t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)){let n=new B(`Network Error`,B.ERR_NETWORK,e,k,t&&t.response);throw Object.defineProperty(n,"cause",{__proto__:null,value:t.cause||t,writable:!0,enumerable:!1,configurable:!0}),n}throw B.from(t,t&&t.code,e,k,t&&t.response)}}},fn=new Map,pn=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=fn;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:dn(t)),l=c;return c};pn();var mn={http:null,xhr:Yt,fetch:{get:pn}};L.forEach(mn,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var hn=e=>`- ${e}`,gn=e=>L.isFunction(e)||e===null||e===!1;function _n(e,t){e=L.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new B(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since :
`+e.map(hn).join(`
`):` `+hn(e[0]):`as no adapter specified`),B.ERR_NOT_SUPPORT)}return i}var vn={getAdapter:_n,adapters:mn};function yn(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new G(null,e)}function bn(e){return yn(e),e.headers=z.from(e.headers),e.data=Et.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),vn.getAdapter(e.adapter||W.adapter,e)(e).then(function(t){yn(e),e.response=t;try{t.data=Et.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=z.from(t.headers),t},function(t){if(!Dt(t)&&(yn(e),t&&t.response)){e.response=t.response;try{t.response.data=Et.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=z.from(t.response.headers)}return Promise.reject(t)})}var xn={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{xn[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var Sn={};xn.transitional=function(e,t,n){function r(e,t){return`[Axios v`+rn+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new B(r(i,` has been removed`+(t?` in `+t:``)),B.ERR_DEPRECATED);return t&&!Sn[i]&&(Sn[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),!e||e(n,i,a)}},xn.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Cn(e,t,n){if(typeof e!=`object`||!e)throw new B(`options must be an object`,B.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-->0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new B(`option `+a+` must be `+n,B.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new B(`Unknown option `+a,B.ERR_BAD_OPTION)}}var Y={assertOptions:Cn,validators:xn},X=Y.validators,Z=class{constructor(e){this.defaults=e||{},this.interceptors={request:new ut,response:new ut}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=(()=>{if(!t.stack)return``;let e=t.stack.indexOf(`
`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(`
`),r=t===-1?-1:n.indexOf(`
`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=`
-`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=q(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&Y.assertOptions(n,{silentJSONParsing:X.transitional(X.boolean),forcedJSONParsing:X.transitional(X.boolean),clarifyTimeoutError:X.transitional(X.boolean),legacyInterceptorReqResOrdering:X.transitional(X.boolean),advertiseZstdAcceptEncoding:X.transitional(X.boolean),validateStatusUndefinedResolves:X.transitional(X.boolean)},!1),r!=null&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:Y.assertOptions(r,{encode:X.function,serialize:X.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),Y.assertOptions(t,{baseUrl:X.spelling(`baseURL`),withXsrfToken:X.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&L.merge(i.common,i[t.method]);i&&L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=z.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||dt;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[bn.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new G(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Tn(e){return function(t){return e.apply(null,t)}}function En(e){return L.isObject(e)&&e.isAxiosError===!0}var Dn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Dn).forEach(([e,t])=>{Dn[t]=e});function On(e){let t=new Z(e),r=n(Z.prototype.request,t);return L.extend(r,Z.prototype,t,{allOwnKeys:!0}),L.extend(r,t,null,{allOwnKeys:!0}),r.create=function(t){return On(q(e,t))},r}var Q=On(W);Q.Axios=Z,Q.CanceledError=G,Q.CancelToken=wn,Q.isCancel=Dt,Q.VERSION=rn,Q.toFormData=V,Q.AxiosError=B,Q.Cancel=Q.CanceledError,Q.all=function(e){return Promise.all(e)},Q.spread=Tn,Q.isAxiosError=En,Q.mergeConfig=q,Q.AxiosHeaders=z,Q.formToJSON=e=>wt(L.isHTMLForm(e)?new FormData(e):e),Q.getAdapter=vn.getAdapter,Q.HttpStatusCode=Dn,Q.default=Q;var kn=localStorage.getItem(`miaoji_admin_key`)||``,$=Q.create({baseURL:``,headers:{"X-Admin-Key":kn}});$.interceptors.response.use(e=>e,t=>(t.response?.status===401&&e.error(`管理密钥无效,请在 localStorage 设置 miaoji_admin_key`),Promise.reject(t)));var An={dashboard:()=>$.get(`/api/admin/dashboard`).then(e=>e.data),configs:()=>$.get(`/api/admin/configs`).then(e=>e.data),updateConfig:(e,t)=>$.put(`/api/admin/configs/${e}`,{value:t}).then(e=>e.data),createConfig:(e,t)=>$.post(`/api/admin/configs`,{key:e,value:t}).then(e=>e.data),personas:()=>$.get(`/api/admin/personas`).then(e=>e.data),createPersona:e=>$.post(`/api/admin/personas`,e).then(e=>e.data),updatePersona:(e,t)=>$.put(`/api/admin/personas/${e}`,t).then(e=>e.data),deletePersona:e=>$.delete(`/api/admin/personas/${e}`),avatars:()=>$.get(`/api/admin/avatars`).then(e=>e.data),createAvatar:e=>$.post(`/api/admin/avatars`,e).then(e=>e.data),updateAvatar:(e,t)=>$.put(`/api/admin/avatars/${e}`,t).then(e=>e.data),deleteAvatar:e=>$.delete(`/api/admin/avatars/${e}`),stickers:()=>$.get(`/api/admin/stickers`).then(e=>e.data),createSticker:e=>$.post(`/api/admin/stickers`,e).then(e=>e.data),updateSticker:(e,t)=>$.put(`/api/admin/stickers/${e}`,t).then(e=>e.data),deleteSticker:e=>$.delete(`/api/admin/stickers/${e}`),users:e=>$.get(`/api/admin/users`,{params:e}).then(e=>e.data),toggleBan:e=>$.put(`/api/admin/users/${e}/ban`).then(e=>e.data),cancelAccountClosure:e=>$.put(`/api/admin/users/${e}/cancel-closure`).then(e=>e.data),userStats:e=>$.get(`/api/admin/users/${e}/stats`).then(e=>e.data),sysCategories:()=>$.get(`/api/admin/categories`).then(e=>e.data),createSysCategory:e=>$.post(`/api/admin/categories`,e).then(e=>e.data),updateSysCategory:(e,t)=>$.put(`/api/admin/categories/${e}`,t).then(e=>e.data),deleteSysCategory:e=>$.delete(`/api/admin/categories/${e}`),testLlm:()=>$.post(`/api/admin/llm/test`).then(e=>e.data)};export{An as t};
\ No newline at end of file
+`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=q(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&Y.assertOptions(n,{silentJSONParsing:X.transitional(X.boolean),forcedJSONParsing:X.transitional(X.boolean),clarifyTimeoutError:X.transitional(X.boolean),legacyInterceptorReqResOrdering:X.transitional(X.boolean),advertiseZstdAcceptEncoding:X.transitional(X.boolean),validateStatusUndefinedResolves:X.transitional(X.boolean)},!1),r!=null&&(L.isFunction(r)?t.paramsSerializer={serialize:r}:Y.assertOptions(r,{encode:X.function,serialize:X.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),Y.assertOptions(t,{baseUrl:X.spelling(`baseURL`),withXsrfToken:X.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&L.merge(i.common,i[t.method]);i&&L.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=z.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||dt;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[bn.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u{if(!n._listeners)return;let t=n._listeners.length;for(;t-->0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new G(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function Tn(e){return function(t){return e.apply(null,t)}}function En(e){return L.isObject(e)&&e.isAxiosError===!0}var Dn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Dn).forEach(([e,t])=>{Dn[t]=e});function On(e){let t=new Z(e),r=n(Z.prototype.request,t);return L.extend(r,Z.prototype,t,{allOwnKeys:!0}),L.extend(r,t,null,{allOwnKeys:!0}),r.create=function(t){return On(q(e,t))},r}var Q=On(W);Q.Axios=Z,Q.CanceledError=G,Q.CancelToken=wn,Q.isCancel=Dt,Q.VERSION=rn,Q.toFormData=V,Q.AxiosError=B,Q.Cancel=Q.CanceledError,Q.all=function(e){return Promise.all(e)},Q.spread=Tn,Q.isAxiosError=En,Q.mergeConfig=q,Q.AxiosHeaders=z,Q.formToJSON=e=>wt(L.isHTMLForm(e)?new FormData(e):e),Q.getAdapter=vn.getAdapter,Q.HttpStatusCode=Dn,Q.default=Q;var kn=localStorage.getItem(`miaoji_admin_key`)||``,$=Q.create({baseURL:``,headers:{"X-Admin-Key":kn}});$.interceptors.response.use(e=>e,e=>(e.response?.status===401&&t.error(`管理密钥无效,请在 localStorage 设置 miaoji_admin_key`),Promise.reject(e)));var An={dashboard:()=>$.get(`/api/admin/dashboard`).then(e=>e.data),configs:()=>$.get(`/api/admin/configs`).then(e=>e.data),updateConfig:(e,t)=>$.put(`/api/admin/configs/${e}`,{value:t}).then(e=>e.data),createConfig:(e,t)=>$.post(`/api/admin/configs`,{key:e,value:t}).then(e=>e.data),personas:()=>$.get(`/api/admin/personas`).then(e=>e.data),createPersona:e=>$.post(`/api/admin/personas`,e).then(e=>e.data),updatePersona:(e,t)=>$.put(`/api/admin/personas/${e}`,t).then(e=>e.data),deletePersona:e=>$.delete(`/api/admin/personas/${e}`),avatars:()=>$.get(`/api/admin/avatars`).then(e=>e.data),createAvatar:e=>$.post(`/api/admin/avatars`,e).then(e=>e.data),updateAvatar:(e,t)=>$.put(`/api/admin/avatars/${e}`,t).then(e=>e.data),deleteAvatar:e=>$.delete(`/api/admin/avatars/${e}`),stickers:()=>$.get(`/api/admin/stickers`).then(e=>e.data),createSticker:e=>$.post(`/api/admin/stickers`,e).then(e=>e.data),updateSticker:(e,t)=>$.put(`/api/admin/stickers/${e}`,t).then(e=>e.data),deleteSticker:e=>$.delete(`/api/admin/stickers/${e}`),users:e=>$.get(`/api/admin/users`,{params:e}).then(e=>e.data),toggleBan:e=>$.put(`/api/admin/users/${e}/ban`).then(e=>e.data),updateUserPermissions:(e,t)=>$.put(`/api/admin/users/${e}/permissions`,{ai:t}).then(e=>e.data),updateAiChatQuota:(e,t,n,r)=>$.put(`/api/admin/users/${e}/ai-quota`,{limit:t,period:n,resetUsage:r}).then(e=>e.data),cancelAccountClosure:e=>$.put(`/api/admin/users/${e}/cancel-closure`).then(e=>e.data),userStats:e=>$.get(`/api/admin/users/${e}/stats`).then(e=>e.data),sysCategories:()=>$.get(`/api/admin/categories`).then(e=>e.data),createSysCategory:e=>$.post(`/api/admin/categories`,e).then(e=>e.data),updateSysCategory:(e,t)=>$.put(`/api/admin/categories/${e}`,t).then(e=>e.data),deleteSysCategory:e=>$.delete(`/api/admin/categories/${e}`),testLlm:()=>$.post(`/api/admin/llm/test`).then(e=>e.data),pushCampaigns:e=>$.get(`/api/admin/push/campaigns`,{params:e}).then(e=>e.data),estimatePushCampaign:e=>$.post(`/api/admin/push/campaigns/estimate`,e).then(e=>e.data),createPushCampaign:e=>$.post(`/api/admin/push/campaigns`,e).then(e=>e.data),updatePushCampaign:(e,t)=>$.put(`/api/admin/push/campaigns/${e}`,t).then(e=>e.data),sendPushCampaign:(e,t)=>$.post(`/api/admin/push/campaigns/${e}/send`,{scheduledAt:t}).then(e=>e.data),cancelPushCampaign:e=>$.post(`/api/admin/push/campaigns/${e}/cancel`).then(e=>e.data),pushDevices:e=>$.get(`/api/admin/push/devices`,{params:e}).then(e=>e.data),testPush:e=>$.post(`/api/admin/push/test`,e).then(e=>e.data),pushHealth:()=>$.get(`/api/admin/push/health`).then(e=>e.data)};export{An as t};
\ No newline at end of file
diff --git a/backend/MiaoJiZhang.Api/wwwroot/assets/dayjs.min-CeCVojfG.js b/backend/MiaoJiZhang.Api/wwwroot/assets/dayjs.min-CeCVojfG.js
new file mode 100644
index 0000000..b933716
--- /dev/null
+++ b/backend/MiaoJiZhang.Api/wwwroot/assets/dayjs.min-CeCVojfG.js
@@ -0,0 +1 @@
+var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),u=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date()1)return e(o[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},w=function(e,t){if(S(e))return e.clone();var n=typeof t==`object`?t:{};return n.date=e,n.args=arguments,new E(n)},T=v;T.l=C,T.i=S,T.w=function(e,t){return w(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var E=function(){function g(e){this.$L=C(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var _=g.prototype;return _.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(t===null)return new Date(NaN);if(T.u(t))return new Date;if(t instanceof Date)return new Date(t);if(typeof t==`string`&&!/Z$/i.test(t)){var r=t.match(m);if(r){var i=r[2]-1||0,a=(r[7]||`0`).substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,a)}}return new Date(t)}(e),this.init()},_.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},_.$utils=function(){return T},_.isValid=function(){return this.$d.toString()!==p},_.isSame=function(e,t){var n=w(e);return this.startOf(t)<=n&&n<=this.endOf(t)},_.isAfter=function(e,t){return w(e)i.map(i=>d[i]);
+import{i as e,n as t,r as n,t as r}from"./dayjs.min-CeCVojfG.js";import{$ as i,$n as a,$t as o,A as s,An as c,At as l,B as u,Bn as d,Bt as f,C as p,Cn as m,Ct as h,D as g,Dn as _,Dt as v,E as y,En as b,Et as x,F as S,Fn as C,Ft as w,G as T,Gn as E,Gt as D,H as O,Hn as k,Ht as A,I as j,In as M,It as N,J as P,Jn as F,Jt as I,K as L,Kn as R,Kt as ee,L as te,Ln as z,Lt as ne,M as re,Mn as ie,Mt as ae,N as oe,Nn as se,Nt as ce,O as le,On as ue,Ot as de,P as B,Pn as V,Pt as fe,Q as pe,Qn as H,Qt as me,R as he,Rn as ge,Rt as _e,S as ve,Sn as U,St as ye,T as be,Tn as xe,Tt as W,U as Se,Un as Ce,Ut as we,V as Te,Vn as Ee,Vt as De,W as Oe,Wn as G,Wt as ke,X as Ae,Xn as je,Xt as Me,Y as Ne,Yn as Pe,Yt as Fe,Z as Ie,Zn as Le,Zt as K,_ as Re,_n as ze,_t as Be,a as Ve,an as He,ar as Ue,at as We,b as Ge,bn as Ke,bt as qe,c as Je,cn as Ye,ct as Xe,d as Ze,dn as Qe,dt as $e,en as et,er as q,et as tt,f as nt,fn as rt,ft as it,g as at,gn as J,gt as ot,h as st,hn as ct,ht as lt,i as ut,in as Y,ir as dt,it as ft,j as pt,jn as mt,jt as ht,k as X,kn as gt,kt as _t,l as vt,ln as yt,lt as bt,m as xt,mn as St,mt as Ct,n as wt,nn as Tt,nr as Et,nt as Dt,o as Ot,on as kt,or as At,ot as jt,p as Mt,pn as Nt,pt as Pt,q as Ft,qn as It,qt as Lt,r as Rt,rn as Z,rr as zt,rt as Bt,s as Vt,sn as Ht,st as Ut,t as Wt,tn as Gt,tr as Kt,tt as qt,u as Jt,un as Yt,ut as Xt,v as Zt,vn as Qt,vt as $t,w as en,wn as tn,wt as nn,x as rn,xn as an,xt as Q,y as on,yt as sn,z as cn,zn as ln,zt as un}from"./config-provider-q7ATIdCu.js";import{n as dn,t as fn}from"./EditOutlined-h6ScL3Qz.js";import{t as pn}from"./DeleteOutlined-yVoeJ3Fd.js";import{t as mn}from"./ReloadOutlined-CVrW_3-b.js";import{t as hn}from"./TeamOutlined-0klbs6LP.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var gn=(function(){if(typeof Map<`u`)return Map;function e(e,t){var n=-1;return e.some(function(e,r){return e[0]===t?(n=r,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){t===void 0&&(t=null);for(var n=0,r=this.__entries__;n0},e.prototype.connect_=function(){!_n||this.connected_||(document.addEventListener(`transitionend`,this.onTransitionEnd_),window.addEventListener(`resize`,this.refresh),wn?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener(`DOMSubtreeModified`,this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!_n||!this.connected_||(document.removeEventListener(`transitionend`,this.onTransitionEnd_),window.removeEventListener(`resize`,this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener(`DOMSubtreeModified`,this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=t===void 0?``:t;Cn.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||=new e,this.instance_},e.instance_=null,e}(),En=(function(e,t){for(var n=0,r=Object.keys(t);n`u`||!(Element instanceof Object))){if(!(e instanceof Dn(e).Element))throw TypeError(`parameter 1 is not of type "Element".`);var t=this.observations_;t.has(e)||(t.set(e,new zn(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);if(!(typeof Element>`u`||!(Element instanceof Object))){if(!(e instanceof Dn(e).Element))throw TypeError(`parameter 1 is not of type "Element".`);var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(t){t.isActive()&&e.activeObservations_.push(t)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new Bn(e.target,e.broadcastRect())});this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),Hn=typeof WeakMap<`u`?new WeakMap:new gn,Un=function(){function e(t){if(!(this instanceof e))throw TypeError(`Cannot call a class as a function.`);if(!arguments.length)throw TypeError(`1 argument required, but only 0 present.`);var n=new Vn(t,Tn.getInstance(),this);Hn.set(this,n)}return e}();[`observe`,`unobserve`,`disconnect`].forEach(function(e){Un.prototype[e]=function(){var t;return(t=Hn.get(this))[e].apply(t,arguments)}});var Wn=(function(){return vn.ResizeObserver===void 0?Un:vn.ResizeObserver})(),Gn=(e,t)=>{let n=Z({},e);return Object.keys(t).forEach(e=>{let r=n[e];if(r)r.type||r.default?r.default=t[e]:r.def?r.def(t[e]):n[e]={type:r,default:t[e]};else throw Error(`not have ${e} prop`)}),n},Kn=m({compatConfig:{MODE:3},name:`ResizeObserver`,props:{disabled:Boolean,onResize:Function},emits:[`resize`],setup(e,t){let{slots:n}=t,r=Le({width:0,height:0,offsetHeight:0,offsetWidth:0}),i=null,a=null,o=()=>{a&&=(a.disconnect(),null)},s=t=>{let{onResize:n}=e,i=t[0].target,{width:a,height:o}=i.getBoundingClientRect(),{offsetWidth:s,offsetHeight:c}=i,l=Math.floor(a),u=Math.floor(o);if(r.width!==l||r.height!==u||r.offsetWidth!==s||r.offsetHeight!==c){let e={width:l,height:u,offsetWidth:s,offsetHeight:c};Z(r,e),n&&Promise.resolve().then(()=>{n(Z(Z({},e),{offsetWidth:s,offsetHeight:c}),i)})}},c=tn(),l=()=>{let{disabled:t}=e;if(t){o();return}let n=ce(c);n!==i&&(o(),i=n),!a&&n&&(a=new Wn(s),a.observe(n))};return V(()=>{l()}),M(()=>{l()}),C(()=>{o()}),G(()=>e.disabled,()=>{l()},{flush:`post`}),()=>n.default?.call(n)[0]}}),qn=e=>setTimeout(e,16),Jn=e=>clearTimeout(e);typeof window<`u`&&`requestAnimationFrame`in window&&(qn=e=>window.requestAnimationFrame(e),Jn=e=>window.cancelAnimationFrame(e));var Yn=0,Xn=new Map;function Zn(e){Xn.delete(e)}function Qn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;Yn+=1;let n=Yn;function r(t){if(t===0)Zn(n),e();else{let e=qn(()=>{r(t-1)});Xn.set(n,e)}}return r(t),n}Qn.cancel=e=>{let t=Xn.get(e);return Zn(t),Jn(t)};function $n(e){let t,n=n=>()=>{t=null,e(...n)},r=function(){t??=Qn(n([...arguments]))};return r.cancel=()=>{Qn.cancel(t),t=null},r}var er=!1;try{let e=Object.defineProperty({},"passive",{get(){er=!0}});window.addEventListener(`testPassive`,null,e),window.removeEventListener(`testPassive`,null,e)}catch{}var tr=er;function nr(e,t,n,r){if(e&&e.addEventListener){let i=r;i===void 0&&tr&&(t===`touchstart`||t===`touchmove`||t===`wheel`)&&(i={passive:!1}),e.addEventListener(t,n,i)}return{remove:()=>{e&&e.removeEventListener&&e.removeEventListener(t,n)}}}function rr(e){return e===window?{top:0,bottom:window.innerHeight}:e.getBoundingClientRect()}function ir(e,t,n){if(n!==void 0&&t.top>e.top-n)return`${n+t.top}px`}function ar(e,t,n){if(n!==void 0&&t.bottomt.target===e);n?n.affixList.push(t):(n={target:e,affixList:[t],eventHandlers:{}},sr.push(n),or.forEach(t=>{n.eventHandlers[t]=nr(e,t,()=>{n.affixList.forEach(e=>{let{lazyUpdatePosition:t}=e.exposed;t()},(t===`touchstart`||t===`touchmove`)&&tr?{passive:!0}:!1)})}))}function lr(e){let t=sr.find(t=>{let n=t.affixList.some(t=>t===e);return n&&(t.affixList=t.affixList.filter(t=>t!==e)),n});t&&t.affixList.length===0&&(sr=sr.filter(e=>e!==t),or.forEach(e=>{let n=t.eventHandlers[e];n&&n.remove&&n.remove()}))}var ur={};function dr(e,t){}function fr(e,t){}function pr(e,t,n){!t&&!ur[n]&&(e(!1,n),ur[n]=!0)}function mr(e,t){pr(dr,e,t)}function hr(e,t){pr(fr,e,t)}function gr(e,t){let{path:n,parentSelectors:r}=t;mr(!1,`[Ant Design Vue CSS-in-JS] ${n?`Error in '${n}': `:``}${e}${r.length?` Selector info: ${r.join(` -> `)}`:``}`)}function _r(e){return(e.match(/:not\(([^)]*)\)/)?.[1]||``).split(/(\[[^[]*])|(?=[.#])/).filter(e=>e).length>1}function vr(e){return e.parentSelectors.reduce((e,t)=>e?t.includes(`&`)?t.replace(/&/g,e):`${e} ${t}`:t,``)}var yr=(e,t,n)=>{let r=vr(n).match(/:not\([^)]*\)/g)||[];r.length>0&&r.some(_r)&&gr(`Concat ':not' selector not support in legacy browsers.`,n)},br=(e,t,n)=>{switch(e){case`marginLeft`:case`marginRight`:case`paddingLeft`:case`paddingRight`:case`left`:case`right`:case`borderLeft`:case`borderLeftWidth`:case`borderLeftStyle`:case`borderLeftColor`:case`borderRight`:case`borderRightWidth`:case`borderRightStyle`:case`borderRightColor`:case`borderTopLeftRadius`:case`borderTopRightRadius`:case`borderBottomLeftRadius`:case`borderBottomRightRadius`:gr(`You seem to be using non-logical property '${e}' which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n);return;case`margin`:case`padding`:case`borderWidth`:case`borderStyle`:if(typeof t==`string`){let r=t.split(` `).map(e=>e.trim());r.length===4&&r[1]!==r[3]&&gr(`You seem to be using '${e}' property with different left ${e} and right ${e}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n)}return;case`clear`:case`textAlign`:(t===`left`||t===`right`)&&gr(`You seem to be using non-logical value '${t}' of ${e}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n);return;case`borderRadius`:typeof t==`string`&&t.split(`/`).map(e=>e.trim()).reduce((e,t)=>{if(e)return e;let n=t.split(` `).map(e=>e.trim());return n.length>=2&&n[0]!==n[1]||n.length===3&&n[1]!==n[2]||n.length===4&&n[2]!==n[3]||e},!1)&&gr(`You seem to be using non-logical value '${t}' of ${e}, which is not compatible with RTL mode. Please use logical properties and values instead. For more information: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties.`,n);return;default:}},xr=(e,t,n)=>{n.parentSelectors.some(e=>e.split(`,`).some(e=>e.split(`&`).length>2))&&gr("Should not use more than one `&` in a selector.",n)};function Sr(e){if(typeof e==`number`)return[e];let t=String(e).split(/\s+/),n=``,r=0;return t.reduce((e,t)=>(t.includes(`(`)?(n+=t,r+=t.split(`(`).length-1):t.includes(`)`)?(n+=` ${t}`,r-=t.split(`)`).length-1,r===0&&(e.push(n),n=``)):r>0?n+=` ${t}`:e.push(t),e),[])}function Cr(e){return e.notSplit=!0,e}var wr={inset:[`top`,`right`,`bottom`,`left`],insetBlock:[`top`,`bottom`],insetBlockStart:[`top`],insetBlockEnd:[`bottom`],insetInline:[`left`,`right`],insetInlineStart:[`left`],insetInlineEnd:[`right`],marginBlock:[`marginTop`,`marginBottom`],marginBlockStart:[`marginTop`],marginBlockEnd:[`marginBottom`],marginInline:[`marginLeft`,`marginRight`],marginInlineStart:[`marginLeft`],marginInlineEnd:[`marginRight`],paddingBlock:[`paddingTop`,`paddingBottom`],paddingBlockStart:[`paddingTop`],paddingBlockEnd:[`paddingBottom`],paddingInline:[`paddingLeft`,`paddingRight`],paddingInlineStart:[`paddingLeft`],paddingInlineEnd:[`paddingRight`],borderBlock:Cr([`borderTop`,`borderBottom`]),borderBlockStart:Cr([`borderTop`]),borderBlockEnd:Cr([`borderBottom`]),borderInline:Cr([`borderLeft`,`borderRight`]),borderInlineStart:Cr([`borderLeft`]),borderInlineEnd:Cr([`borderRight`]),borderBlockWidth:[`borderTopWidth`,`borderBottomWidth`],borderBlockStartWidth:[`borderTopWidth`],borderBlockEndWidth:[`borderBottomWidth`],borderInlineWidth:[`borderLeftWidth`,`borderRightWidth`],borderInlineStartWidth:[`borderLeftWidth`],borderInlineEndWidth:[`borderRightWidth`],borderBlockStyle:[`borderTopStyle`,`borderBottomStyle`],borderBlockStartStyle:[`borderTopStyle`],borderBlockEndStyle:[`borderBottomStyle`],borderInlineStyle:[`borderLeftStyle`,`borderRightStyle`],borderInlineStartStyle:[`borderLeftStyle`],borderInlineEndStyle:[`borderRightStyle`],borderBlockColor:[`borderTopColor`,`borderBottomColor`],borderBlockStartColor:[`borderTopColor`],borderBlockEndColor:[`borderBottomColor`],borderInlineColor:[`borderLeftColor`,`borderRightColor`],borderInlineStartColor:[`borderLeftColor`],borderInlineEndColor:[`borderRightColor`],borderStartStartRadius:[`borderTopLeftRadius`],borderStartEndRadius:[`borderTopRightRadius`],borderEndStartRadius:[`borderBottomLeftRadius`],borderEndEndRadius:[`borderBottomRightRadius`]};function Tr(e){return{_skip_check_:!0,value:e}}var Er={visit:e=>{let t={};return Object.keys(e).forEach(n=>{let r=e[n],i=wr[n];if(i&&(typeof r==`number`||typeof r==`string`)){let e=Sr(r);i.length&&i.notSplit?i.forEach(e=>{t[e]=Tr(r)}):i.length===1?t[i[0]]=Tr(r):i.length===2?i.forEach((n,r)=>{t[n]=Tr(e[r]??e[0])}):i.length===4?i.forEach((n,r)=>{t[n]=Tr(e[r]??e[r-2]??e[0])}):t[n]=r}else t[n]=r}),t}},Dr=/url\([^)]+\)|var\([^)]+\)|(\d*\.?\d+)px/g;function Or(e,t){let n=10**(t+1),r=Math.floor(e*n);return Math.round(r/10)*10/n}var kr={Theme:pe,createTheme:Ie,useStyleRegister:P,useCacheToken:Ae,createCache:We,useStyleInject:jt,useStyleProvider:Ut,Keyframes:L,extractStyle:Ft,legacyLogicalPropertiesTransformer:Er,px2remTransformer:function(){let{rootValue:e=16,precision:t=5,mediaQuery:n=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=(n,r)=>{if(!r)return n;let i=parseFloat(r);return i<=1?n:`${Or(i/e,t)}rem`};return{visit:e=>{let t=Z({},e);return Object.entries(e).forEach(e=>{let[i,a]=e;if(typeof a==`string`&&a.includes(`px`)){let e=a.replace(Dr,r);t[i]=e}!Ne[i]&&typeof a==`number`&&a!==0&&(t[i]=`${a}px`.replace(Dr,r));let o=i.trim();if(o.startsWith(`@`)&&o.includes(`px`)&&n){let e=i.replace(Dr,r);t[e]=t[i],delete t[i]}}),t}}},logicalPropertiesLinter:br,legacyNotSelectorLinter:yr,parentSelectorLinter:xr,StyleProvider:ft},Ar=[`blue`,`purple`,`cyan`,`green`,`magenta`,`pink`,`red`,`orange`,`yellow`,`volcano`,`geekblue`,`lime`,`gold`],jr=e=>({color:e.colorLink,textDecoration:`none`,outline:`none`,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,"&:focus, &:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive}}),Mr=(e,t,n,r,i)=>{let a=e/2,o=a,s=n*1/Math.sqrt(2),c=a-n*(1-1/Math.sqrt(2)),l=a-1/Math.sqrt(2)*t,u=n*(Math.sqrt(2)-1)+1/Math.sqrt(2)*t,d=2*a-l,f=u,p=2*a-s,m=c,h=2*a-0,g=o,_=a*Math.sqrt(2)+n*(Math.sqrt(2)-2),v=n*(Math.sqrt(2)-1);return{pointerEvents:`none`,width:e,height:e,overflow:`hidden`,"&::after":{content:`""`,position:`absolute`,width:_,height:_,bottom:0,insetInline:0,margin:`auto`,borderRadius:{_skip_check_:!0,value:`0 0 ${t}px 0`},transform:`translateY(50%) rotate(-135deg)`,boxShadow:i,zIndex:0,background:`transparent`},"&::before":{position:`absolute`,bottom:0,insetInlineStart:0,width:e,height:e/2,background:r,clipPath:{_multi_value_:!0,value:[`polygon(${v}px 100%, 50% ${v}px, ${2*a-v}px 100%, ${v}px 100%)`,`path('M 0 ${o} A ${n} ${n} 0 0 0 ${s} ${c} L ${l} ${u} A ${t} ${t} 0 0 1 ${d} ${f} L ${p} ${m} A ${n} ${n} 0 0 0 ${h} ${g} Z')`]},content:`""`}}};function Nr(e,t){return Ar.reduce((n,r)=>{let i=e[`${r}-1`],a=e[`${r}-3`],o=e[`${r}-6`],s=e[`${r}-7`];return Z(Z({},n),t(r,{lightColor:i,lightBorderColor:a,darkColor:o,textColor:s}))},{})}function Pr(e,t){let n=Z({},e);for(let e=0;e{let{componentCls:t}=e;return{[t]:{position:`fixed`,zIndex:e.zIndexPopup}}},Ir=S(`Affix`,e=>[Fr(B(e,{zIndexPopup:e.zIndexBase+10}))]);function Lr(){return typeof window<`u`?window:null}var Rr;(function(e){e[e.None=0]=`None`,e[e.Prepare=1]=`Prepare`})(Rr||={});var zr=l(m({compatConfig:{MODE:3},name:`AAffix`,inheritAttrs:!1,props:{offsetTop:Number,offsetBottom:Number,target:{type:Function,default:Lr},prefixCls:String,onChange:Function,onTestUpdatePosition:Function},setup(e,t){let{slots:n,emit:r,expose:i,attrs:a}=t,o=q(),s=q(),c=Le({affixStyle:void 0,placeholderStyle:void 0,status:Rr.None,lastAffix:!1,prevTarget:null,timeout:null}),l=tn(),u=J(()=>e.offsetBottom===void 0&&e.offsetTop===void 0?0:e.offsetTop),d=J(()=>e.offsetBottom),f=()=>{let{status:t,lastAffix:n}=c,{target:i}=e;if(t!==Rr.Prepare||!s.value||!o.value||!i)return;let a=i();if(!a)return;let l={status:Rr.None},f=rr(o.value);if(f.top===0&&f.left===0&&f.width===0&&f.height===0)return;let p=rr(a),m=ir(f,p,u.value),h=ar(f,p,d.value);if(!(f.top===0&&f.left===0&&f.width===0&&f.height===0)){if(m!==void 0){let e=`${f.width}px`,t=`${f.height}px`;l.affixStyle={position:`fixed`,top:m,width:e,height:t},l.placeholderStyle={width:e,height:t}}else if(h!==void 0){let e=`${f.width}px`,t=`${f.height}px`;l.affixStyle={position:`fixed`,bottom:h,width:e,height:t},l.placeholderStyle={width:e,height:t}}l.lastAffix=!!l.affixStyle,n!==l.lastAffix&&r(`change`,l.lastAffix),Z(c,l)}},p=()=>{Z(c,{status:Rr.Prepare,affixStyle:void 0,placeholderStyle:void 0})},m=$n(()=>{p()}),h=$n(()=>{let{target:t}=e,{affixStyle:n}=c;if(t&&n){let e=t();if(e&&o.value){let t=rr(e),r=rr(o.value),i=ir(r,t,u.value),a=ar(r,t,d.value);if(i!==void 0&&n.top===i||a!==void 0&&n.bottom===a)return}}p()});i({updatePosition:m,lazyUpdatePosition:h}),G(()=>e.target,e=>{let t=e?.()||null;c.prevTarget!==t&&(lr(l),t&&(cr(t,l),m()),c.prevTarget=t)}),G(()=>[e.offsetTop,e.offsetBottom],m),V(()=>{let{target:t}=e;t&&(c.timeout=setTimeout(()=>{cr(t(),l),m()}))}),M(()=>{f()}),C(()=>{clearTimeout(c.timeout),lr(l),m.cancel(),h.cancel()});let{prefixCls:g}=X(`affix`,e),[_,v]=Ir(g);return()=>{let{affixStyle:t,placeholderStyle:r,status:i}=c,l=K({[g.value]:t,[v.value]:!0}),u=Pr(e,[`prefixCls`,`offsetTop`,`offsetBottom`,`target`,`onChange`,`onTestUpdatePosition`]);return _(U(Kn,{onResize:m},{default:()=>[U(`div`,Y(Y(Y({},u),a),{},{ref:o,"data-measure-status":i}),[t&&U(`div`,{style:r,"aria-hidden":`true`},null),U(`div`,{class:l,ref:s,style:t},[n.default?.call(n)])])]}))}}}));function Br(e){return typeof e==`object`&&!!e&&e.nodeType===1}function Vr(e,t){return(!t||e!==`hidden`)&&e!==`visible`&&e!==`clip`}function Hr(e,t){if(e.clientHeightt||a>e&&o=t&&s>=n?a-e-r:o>t&&sn?o-t+i:0}var Wr=function(e,t){var n=window,r=t.scrollMode,i=t.block,a=t.inline,o=t.boundary,s=t.skipOverflowHiddenElements,c=typeof o==`function`?o:function(e){return e!==o};if(!Br(e))throw TypeError(`Invalid target`);for(var l,u=document.scrollingElement||document.documentElement,d=[],f=e;Br(f)&&c(f);){if((f=(l=f).parentElement??(l.getRootNode().host||null))===u){d.push(f);break}f!=null&&f===document.body&&Hr(f)&&!Hr(document.documentElement)||f!=null&&Hr(f,s)&&d.push(f)}for(var p=n.visualViewport?n.visualViewport.width:innerWidth,m=n.visualViewport?n.visualViewport.height:innerHeight,h=window.scrollX||pageXOffset,g=window.scrollY||pageYOffset,_=e.getBoundingClientRect(),v=_.height,y=_.width,b=_.top,x=_.right,S=_.bottom,C=_.left,w=i===`start`||i===`nearest`?b:i===`end`?S:b+v/2,T=a===`center`?C+y/2:a===`end`?x:C,E=[],D=0;D=0&&C>=0&&S<=m&&x<=p&&b>=M&&S<=P&&C>=F&&x<=N)return E;var I=getComputedStyle(O),L=parseInt(I.borderLeftWidth,10),R=parseInt(I.borderTopWidth,10),ee=parseInt(I.borderRightWidth,10),te=parseInt(I.borderBottomWidth,10),z=0,ne=0,re=`offsetWidth`in O?O.offsetWidth-O.clientWidth-L-ee:0,ie=`offsetHeight`in O?O.offsetHeight-O.clientHeight-R-te:0,ae=`offsetWidth`in O?O.offsetWidth===0?0:j/O.offsetWidth:0,oe=`offsetHeight`in O?O.offsetHeight===0?0:A/O.offsetHeight:0;if(u===O)z=i===`start`?w:i===`end`?w-m:i===`nearest`?Ur(g,g+m,m,R,te,g+w,g+w+v,v):w-m/2,ne=a===`start`?T:a===`center`?T-p/2:a===`end`?T-p:Ur(h,h+p,p,L,ee,h+T,h+T+y,y),z=Math.max(0,z+g),ne=Math.max(0,ne+h);else{z=i===`start`?w-M-R:i===`end`?w-P+te+ie:i===`nearest`?Ur(M,P,A,R,te+ie,w,w+v,v):w-(M+A/2)+ie/2,ne=a===`start`?T-F-L:a===`center`?T-(F+j/2)+re/2:a===`end`?T-N+ee+re:Ur(F,N,j,L,ee+re,T,T+y,y);var se=O.scrollLeft,ce=O.scrollTop;w+=ce-(z=Math.max(0,Math.min(ce+z/oe,O.scrollHeight-A/oe+ie))),T+=se-(ne=Math.max(0,Math.min(se+ne/ae,O.scrollWidth-j/ae+re)))}E.push({el:O,top:z,left:ne})}return E};function Gr(e){return e===Object(e)&&Object.keys(e).length!==0}function Kr(e,t){t===void 0&&(t=`auto`);var n=`scrollBehavior`in document.body.style;e.forEach(function(e){var r=e.el,i=e.top,a=e.left;r.scroll&&n?r.scroll({top:i,left:a,behavior:t}):(r.scrollTop=i,r.scrollLeft=a)})}function qr(e){return e===!1?{block:`end`,inline:`nearest`}:Gr(e)?e:{block:`start`,inline:`nearest`}}function Jr(e,t){var n=e.isConnected||e.ownerDocument.documentElement.contains(e);if(Gr(t)&&typeof t.behavior==`function`)return t.behavior(n?Wr(e,t):[]);if(n){var r=qr(t);return Kr(Wr(e,r),r.behavior)}}function Yr(e,t,n,r){let i=n-t;return e/=r/2,e<1?i/2*e*e*e+t:i/2*((e-=2)*e*e+2)+t}function Xr(e){return e!=null&&e===e.window}function Zr(e,t){if(typeof window>`u`)return 0;let n=t?`scrollTop`:`scrollLeft`,r=0;return Xr(e)?r=e[t?`scrollY`:`scrollX`]:e instanceof Document?r=e.documentElement[n]:(e instanceof HTMLElement||e)&&(r=e[n]),e&&!Xr(e)&&typeof r!=`number`&&(r=(e.ownerDocument??e).documentElement?.[n]),r}function Qr(e){let{getContainer:t=()=>window,callback:n,duration:r=450}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=t(),a=Zr(i,!0),o=Date.now(),s=()=>{let t=Date.now()-o,c=Yr(t>r?r:t,a,e,r);Xr(i)?i.scrollTo(window.scrollX,c):i instanceof Document?i.documentElement.scrollTop=c:i.scrollTop=c,t{ge(ei,e)},ni=()=>b(ei,{registerLink:$r,unregisterLink:$r,scrollTo:$r,activeLink:J(()=>``),handleClick:$r,direction:J(()=>`vertical`)}),ri=e=>{let{componentCls:t,holderOffsetBlock:n,motionDurationSlow:r,lineWidthBold:i,colorPrimary:a,lineType:o,colorSplit:s}=e;return{[`${t}-wrapper`]:{marginBlockStart:-n,paddingBlockStart:n,backgroundColor:`transparent`,[t]:Z(Z({},cn(e)),{position:`relative`,paddingInlineStart:i,[`${t}-link`]:{paddingBlock:e.anchorPaddingBlock,paddingInline:`${e.anchorPaddingInline}px 0`,"&-title":Z(Z({},Te),{position:`relative`,display:`block`,marginBlockEnd:e.anchorTitleBlock,color:e.colorText,transition:`all ${e.motionDurationSlow}`,"&:only-child":{marginBlockEnd:0}}),[`&-active > ${t}-link-title`]:{color:e.colorPrimary},[`${t}-link`]:{paddingBlock:e.anchorPaddingBlockSecondary}}}),[`&:not(${t}-wrapper-horizontal)`]:{[t]:{"&::before":{position:`absolute`,left:{_skip_check_:!0,value:0},top:0,height:`100%`,borderInlineStart:`${i}px ${o} ${s}`,content:`" "`},[`${t}-ink`]:{position:`absolute`,left:{_skip_check_:!0,value:0},display:`none`,transform:`translateY(-50%)`,transition:`top ${r} ease-in-out`,width:i,backgroundColor:a,[`&${t}-ink-visible`]:{display:`inline-block`}}}},[`${t}-fixed ${t}-ink ${t}-ink`]:{display:`none`}}}},ii=e=>{let{componentCls:t,motionDurationSlow:n,lineWidthBold:r,colorPrimary:i}=e;return{[`${t}-wrapper-horizontal`]:{position:`relative`,"&::before":{position:`absolute`,left:{_skip_check_:!0,value:0},right:{_skip_check_:!0,value:0},bottom:0,borderBottom:`1px ${e.lineType} ${e.colorSplit}`,content:`" "`},[t]:{overflowX:`scroll`,position:`relative`,display:`flex`,scrollbarWidth:`none`,"&::-webkit-scrollbar":{display:`none`},[`${t}-link:first-of-type`]:{paddingInline:0},[`${t}-ink`]:{position:`absolute`,bottom:0,transition:`left ${n} ease-in-out, width ${n} ease-in-out`,height:r,backgroundColor:i}}}}},ai=S(`Anchor`,e=>{let{fontSize:t,fontSizeLG:n,padding:r,paddingXXS:i}=e,a=B(e,{holderOffsetBlock:i,anchorPaddingBlock:i,anchorPaddingBlockSecondary:i/2,anchorPaddingInline:r,anchorTitleBlock:t/14*3,anchorBallSize:n/2});return[ri(a),ii(a)]}),oi=m({compatConfig:{MODE:3},name:`AAnchorLink`,inheritAttrs:!1,props:Gn({prefixCls:String,href:String,title:sn(),target:String,customTitleProps:nn()},{href:`#`}),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,i=null,{handleClick:a,scrollTo:o,unregisterLink:s,registerLink:c,activeLink:l}=ni(),{prefixCls:u}=X(`anchor`,e),d=t=>{let{href:n}=e;a(t,{title:i,href:n}),o(n)};return G(()=>e.href,(e,t)=>{ue(()=>{s(t),c(e)})}),V(()=>{c(e.href)}),mt(()=>{s(e.href)}),()=>{let{href:t,target:a,title:o=n.title,customTitleProps:s={}}=e,c=u.value;i=typeof o==`function`?o(s):o;let f=l.value===t,p=K(`${c}-link`,{[`${c}-link-active`]:f},r.class),m=K(`${c}-link-title`,{[`${c}-link-title-active`]:f});return U(`div`,Y(Y({},r),{},{class:p}),[U(`a`,{class:m,href:t,title:typeof i==`string`?i:``,target:a,onClick:d},[n.customTitle?n.customTitle(s):i]),n.default?.call(n)])}}}),si=((e,t,n)=>{mr(e,`[ant-design-vue: ${t}] ${n}`)});function ci(){return window}function li(e,t){if(!e.getClientRects().length)return 0;let n=e.getBoundingClientRect();return n.width||n.height?t===window?(t=e.ownerDocument.documentElement,n.top-t.clientTop):n.top-t.getBoundingClientRect().top:n.top}var ui=/#([\S ]+)$/,di=m({compatConfig:{MODE:3},name:`AAnchor`,inheritAttrs:!1,props:{prefixCls:String,offsetTop:Number,bounds:Number,affix:{type:Boolean,default:!0},showInkInFixed:{type:Boolean,default:!1},getContainer:Function,wrapperClass:String,wrapperStyle:{type:Object,default:void 0},getCurrentAnchor:Function,targetOffset:Number,items:qe(),direction:g.oneOf([`vertical`,`horizontal`]).def(`vertical`),onChange:Function,onClick:Function},setup(e,t){let{emit:n,attrs:r,slots:i,expose:a}=t,{prefixCls:o,getTargetContainer:s,direction:c}=X(`anchor`,e),l=J(()=>e.direction??`vertical`),u=H(null),d=H(),f=Le({links:[],scrollContainer:null,scrollEvent:null,animating:!1}),p=H(null),m=J(()=>{let{getContainer:t}=e;return t||s?.value||ci}),h=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,n=[],r=m.value();return f.links.forEach(i=>{let a=ui.exec(i.toString());if(!a)return;let o=document.getElementById(a[1]);if(o){let a=li(o,r);at.top>e.top?t:e).link:``},g=t=>{let{getCurrentAnchor:r}=e;p.value!==t&&(p.value=typeof r==`function`?r(t):t,n(`change`,t))},_=t=>{let{offsetTop:n,targetOffset:r}=e;g(t);let i=ui.exec(t);if(!i)return;let a=document.getElementById(i[1]);if(!a)return;let o=m.value(),s=Zr(o,!0)+li(a,o);s-=r===void 0?n||0:r,f.animating=!0,Qr(s,{callback:()=>{f.animating=!1},getContainer:m.value})};a({scrollTo:_});let v=()=>{if(f.animating)return;let{offsetTop:t,bounds:n,targetOffset:r}=e,i=h(r===void 0?t||0:r,n);g(i)},y=()=>{let e=d.value.querySelector(`.${o.value}-link-title-active`);if(e&&u.value){let t=l.value===`horizontal`;u.value.style.top=t?``:`${e.offsetTop+e.clientHeight/2}px`,u.value.style.height=t?``:`${e.clientHeight}px`,u.value.style.left=t?`${e.offsetLeft}px`:``,u.value.style.width=t?`${e.clientWidth}px`:``,t&&Jr(e,{scrollMode:`if-needed`,block:`nearest`})}};ti({registerLink:e=>{f.links.includes(e)||f.links.push(e)},unregisterLink:e=>{let t=f.links.indexOf(e);t!==-1&&f.links.splice(t,1)},activeLink:p,scrollTo:_,handleClick:(e,t)=>{n(`click`,e,t)},direction:l}),V(()=>{ue(()=>{let e=m.value();f.scrollContainer=e,f.scrollEvent=nr(f.scrollContainer,`scroll`,v),v()})}),mt(()=>{f.scrollEvent&&f.scrollEvent.remove()}),M(()=>{if(f.scrollEvent){let e=m.value();f.scrollContainer!==e&&(f.scrollContainer=e,f.scrollEvent.remove(),f.scrollEvent=nr(f.scrollContainer,`scroll`,v),v())}y()});let b=e=>Array.isArray(e)?e.map(e=>{let{children:t,key:n,href:r,target:a,class:o,style:s,title:c}=e;return U(oi,{key:n,href:r,target:a,class:o,style:s,title:c,customTitleProps:e},{default:()=>[l.value===`vertical`?b(t):null],customTitle:i.customTitle})}):null,[x,S]=ai(o);return()=>{let{offsetTop:t,affix:n,showInkInFixed:a}=e,s=o.value,f=K(`${s}-ink`,{[`${s}-ink-visible`]:p.value}),h=K(S.value,e.wrapperClass,`${s}-wrapper`,{[`${s}-wrapper-horizontal`]:l.value===`horizontal`,[`${s}-rtl`]:c.value===`rtl`}),g=K(s,{[`${s}-fixed`]:!n&&!a}),_=U(`div`,{class:h,style:Z({maxHeight:t?`calc(100vh - ${t}px)`:`100vh`},e.wrapperStyle),ref:d},[U(`div`,{class:g},[U(`span`,{class:f,ref:u},null),Array.isArray(e.items)?b(e.items):i.default?.call(i)])]);return x(n?U(zr,Y(Y({},r),{},{offsetTop:t,target:m.value}),{default:()=>[_]}):_)}}});di.Link=oi,di.install=function(e){return e.component(di.name,di),e.component(di.Link.name,di.Link),e};var fi=di;function pi(e,t){let{key:n}=e,r;return`value`in e&&({value:r}=e),n??(r===void 0?`rc-index-key-${t}`:r)}function mi(e,t){let{label:n,value:r,options:i}=e||{};return{label:n||(t?`children`:`label`),value:r||`value`,options:i||`options`}}function hi(e){let{fieldNames:t,childrenAsData:n}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=[],{label:i,value:a,options:o}=mi(t,!1);function s(e,t){e.forEach(e=>{let c=e[i];if(t||!(o in e)){let n=e[a];r.push({key:pi(e,r.length),groupOption:t,data:e,label:c,value:n})}else{let t=c;t===void 0&&n&&(t=e.label),r.push({key:pi(e,r.length),group:!0,data:e,label:t}),s(e[o],!0)}})}return s(e,!1),r}function gi(e){let t=Z({},e);return`props`in t||Object.defineProperty(t,"props",{get(){return t}}),t}function _i(e,t){if(!t||!t.length)return null;let n=!1;function r(e,t){let[i,...a]=t;if(!i)return[e];let o=e.split(i);return n||=o.length>1,o.reduce((e,t)=>[...e,...r(t,a)],[]).filter(e=>e)}let i=r(e,t);return n?i:null}function vi(){return``}function yi(e){return e?e.ownerDocument:window.document}function bi(){}var xi=()=>({action:g.oneOfType([g.string,g.arrayOf(g.string)]).def([]),showAction:g.any.def([]),hideAction:g.any.def([]),getPopupClassNameFromAlign:g.any.def(vi),onPopupVisibleChange:Function,afterPopupVisibleChange:g.func.def(bi),popup:g.any,arrow:g.bool.def(!0),popupStyle:{type:Object,default:void 0},prefixCls:g.string.def(`rc-trigger-popup`),popupClassName:g.string.def(``),popupPlacement:String,builtinPlacements:g.object,popupTransitionName:String,popupAnimation:g.any,mouseEnterDelay:g.number.def(0),mouseLeaveDelay:g.number.def(.1),zIndex:Number,focusDelay:g.number.def(0),blurDelay:g.number.def(.15),getPopupContainer:Function,getDocument:g.func.def(yi),forceRender:{type:Boolean,default:void 0},destroyPopupOnHide:{type:Boolean,default:!1},mask:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!0},popupAlign:g.object.def(()=>({})),popupVisible:{type:Boolean,default:void 0},defaultPopupVisible:{type:Boolean,default:!1},maskTransitionName:String,maskAnimation:String,stretch:String,alignPoint:{type:Boolean,default:void 0},autoDestroy:{type:Boolean,default:!1},mobile:Object,getTriggerDOMNode:Function}),Si={visible:Boolean,prefixCls:String,zIndex:Number,destroyPopupOnHide:Boolean,forceRender:Boolean,arrow:{type:Boolean,default:!0},animation:[String,Object],transitionName:String,stretch:{type:String},align:{type:Object},point:{type:Object},getRootDomNode:{type:Function},getClassNameFromAlign:{type:Function},onAlign:{type:Function},onMouseenter:{type:Function},onMouseleave:{type:Function},onMousedown:{type:Function},onTouchstart:{type:Function}},Ci=Z(Z({},Si),{mobile:{type:Object}}),wi=Z(Z({},Si),{mask:Boolean,mobile:{type:Object},maskAnimation:String,maskTransitionName:String});function Ti(e){let{prefixCls:t,visible:n,zIndex:r,mask:i,maskAnimation:a,maskTransitionName:o}=e;if(!i)return null;let s={};return(o||a)&&(s=y({prefixCls:t,transitionName:o,animation:a})),U(He,Y({appear:!0},s),{default:()=>[It(U(`div`,{style:{zIndex:r},class:`${t}-mask`},null),[[Ee(`if`),n]])]})}Ti.displayName=`Mask`;var Ei=m({compatConfig:{MODE:3},name:`MobilePopupInner`,inheritAttrs:!1,props:Ci,emits:[`mouseenter`,`mouseleave`,`mousedown`,`touchstart`,`align`],setup(e,t){let{expose:n,slots:r}=t,i=H();return n({forceAlign:()=>{},getElement:()=>i.value}),()=>{let{zIndex:t,visible:n,prefixCls:a,mobile:{popupClassName:o,popupStyle:s,popupMotion:c={},popupRender:l}={}}=e,u=Z({zIndex:t},s),d=fe(r.default?.call(r));d.length>1&&(d=U(`div`,{class:`${a}-content`},[d])),l&&(d=l(d));let f=K(a,o);return U(He,Y({ref:i},c),{default:()=>[n?U(`div`,{class:f,style:u},[d]):null]})}}}),Di=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Oi=[`measure`,`align`,null,`motion`],ki=((e,t)=>{let n=q(null),r=q(),i=q(!1);function a(e){i.value||(n.value=e)}function o(){Qn.cancel(r.value)}function s(e){o(),r.value=Qn(()=>{let t=n.value;switch(n.value){case`align`:t=`motion`;break;case`motion`:t=`stable`;break;default:}a(t),e?.()})}return G(e,()=>{a(`measure`)},{immediate:!0,flush:`post`}),V(()=>{G(n,()=>{switch(n.value){case`measure`:t();break;default:}n.value&&(r.value=Qn(()=>Di(void 0,void 0,void 0,function*(){let e=Oi.indexOf(n.value),t=Oi[e+1];t&&e!==-1&&a(t)})))},{immediate:!0,flush:`post`})}),mt(()=>{i.value=!0,o()}),[n,s]}),Ai=(e=>{let t=q({width:0,height:0});function n(e){t.value={width:e.offsetWidth,height:e.offsetHeight}}return[J(()=>{let n={};if(e.value){let{width:r,height:i}=t.value;e.value.indexOf(`height`)!==-1&&i?n.height=`${i}px`:e.value.indexOf(`minHeight`)!==-1&&i&&(n.minHeight=`${i}px`),e.value.indexOf(`width`)!==-1&&r?n.width=`${r}px`:e.value.indexOf(`minWidth`)!==-1&&r&&(n.minWidth=`${r}px`)}return n}),n]});function ji(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Mi(e){for(var t=1;t=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function La(e,t,n,r){var i=ja.clone(e),a={width:t.width,height:t.height};return r.adjustX&&i.left=n.left&&i.left+a.width>n.right&&(a.width-=i.left+a.width-n.right),r.adjustX&&i.left+a.width>n.right&&(i.left=Math.max(n.right-a.width,n.left)),r.adjustY&&i.top=n.top&&i.top+a.height>n.bottom&&(a.height-=i.top+a.height-n.bottom),r.adjustY&&i.top+a.height>n.bottom&&(i.top=Math.max(n.bottom-a.height,n.top)),ja.mix(i,a)}function Ra(e){var t,n,r;if(!ja.isWindow(e)&&e.nodeType!==9)t=ja.offset(e),n=ja.outerWidth(e),r=ja.outerHeight(e);else{var i=ja.getWindow(e);t={left:ja.getWindowScrollLeft(i),top:ja.getWindowScrollTop(i)},n=ja.viewportWidth(i),r=ja.viewportHeight(i)}return t.width=n,t.height=r,t}function za(e,t){var n=t.charAt(0),r=t.charAt(1),i=e.width,a=e.height,o=e.left,s=e.top;return n===`c`?s+=a/2:n===`b`&&(s+=a),r===`c`?o+=i/2:r===`r`&&(o+=i),{left:o,top:s}}function Ba(e,t,n,r,i){var a=za(t,n[1]),o=za(e,n[0]),s=[o.left-a.left,o.top-a.top];return{left:Math.round(e.left-s[0]+r[0]-i[0]),top:Math.round(e.top-s[1]+r[1]-i[1])}}function Va(e,t,n){return e.leftn.right}function Ha(e,t,n){return e.topn.bottom}function Ua(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.right||r.top>=n.bottom}function Za(e,t,n){var r=n.target||t;return Ya(e,Ra(r),n,!Xa(r,n.overflow&&n.overflow.alwaysByViewport))}Za.__getOffsetParent=Na,Za.__getVisibleRectForElement=Ia;function Qa(e,t,n){var r,i,a=ja.getDocument(e),o=a.defaultView||a.parentWindow,s=ja.getWindowScrollLeft(o),c=ja.getWindowScrollTop(o),l=ja.viewportWidth(o),u=ja.viewportHeight(o);r=`pageX`in t?t.pageX:s+t.clientX,i=`pageY`in t?t.pageY:c+t.clientY;var d={left:r,top:i,width:0,height:0},f=r>=0&&r<=s+l&&i>=0&&i<=c+u,p=[n.points[0],`cc`];return Ya(e,d,Mi(Mi({},n),{},{points:p}),f)}function $a(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3],a=e;if(Array.isArray(e)&&(a=ht(e)[0]),!a)return null;let o=ct(a,t,r);return o.props=n?Z(Z({},o.props),t):o.props,i(typeof o.props.class!=`object`,`class must be string`),o}function eo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return e.map(e=>$a(e,t,n))}function to(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(Array.isArray(e))return e.map(e=>to(e,t,n,r));{if(!_(e))return e;let i=$a(e,t,n,r);return Array.isArray(i.children)&&(i.children=to(i.children)),i}}function no(e,t,n){Ye(ct(e,Z({},t)),n)}var ro=e=>(e||[]).some(e=>!_(e)||!(e.type===Qe||e.type===rt&&!ro(e.children)))?e:null;function io(e,t,n,r){let i=e[t]?.call(e,n);return ro(i)?i:r?.()}var ao=(e=>{if(!e)return!1;if(e.offsetParent)return!0;if(e.getBBox){let t=e.getBBox();if(t.width||t.height)return!0}if(e.getBoundingClientRect){let t=e.getBoundingClientRect();if(t.width||t.height)return!0}return!1});function oo(e,t){return e===t?!0:!e||!t?!1:`pageX`in t&&`pageY`in t?e.pageX===t.pageX&&e.pageY===t.pageY:`clientX`in t&&`clientY`in t&&e.clientX===t.clientX&&e.clientY===t.clientY}function so(e,t){e!==document.activeElement&&Dt(t,e)&&typeof e.focus==`function`&&e.focus()}function co(e,t){let n=null,r=null;function i(e){let[{target:i}]=e;if(!document.documentElement.contains(i))return;let{width:a,height:o}=i.getBoundingClientRect(),s=Math.floor(a),c=Math.floor(o);(n!==s||r!==c)&&Promise.resolve().then(()=>{t({width:s,height:c})}),n=s,r=c}let a=new Wn(i);return e&&a.observe(e),()=>{a.disconnect()}}var lo=((e,t)=>{let n=!1,r=null;function i(){clearTimeout(r)}function a(o){if(!n||o===!0){if(e()===!1)return;n=!0,i(),r=setTimeout(()=>{n=!1},t.value)}else i(),r=setTimeout(()=>{n=!1,a()},t.value)}return[a,()=>{n=!1,i()}]});function uo(){this.__data__=[],this.size=0}function fo(e,t){return e===t||e!==e&&t!==t}function po(e,t){for(var n=e.length;n--;)if(fo(e[n][0],t))return n;return-1}var mo=Array.prototype.splice;function ho(e){var t=this.__data__,n=po(t,e);return n<0?!1:(n==t.length-1?t.pop():mo.call(t,n,1),--this.size,!0)}function go(e){var t=this.__data__,n=po(t,e);return n<0?void 0:t[n][1]}function _o(e){return po(this.__data__,e)>-1}function vo(e,t){var n=this.__data__,r=po(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function yo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++ts))return!1;var l=a.get(e),u=a.get(t);if(l&&u)return l==t&&u==e;var d=-1,f=!0,p=n&Is?new Ms:void 0;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e-1&&e%1==0&&e<=Dc}var kc=`[object Arguments]`,Ac=`[object Array]`,jc=`[object Boolean]`,Mc=`[object Date]`,Nc=`[object Error]`,Pc=`[object Function]`,Fc=`[object Map]`,Ic=`[object Number]`,Lc=`[object Object]`,Rc=`[object RegExp]`,zc=`[object Set]`,Bc=`[object String]`,Vc=`[object WeakMap]`,Hc=`[object ArrayBuffer]`,Uc=`[object DataView]`,Wc=`[object Float32Array]`,Gc=`[object Float64Array]`,Kc=`[object Int8Array]`,qc=`[object Int16Array]`,Jc=`[object Int32Array]`,Yc=`[object Uint8Array]`,Xc=`[object Uint8ClampedArray]`,Zc=`[object Uint16Array]`,Qc=`[object Uint32Array]`,$c={};$c[Wc]=$c[Gc]=$c[Kc]=$c[qc]=$c[Jc]=$c[Yc]=$c[Xc]=$c[Zc]=$c[Qc]=!0,$c[kc]=$c[Ac]=$c[Hc]=$c[jc]=$c[Uc]=$c[Mc]=$c[Nc]=$c[Pc]=$c[Fc]=$c[Ic]=$c[Lc]=$c[Rc]=$c[zc]=$c[Bc]=$c[Vc]=!1;function el(e){return fc(e)&&Oc(e.length)&&!!$c[Ro(e)]}function tl(e){return function(t){return e(t)}}var nl=typeof exports==`object`&&exports&&!exports.nodeType&&exports,rl=nl&&typeof module==`object`&&module&&!module.nodeType&&module,il=rl&&rl.exports===nl&&wo.process,al=function(){try{return rl&&rl.require&&rl.require(`util`).types||il&&il.binding&&il.binding(`util`)}catch{}}(),ol=al&&al.isTypedArray,sl=ol?tl(ol):el,cl=Object.prototype.hasOwnProperty;function ll(e,t){var n=ic(e),r=!n&&vc(e),i=!n&&!r&&Cc(e),a=!n&&!r&&!i&&sl(e),o=n||r||i||a,s=o?dc(e.length,String):[],c=s.length;for(var l in e)(t||cl.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||Ec(l,c)))&&s.push(l);return s}var ul=Object.prototype;function dl(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||ul)}function fl(e,t){return function(n){return e(t(n))}}var pl=fl(Object.keys,Object),ml=Object.prototype.hasOwnProperty;function hl(e){if(!dl(e))return pl(e);var t=[];for(var n in Object(e))ml.call(e,n)&&n!=`constructor`&&t.push(n);return t}function gl(e){return e!=null&&Oc(e.length)&&!Wo(e)}function _l(e){return gl(e)?ll(e):hl(e)}function vl(e){return ac(e,_l,uc)}var yl=1,bl=Object.prototype.hasOwnProperty;function xl(e,t,n,r,i,a){var o=n&yl,s=vl(e),c=s.length;if(c!=vl(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:bl.call(t,u)))return!1}var d=a.get(e),f=a.get(t);if(d&&f)return d==t&&f==e;var p=!0;a.set(e,t),a.set(t,e);for(var m=o;++l{let{disabled:t,target:n,align:r,onAlign:o}=e;if(!t&&n&&a.value){let e=a.value,t,s=Jl(n),c=Yl(n);i.value.element=s,i.value.point=c,i.value.align=r;let{activeElement:l}=document;return s&&ao(s)?t=Za(e,s,r):c&&(t=Qa(e,c,r)),so(l,e),o&&t&&o(e,t),!0}return!1},J(()=>e.monitorBufferTime)),c=H({cancel:()=>{}}),l=H({cancel:()=>{}}),u=()=>{let t=e.target,n=Jl(t),r=Yl(t);a.value!==l.value.element&&(l.value.cancel(),l.value.element=a.value,l.value.cancel=co(a.value,o)),(i.value.element!==n||!oo(i.value.point,r)||!Kl(i.value.align,e.align))&&(o(),c.value.element!==n&&(c.value.cancel(),c.value.element=n,c.value.cancel=co(n,o)))};V(()=>{ue(()=>{u()})}),M(()=>{ue(()=>{u()})}),G(()=>e.disabled,e=>{e?s():o()},{immediate:!0,flush:`post`});let d=H(null);return G(()=>e.monitorWindowResize,e=>{e?d.value||=nr(window,`resize`,o):d.value&&=(d.value.remove(),null)},{flush:`post`}),C(()=>{c.value.cancel(),l.value.cancel(),d.value&&d.value.remove(),s()}),n({forceAlign:()=>o(!0)}),()=>{let e=r?.default();return e?$a(e[0],{ref:a},!0,!0):null}}}),Zl=m({compatConfig:{MODE:3},name:`PopupInner`,inheritAttrs:!1,props:Si,emits:[`mouseenter`,`mouseleave`,`mousedown`,`touchstart`,`align`],setup(e,t){let{expose:n,attrs:r,slots:i}=t,a=q(),o=q(),s=q(),[c,l]=Ai(Et(e,`stretch`)),u=()=>{e.stretch&&l(e.getRootDomNode())},d=q(!1),f;G(()=>e.visible,t=>{clearTimeout(f),t?f=setTimeout(()=>{d.value=e.visible}):d.value=!1},{immediate:!0});let[p,m]=ki(d,u),h=q(),g=()=>e.point?e.point:e.getRootDomNode,_=()=>{var e;(e=a.value)==null||e.forceAlign()},v=(t,n)=>{var r;let i=e.getClassNameFromAlign(n),a=s.value;s.value!==i&&(s.value=i),p.value===`align`&&(a===i?m(()=>{var e;(e=h.value)==null||e.call(h)}):Promise.resolve().then(()=>{_()}),(r=e.onAlign)==null||r.call(e,t,n))},b=J(()=>{let t=typeof e.animation==`object`?e.animation:y(e);return[`onAfterEnter`,`onAfterLeave`].forEach(e=>{let n=t[e];t[e]=e=>{m(),p.value=`stable`,n?.(e)}}),t}),x=()=>new Promise(e=>{h.value=e});G([b,p],()=>{!b.value&&p.value===`motion`&&m()},{immediate:!0}),n({forceAlign:_,getElement:()=>o.value.$el||o.value});let S=J(()=>!(e.align?.points&&(p.value===`align`||p.value===`stable`)));return()=>{let{zIndex:t,align:n,prefixCls:l,destroyPopupOnHide:u,onMouseenter:f,onMouseleave:m,onTouchstart:h=()=>{},onMousedown:_}=e,y=p.value,C=[Z(Z({},c.value),{zIndex:t,opacity:y===`motion`||y===`stable`||!d.value?null:0,pointerEvents:!d.value&&y!==`stable`?`none`:null}),r.style],w=fe(i.default?.call(i,{visible:e.visible}));w.length>1&&(w=U(`div`,{class:`${l}-content`},[w]));let T=K(l,r.class,s.value,!e.arrow&&`${l}-arrow-hidden`),E=d.value||!e.visible?be(b.value.name,b.value):{};return U(He,Y(Y({ref:o},E),{},{onBeforeEnter:x}),{default:()=>!u||e.visible?It(U(Xl,{target:g(),key:`popup`,ref:a,monitorWindowResize:!0,disabled:S.value,align:n,onAlign:v},{default:()=>U(`div`,{class:T,onMouseenter:f,onMouseleave:m,onMousedown:Yt(_,[`capture`]),[tr?`onTouchstartPassive`:`onTouchstart`]:Yt(h,[`capture`]),style:C},[w])}),[[yt,d.value]]):null})}}}),Ql=m({compatConfig:{MODE:3},name:`Popup`,inheritAttrs:!1,props:wi,setup(e,t){let{attrs:n,slots:r,expose:i}=t,a=q(!1),o=q(!1),s=q(),c=q();return G([()=>e.visible,()=>e.mobile],()=>{a.value=e.visible,e.visible&&e.mobile&&(o.value=!0)},{immediate:!0,flush:`post`}),i({forceAlign:()=>{var e;(e=s.value)==null||e.forceAlign()},getElement:()=>s.value?.getElement()}),()=>{let t=Z(Z(Z({},e),n),{visible:a.value}),i=o.value?U(Ei,Y(Y({},t),{},{mobile:e.mobile,ref:s}),{default:r.default}):U(Zl,Y(Y({},t),{},{ref:s}),{default:r.default});return U(`div`,{ref:c},[U(Ti,t,null),i])}}});function $l(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function eu(e,t,n){return Z(Z({},e[t]||{}),n)}function tu(e,t,n,r){let{points:i}=n,a=Object.keys(e);for(let n=0;n0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=typeof e==`function`?e(this.$data,this.$props):e;if(this.getDerivedStateFromProps){let e=this.getDerivedStateFromProps(_e(this),Z(Z({},this.$data),n));if(e===null)return;n=Z(Z({},n),e||{})}Z(this.$data,n),this._.isMounted&&this.$forceUpdate(),ue(()=>{t&&t()})},__emit(){let e=[].slice.call(arguments,0),t=e[0];t=`on${t[0].toUpperCase()}${t.substring(1)}`;let n=this.$props[t]||this.$attrs[t];if(e.length&&n)if(Array.isArray(n))for(let t=0,r=n.length;t`u`)return 0;if(e||ru===void 0){let e=document.createElement(`div`);e.style.width=`100%`,e.style.height=`200px`;let t=document.createElement(`div`),n=t.style;n.position=`absolute`,n.top=`0`,n.left=`0`,n.pointerEvents=`none`,n.visibility=`hidden`,n.width=`200px`,n.height=`150px`,n.overflow=`hidden`,t.appendChild(e),document.body.appendChild(t);let r=e.offsetWidth;t.style.overflow=`scroll`;let i=e.offsetWidth;r===i&&(i=t.clientWidth),document.body.removeChild(t),ru=r-i}return ru}function au(e){let t=e.match(/^(.*)px$/),n=Number(t?.[1]);return Number.isNaN(n)?iu():n}function ou(e){if(typeof document>`u`||!e||!(e instanceof Element))return{width:0,height:0};let{width:t,height:n}=getComputedStyle(e,`::-webkit-scrollbar`);return{width:au(t),height:au(n)}}var su=`vc-util-locker-${Date.now()}`,cu=0;function lu(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}function uu(e){let t=J(()=>!!e&&!!e.value);cu+=1;let n=`${su}_${cu}`;E(e=>{if(Bt()){if(t.value){let e=iu();qt(`
+html body {
+ overflow-y: hidden;
+ ${lu()?`width: calc(100% - ${e}px);`:``}
+}`,n)}else tt(n);e(()=>{tt(n)})}},{flush:`post`})}var du=0,fu=Bt(),pu=e=>{if(!fu)return null;if(e){if(typeof e==`string`)return document.querySelectorAll(e)[0];if(typeof e==`function`)return e();if(typeof e==`object`&&e instanceof window.HTMLElement)return e}return document.body},mu=m({compatConfig:{MODE:3},name:`PortalWrapper`,inheritAttrs:!1,props:{wrapperClassName:String,forceRender:{type:Boolean,default:void 0},getContainer:g.any,visible:{type:Boolean,default:void 0},autoLock:Q(),didUpdate:Function},setup(e,t){let{slots:n}=t,r=q(),i=q(),a=q(),o=q(1),s=Bt()&&document.createElement(`div`),c=()=>{var e;r.value===s&&((e=r.value?.parentNode)==null||e.removeChild(r.value)),r.value=null},l=null,u=function(){return arguments.length>0&&arguments[0]!==void 0&&arguments[0]||r.value&&!r.value.parentNode?(l=pu(e.getContainer),l?(l.appendChild(r.value),!0):!1):!0},d=()=>fu?(r.value||(r.value=s,u(!0)),f(),r.value):null,f=()=>{let{wrapperClassName:t}=e;r.value&&t&&t!==r.value.className&&(r.value.className=t)};return M(()=>{f(),u()}),uu(J(()=>e.autoLock&&e.visible&&Bt()&&(r.value===document.body||r.value===s))),V(()=>{let t=!1;G([()=>e.visible,()=>e.getContainer],(n,r)=>{let[i,a]=n,[o,s]=r;fu&&(l=pu(e.getContainer),l===document.body&&(i&&!o?du+=1:t&&--du)),t&&(typeof a==`function`&&typeof s==`function`?a.toString()!==s.toString():a!==s)&&c(),t=!0},{immediate:!0,flush:`post`}),ue(()=>{u()||(a.value=Qn(()=>{o.value+=1}))})}),mt(()=>{let{visible:t}=e;fu&&l===document.body&&(du=t&&du?du-1:du),c(),Qn.cancel(a.value)}),()=>{let{forceRender:t,visible:r}=e,a=null,s={getOpenCount:()=>du,getContainer:d};return o.value&&(t||r||i.value)&&(a=U(Ge,{getContainer:d,ref:i,didUpdate:e.didUpdate},{default:()=>n.default?.call(n,s)})),a}}}),hu=[`onClick`,`onMousedown`,`onTouchstart`,`onMouseenter`,`onMouseleave`,`onFocus`,`onBlur`,`onContextmenu`],gu=m({compatConfig:{MODE:3},name:`Trigger`,mixins:[nu],inheritAttrs:!1,props:xi(),setup(e){let t=J(()=>{let{popupPlacement:t,popupAlign:n,builtinPlacements:r}=e;return t&&r?eu(r,t,n):n}),n=q(null);return{vcTriggerContext:b(`vcTriggerContext`,{}),popupRef:n,setPopupRef:e=>{n.value=e},triggerRef:q(null),align:t,focusTime:null,clickOutsideHandler:null,contextmenuOutsideHandler1:null,contextmenuOutsideHandler2:null,touchOutsideHandler:null,attachId:null,delayTimer:null,hasPopupMouseDown:!1,preClickTime:null,preTouchTime:null,mouseDownTimeout:null,childOriginEvents:{}}},data(){let e=this.$props,t;return t=this.popupVisible===void 0?!!e.defaultPopupVisible:!!e.popupVisible,hu.forEach(e=>{this[`fire${e}`]=t=>{this.fireEvents(e,t)}}),{prevPopupVisible:t,sPopupVisible:t,point:null}},watch:{popupVisible(e){e!==void 0&&(this.prevPopupVisible=this.sPopupVisible,this.sPopupVisible=e)}},created(){ge(`vcTriggerContext`,{onPopupMouseDown:this.onPopupMouseDown,onPopupMouseenter:this.onPopupMouseenter,onPopupMouseleave:this.onPopupMouseleave}),rn(this)},deactivated(){this.setPopupVisible(!1)},mounted(){this.$nextTick(()=>{this.updatedCal()})},updated(){this.$nextTick(()=>{this.updatedCal()})},beforeUnmount(){this.clearDelayTimer(),this.clearOutsideHandler(),clearTimeout(this.mouseDownTimeout),Qn.cancel(this.attachId)},methods:{updatedCal(){let e=this.$props;if(this.$data.sPopupVisible){let t;!this.clickOutsideHandler&&(this.isClickToHide()||this.isContextmenuToShow())&&(t=e.getDocument(this.getRootDomNode()),this.clickOutsideHandler=nr(t,`mousedown`,this.onDocumentClick)),this.touchOutsideHandler||=(t||=e.getDocument(this.getRootDomNode()),nr(t,`touchstart`,this.onDocumentClick,tr?{passive:!1}:!1)),!this.contextmenuOutsideHandler1&&this.isContextmenuToShow()&&(t||=e.getDocument(this.getRootDomNode()),this.contextmenuOutsideHandler1=nr(t,`scroll`,this.onContextmenuClose)),!this.contextmenuOutsideHandler2&&this.isContextmenuToShow()&&(this.contextmenuOutsideHandler2=nr(window,`blur`,this.onContextmenuClose))}else this.clearOutsideHandler()},onMouseenter(e){let{mouseEnterDelay:t}=this.$props;this.fireEvents(`onMouseenter`,e),this.delaySetPopupVisible(!0,t,t?null:e)},onMouseMove(e){this.fireEvents(`onMousemove`,e),this.setPoint(e)},onMouseleave(e){this.fireEvents(`onMouseleave`,e),this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay)},onPopupMouseenter(){let{vcTriggerContext:e={}}=this;e.onPopupMouseenter&&e.onPopupMouseenter(),this.clearDelayTimer()},onPopupMouseleave(e){if(e&&e.relatedTarget&&!e.relatedTarget.setTimeout&&Dt(this.popupRef?.getElement(),e.relatedTarget))return;this.isMouseLeaveToHide()&&this.delaySetPopupVisible(!1,this.$props.mouseLeaveDelay);let{vcTriggerContext:t={}}=this;t.onPopupMouseleave&&t.onPopupMouseleave(e)},onFocus(e){this.fireEvents(`onFocus`,e),this.clearDelayTimer(),this.isFocusToShow()&&(this.focusTime=Date.now(),this.delaySetPopupVisible(!0,this.$props.focusDelay))},onMousedown(e){this.fireEvents(`onMousedown`,e),this.preClickTime=Date.now()},onTouchstart(e){this.fireEvents(`onTouchstart`,e),this.preTouchTime=Date.now()},onBlur(e){Dt(e.target,e.relatedTarget||document.activeElement)||(this.fireEvents(`onBlur`,e),this.clearDelayTimer(),this.isBlurToHide()&&this.delaySetPopupVisible(!1,this.$props.blurDelay))},onContextmenu(e){e.preventDefault(),this.fireEvents(`onContextmenu`,e),this.setPopupVisible(!0,e)},onContextmenuClose(){this.isContextmenuToShow()&&this.close()},onClick(e){if(this.fireEvents(`onClick`,e),this.focusTime){let e;if(this.preClickTime&&this.preTouchTime?e=Math.min(this.preClickTime,this.preTouchTime):this.preClickTime?e=this.preClickTime:this.preTouchTime&&(e=this.preTouchTime),Math.abs(e-this.focusTime)<20)return;this.focusTime=0}this.preClickTime=0,this.preTouchTime=0,this.isClickToShow()&&(this.isClickToHide()||this.isBlurToHide())&&e&&e.preventDefault&&e.preventDefault(),e&&e.domEvent&&e.domEvent.preventDefault();let t=!this.$data.sPopupVisible;(this.isClickToHide()&&!t||t&&this.isClickToShow())&&this.setPopupVisible(!this.$data.sPopupVisible,e)},onPopupMouseDown(){let{vcTriggerContext:e={}}=this;this.hasPopupMouseDown=!0,clearTimeout(this.mouseDownTimeout),this.mouseDownTimeout=setTimeout(()=>{this.hasPopupMouseDown=!1},0),e.onPopupMouseDown&&e.onPopupMouseDown(...arguments)},onDocumentClick(e){if(this.$props.mask&&!this.$props.maskClosable)return;let t=e.target,n=this.getRootDomNode(),r=this.getPopupDomNode();(!Dt(n,t)||this.isContextMenuOnly())&&!Dt(r,t)&&!this.hasPopupMouseDown&&this.delaySetPopupVisible(!1,.1)},getPopupDomNode(){return this.popupRef?.getElement()||null},getRootDomNode(){let{getTriggerDOMNode:e}=this.$props;if(e)return ce(e(this.triggerRef?.$el?.nodeName===`#comment`?null:ce(this.triggerRef)));try{let e=this.triggerRef?.$el?.nodeName===`#comment`?null:ce(this.triggerRef);if(e)return e}catch{}return ce(this)},handleGetPopupClassFromAlign(e){let t=[],{popupPlacement:n,builtinPlacements:r,prefixCls:i,alignPoint:a,getPopupClassNameFromAlign:o}=this.$props;return n&&r&&t.push(tu(r,i,e,a)),o&&t.push(o(e)),t.join(` `)},getPopupAlign(){let{popupPlacement:e,popupAlign:t,builtinPlacements:n}=this.$props;return e&&n?eu(n,e,t):t},getComponent(){let e={};this.isMouseEnterToShow()&&(e.onMouseenter=this.onPopupMouseenter),this.isMouseLeaveToHide()&&(e.onMouseleave=this.onPopupMouseleave),e.onMousedown=this.onPopupMouseDown,e[tr?`onTouchstartPassive`:`onTouchstart`]=this.onPopupMouseDown;let{handleGetPopupClassFromAlign:t,getRootDomNode:n,$attrs:r}=this,{prefixCls:i,destroyPopupOnHide:a,popupClassName:o,popupAnimation:s,popupTransitionName:c,popupStyle:l,mask:u,maskAnimation:d,maskTransitionName:f,zIndex:p,stretch:m,alignPoint:h,mobile:g,arrow:_,forceRender:v}=this.$props,{sPopupVisible:y,point:b}=this.$data;return U(Ql,Z(Z({prefixCls:i,arrow:_,destroyPopupOnHide:a,visible:y,point:h?b:null,align:this.align,animation:s,getClassNameFromAlign:t,stretch:m,getRootDomNode:n,mask:u,zIndex:p,transitionName:c,maskAnimation:d,maskTransitionName:f,class:o,style:l,onAlign:r.onPopupAlign||bi},e),{ref:this.setPopupRef,mobile:g,forceRender:v}),{default:this.$slots.popup||(()=>N(this,`popup`))})},attachParent(e){Qn.cancel(this.attachId);let{getPopupContainer:t,getDocument:n}=this.$props,r=this.getRootDomNode(),i;t?(r||t.length===0)&&(i=t(r)):i=n(this.getRootDomNode()).body,i?i.appendChild(e):this.attachId=Qn(()=>{this.attachParent(e)})},getContainer(){let{$props:e}=this,{getDocument:t}=e,n=t(this.getRootDomNode()).createElement(`div`);return n.style.position=`absolute`,n.style.top=`0`,n.style.left=`0`,n.style.width=`100%`,this.attachParent(n),n},setPopupVisible(e,t){let{alignPoint:n,sPopupVisible:r,onPopupVisibleChange:i}=this;this.clearDelayTimer(),r!==e&&(A(this,`popupVisible`)||this.setState({sPopupVisible:e,prevPopupVisible:r}),i&&i(e)),n&&t&&e&&this.setPoint(t)},setPoint(e){let{alignPoint:t}=this.$props;!t||!e||this.setState({point:{pageX:e.pageX,pageY:e.pageY}})},handlePortalUpdate(){this.prevPopupVisible!==this.sPopupVisible&&this.afterPopupVisibleChange(this.sPopupVisible)},delaySetPopupVisible(e,t,n){let r=t*1e3;if(this.clearDelayTimer(),r){let t=n?{pageX:n.pageX,pageY:n.pageY}:null;this.delayTimer=setTimeout(()=>{this.setPopupVisible(e,t),this.clearDelayTimer()},r)}else this.setPopupVisible(e,n)},clearDelayTimer(){this.delayTimer&&=(clearTimeout(this.delayTimer),null)},clearOutsideHandler(){this.clickOutsideHandler&&=(this.clickOutsideHandler.remove(),null),this.contextmenuOutsideHandler1&&=(this.contextmenuOutsideHandler1.remove(),null),this.contextmenuOutsideHandler2&&=(this.contextmenuOutsideHandler2.remove(),null),this.touchOutsideHandler&&=(this.touchOutsideHandler.remove(),null)},createTwoChains(e){let t=()=>{},n=ne(this);return this.childOriginEvents[e]&&n[e]?this[`fire${e}`]:(t=this.childOriginEvents[e]||n[e]||t,t)},isClickToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`click`)!==-1||t.indexOf(`click`)!==-1},isContextMenuOnly(){let{action:e}=this.$props;return e===`contextmenu`||e.length===1&&e[0]===`contextmenu`},isContextmenuToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`contextmenu`)!==-1||t.indexOf(`contextmenu`)!==-1},isClickToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`click`)!==-1||t.indexOf(`click`)!==-1},isMouseEnterToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`hover`)!==-1||t.indexOf(`mouseenter`)!==-1},isMouseLeaveToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`hover`)!==-1||t.indexOf(`mouseleave`)!==-1},isFocusToShow(){let{action:e,showAction:t}=this.$props;return e.indexOf(`focus`)!==-1||t.indexOf(`focus`)!==-1},isBlurToHide(){let{action:e,hideAction:t}=this.$props;return e.indexOf(`focus`)!==-1||t.indexOf(`blur`)!==-1},forcePopupAlign(){var e;this.$data.sPopupVisible&&((e=this.popupRef)==null||e.forceAlign())},fireEvents(e,t){this.childOriginEvents[e]&&this.childOriginEvents[e](t);let n=this.$props[e]||this.$attrs[e];n&&n(t)},close(){this.setPopupVisible(!1)}},render(){let{$attrs:e}=this,t=ht(f(this)),{alignPoint:n,getPopupContainer:r}=this.$props,i=t[0];this.childOriginEvents=ne(i);let a={key:`trigger`};this.isContextmenuToShow()?a.onContextmenu=this.onContextmenu:a.onContextmenu=this.createTwoChains(`onContextmenu`),this.isClickToHide()||this.isClickToShow()?(a.onClick=this.onClick,a.onMousedown=this.onMousedown,a[tr?`onTouchstartPassive`:`onTouchstart`]=this.onTouchstart):(a.onClick=this.createTwoChains(`onClick`),a.onMousedown=this.createTwoChains(`onMousedown`),a[tr?`onTouchstartPassive`:`onTouchstart`]=this.createTwoChains(`onTouchstart`)),this.isMouseEnterToShow()?(a.onMouseenter=this.onMouseenter,n&&(a.onMousemove=this.onMouseMove)):a.onMouseenter=this.createTwoChains(`onMouseenter`),this.isMouseLeaveToHide()?a.onMouseleave=this.onMouseleave:a.onMouseleave=this.createTwoChains(`onMouseleave`),this.isFocusToShow()||this.isBlurToHide()?(a.onFocus=this.onFocus,a.onBlur=this.onBlur):(a.onFocus=this.createTwoChains(`onFocus`),a.onBlur=e=>{e&&(!e.relatedTarget||!Dt(e.target,e.relatedTarget))&&this.createTwoChains(`onBlur`)(e)});let o=K(i&&i.props&&i.props.class,e.class);return o&&(a.class=o),U(rt,null,[$a(i,Z(Z({},a),{ref:`triggerRef`}),!0,!0),U(mu,{key:`portal`,getContainer:r&&(()=>r(this.getRootDomNode())),didUpdate:this.handlePortalUpdate,visible:this.$data.sPopupVisible},{default:this.getComponent})])}}),_u=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let t=e===!0?0:1;return{bottomLeft:{points:[`tl`,`bl`],offset:[0,4],overflow:{adjustX:t,adjustY:1}},bottomRight:{points:[`tr`,`br`],offset:[0,4],overflow:{adjustX:t,adjustY:1}},topLeft:{points:[`bl`,`tl`],offset:[0,-4],overflow:{adjustX:t,adjustY:1}},topRight:{points:[`br`,`tr`],offset:[0,-4],overflow:{adjustX:t,adjustY:1}}}},yu=m({name:`SelectTrigger`,inheritAttrs:!1,props:{dropdownAlign:Object,visible:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},dropdownClassName:String,dropdownStyle:g.object,placement:String,empty:{type:Boolean,default:void 0},prefixCls:String,popupClassName:String,animation:String,transitionName:String,getPopupContainer:Function,dropdownRender:Function,containerWidth:Number,dropdownMatchSelectWidth:g.oneOfType([Number,Boolean]).def(!0),popupElement:g.any,direction:String,getTriggerDOMNode:Function,onPopupVisibleChange:Function,onPopupMouseEnter:Function,onPopupFocusin:Function,onPopupFocusout:Function},setup(e,t){let{slots:n,attrs:r,expose:i}=t,a=J(()=>{let{dropdownMatchSelectWidth:t}=e;return vu(t)}),o=H();return i({getPopupElement:()=>o.value}),()=>{let t=Z(Z({},e),r),{empty:i=!1}=t,{visible:s,dropdownAlign:c,prefixCls:l,popupElement:u,dropdownClassName:d,dropdownStyle:f,direction:p=`ltr`,placement:m,dropdownMatchSelectWidth:h,containerWidth:g,dropdownRender:_,animation:v,transitionName:y,getPopupContainer:b,getTriggerDOMNode:x,onPopupVisibleChange:S,onPopupMouseEnter:C,onPopupFocusin:w,onPopupFocusout:T}=_u(t,[`empty`]),E=`${l}-dropdown`,D=u;_&&(D=_({menuNode:u,props:e}));let O=v?`${E}-${v}`:y,k=Z({minWidth:`${g}px`},f);return typeof h==`number`?k.width=`${h}px`:h&&(k.width=`${g}px`),U(gu,Y(Y({},e),{},{showAction:S?[`click`]:[],hideAction:S?[`click`]:[],popupPlacement:m||(p===`rtl`?`bottomRight`:`bottomLeft`),builtinPlacements:a.value,prefixCls:E,popupTransitionName:O,popupAlign:c,popupVisible:s,getPopupContainer:b,popupClassName:K(d,{[`${E}-empty`]:i}),popupStyle:k,getTriggerDOMNode:x,onPopupVisibleChange:S}),{default:n.default,popup:()=>U(`div`,{ref:o,onMouseenter:C,onFocusin:w,onFocusout:T},[D])})}}}),$={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){let{keyCode:t}=e;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=$.F1&&t<=$.F12)return!1;switch(t){case $.ALT:case $.CAPS_LOCK:case $.CONTEXT_MENU:case $.CTRL:case $.DOWN:case $.END:case $.ESC:case $.HOME:case $.INSERT:case $.LEFT:case $.MAC_FF_META:case $.META:case $.NUMLOCK:case $.NUM_CENTER:case $.PAGE_DOWN:case $.PAGE_UP:case $.PAUSE:case $.PRINT_SCREEN:case $.RIGHT:case $.SHIFT:case $.UP:case $.WIN_KEY:case $.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=$.ZERO&&e<=$.NINE||e>=$.NUM_ZERO&&e<=$.NUM_MULTIPLY||e>=$.A&&e<=$.Z||window.navigator.userAgent.indexOf(`WebKit`)!==-1&&e===0)return!0;switch(e){case $.SPACE:case $.QUESTION_MARK:case $.NUM_PLUS:case $.NUM_MINUS:case $.NUM_PERIOD:case $.NUM_DIVISION:case $.SEMICOLON:case $.DASH:case $.EQUALS:case $.COMMA:case $.PERIOD:case $.SLASH:case $.APOSTROPHE:case $.SINGLE_QUOTE:case $.OPEN_SQUARE_BRACKET:case $.BACKSLASH:case $.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},bu=(e,t)=>{let{slots:n}=t,{class:r,customizeIcon:i,customizeIconProps:a,onMousedown:o,onClick:s}=e,c;return c=typeof i==`function`?i(a):_(i)?ct(i):i,U(`span`,{class:r,onMousedown:e=>{e.preventDefault(),o&&o(e)},style:{userSelect:`none`,WebkitUserSelect:`none`},unselectable:`on`,onClick:s,"aria-hidden":!0},[c===void 0?U(`span`,{class:r.split(/\s+/).map(e=>`${e}-icon`)},[n.default?.call(n)]):c])};bu.inheritAttrs=!1,bu.displayName=`TransBtn`,bu.props={class:String,customizeIcon:g.any,customizeIconProps:g.any,onMousedown:Function,onClick:Function};var xu=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{r.value&&r.value.focus()},blur:()=>{r.value&&r.value.blur()},input:r,setSelectionRange:(e,t,n)=>{var i;(i=r.value)==null||i.setSelectionRange(e,t,n)},select:()=>{var e;(e=r.value)==null||e.select()},getSelectionStart:()=>r.value?.selectionStart,getSelectionEnd:()=>r.value?.selectionEnd,getScrollTop:()=>r.value?.scrollTop}),()=>{let{tag:t,value:n}=e;return U(t,Y(Y({},xu(e,[`tag`,`value`])),{},{ref:r,value:n}),null)}}});function Cu(){return{width:document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight}}function wu(e){let t=e.getBoundingClientRect(),n=document.documentElement;return{left:t.left+(window.scrollX||n.scrollLeft)-(n.clientLeft||document.body.clientLeft||0),top:t.top+(window.scrollY||n.scrollTop)-(n.clientTop||document.body.clientTop||0)}}function Tu(e){return Array.prototype.slice.apply(e).map(t=>`${t}: ${e.getPropertyValue(t)};`).join(``)}function Eu(e){return Object.keys(e).reduce((t,n)=>(e[n]==null||(t+=`${n}: ${e[n]};`),t),``)}var Du=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.value,s],()=>{s.value||(o.value=e.value)},{immediate:!0});let c=e=>{n(`change`,e)},l=e=>{s.value=!0,e.target.composing=!0,n(`compositionstart`,e)},u=e=>{s.value=!1,e.target.composing=!1,n(`compositionend`,e);let t=document.createEvent(`HTMLEvents`);t.initEvent(`input`,!0,!0),e.target.dispatchEvent(t),c(e)},d=t=>{if(s.value&&e.lazy){o.value=t.target.value;return}n(`input`,t)},f=e=>{n(`blur`,e)},p=e=>{n(`focus`,e)},m=()=>{a.value&&a.value.focus()},h=()=>{a.value&&a.value.blur()},g=e=>{n(`keydown`,e)},_=e=>{n(`keyup`,e)};i({focus:m,blur:h,input:J(()=>a.value?.input),setSelectionRange:(e,t,n)=>{var r;(r=a.value)==null||r.setSelectionRange(e,t,n)},select:()=>{var e;(e=a.value)==null||e.select()},getSelectionStart:()=>a.value?.getSelectionStart(),getSelectionEnd:()=>a.value?.getSelectionEnd(),getScrollTop:()=>a.value?.getScrollTop()});let v=e=>{n(`mousedown`,e)},y=e=>{n(`paste`,e)},b=J(()=>e.style&&typeof e.style!=`string`?Eu(e.style):e.style);return()=>{let{style:t,lazy:n}=e;return U(Su,Y(Y(Y({},Du(e,[`style`,`lazy`])),r),{},{style:b.value,onInput:d,onChange:c,onBlur:f,onFocus:p,ref:a,value:o.value,onCompositionstart:l,onCompositionend:u,onKeyup:_,onKeydown:g,onPaste:y,onMousedown:v}),null)}}}),ku=m({compatConfig:{MODE:3},name:`SelectInput`,inheritAttrs:!1,props:{inputRef:g.any,prefixCls:String,id:String,inputElement:g.VueNode,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,editable:{type:Boolean,default:void 0},activeDescendantId:String,value:String,open:{type:Boolean,default:void 0},tabindex:g.oneOfType([g.number,g.string]),attrs:g.object,onKeydown:{type:Function},onMousedown:{type:Function},onChange:{type:Function},onPaste:{type:Function},onCompositionstart:{type:Function},onCompositionend:{type:Function},onFocus:{type:Function},onBlur:{type:Function}},setup(e){let t=null,n=b(`VCSelectContainerEvent`);return()=>{let{prefixCls:r,id:i,inputElement:a,disabled:o,tabindex:s,autofocus:c,autocomplete:l,editable:u,activeDescendantId:d,value:f,onKeydown:p,onMousedown:m,onChange:h,onPaste:g,onCompositionstart:_,onCompositionend:v,onFocus:y,onBlur:b,open:x,inputRef:S,attrs:C}=e,w=a||U(Ou,null,null),T=w.props||{},{onKeydown:E,onInput:D,onFocus:O,onBlur:k,onMousedown:A,onCompositionstart:j,onCompositionend:M,style:N}=T;return w=$a(w,Z(Z(Z(Z(Z({type:`search`},T),{id:i,ref:S,disabled:o,tabindex:s,lazy:!1,autocomplete:l||`off`,autofocus:c,class:K(`${r}-selection-search-input`,w?.props?.class),role:`combobox`,"aria-expanded":x,"aria-haspopup":`listbox`,"aria-owns":`${i}_list`,"aria-autocomplete":`list`,"aria-controls":`${i}_list`,"aria-activedescendant":d}),C),{value:u?f:``,readonly:!u,unselectable:u?null:`on`,style:Z(Z({},N),{opacity:u?null:0}),onKeydown:e=>{p(e),E&&E(e)},onMousedown:e=>{m(e),A&&A(e)},onInput:e=>{h(e),D&&D(e)},onCompositionstart(e){_(e),j&&j(e)},onCompositionend(e){v(e),M&&M(e)},onPaste:g,onFocus:function(){clearTimeout(t),O&&O(arguments.length<=0?void 0:arguments[0]),y&&y(arguments.length<=0?void 0:arguments[0]),n?.focus(arguments.length<=0?void 0:arguments[0])},onBlur:function(){var e=[...arguments];t=setTimeout(()=>{k&&k(e[0]),b&&b(e[0]),n?.blur(e[0])},100)}}),w.type===`textarea`?{}:{type:`search`}),!0,!0),w}}}),Au=`accept acceptcharset accesskey action allowfullscreen allowtransparency
+alt async autocomplete autofocus autoplay capture cellpadding cellspacing challenge
+charset checked classid classname colspan cols content contenteditable contextmenu
+controls coords crossorigin data datetime default defer dir disabled download draggable
+enctype form formaction formenctype formmethod formnovalidate formtarget frameborder
+headers height hidden high href hreflang htmlfor for httpequiv icon id inputmode integrity
+is keyparams keytype kind label lang list loop low manifest marginheight marginwidth max maxlength media
+mediagroup method min minlength multiple muted name novalidate nonce open
+optimum pattern placeholder poster preload radiogroup readonly rel required
+reversed role rowspan rows sandbox scope scoped scrolling seamless selected
+shape size sizes span spellcheck src srcdoc srclang srcset start step style
+summary tabindex target title type usemap value width wmode wrap onCopy onCut onPaste onCompositionend onCompositionstart onCompositionupdate onKeydown
+ onKeypress onKeyup onFocus onBlur onChange onInput onSubmit onClick onContextmenu onDoubleclick onDblclick
+ onDrag onDragend onDragenter onDragexit onDragleave onDragover onDragstart onDrop onMousedown
+ onMouseenter onMouseleave onMousemove onMouseout onMouseover onMouseup onSelect onTouchcancel
+ onTouchend onTouchmove onTouchstart onTouchstartPassive onTouchmovePassive onScroll onWheel onAbort onCanplay onCanplaythrough
+ onDurationchange onEmptied onEncrypted onEnded onError onLoadeddata onLoadedmetadata
+ onLoadstart onPause onPlay onPlaying onProgress onRatechange onSeeked onSeeking onStalled onSuspend onTimeupdate onVolumechange onWaiting onLoad onError`.split(/[\s\n]+/),ju=`aria-`,Mu=`data-`;function Nu(e,t){return e.indexOf(t)===0}function Pu(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n;n=t===!1?{aria:!0,data:!0,attr:!0}:t===!0?{aria:!0}:Z({},t);let r={};return Object.keys(e).forEach(t=>{(n.aria&&(t===`role`||Nu(t,ju))||n.data&&Nu(t,Mu)||n.attr&&(Au.includes(t)||Au.includes(t.toLowerCase())))&&(r[t]=e[t])}),r}var Fu=Symbol(`OverflowContextProviderKey`),Iu=m({compatConfig:{MODE:3},name:`OverflowContextProvider`,inheritAttrs:!1,props:{value:{type:Object}},setup(e,t){let{slots:n}=t;return ge(Fu,J(()=>e.value)),()=>n.default?.call(n)}}),Lu=()=>b(Fu,J(()=>null)),Ru=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.responsive&&!e.display),a=H();r({itemNodeRef:a});function o(t){e.registerSize(e.itemKey,t)}return C(()=>{o(null)}),()=>{let{prefixCls:t,invalidate:r,item:s,renderItem:c,responsive:l,registerSize:u,itemKey:d,display:f,order:p,component:m=`div`}=e,h=Ru(e,[`prefixCls`,`invalidate`,`item`,`renderItem`,`responsive`,`registerSize`,`itemKey`,`display`,`order`,`component`]),g=n.default?.call(n),_=c&&s!==zu?c(s):g,v;r||(v={opacity:+!i.value,height:i.value?0:zu,overflowY:i.value?`hidden`:zu,order:l?p:zu,pointerEvents:i.value?`none`:zu,position:i.value?`absolute`:zu});let y={};return i.value&&(y[`aria-hidden`]=!0),U(Kn,{disabled:!l,onResize:e=>{let{offsetWidth:t}=e;o(t)}},{default:()=>U(m,Y(Y(Y({class:K(!r&&t),style:v},y),h),{},{ref:a}),{default:()=>[_]})})}}}),Vu=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{if(!i.value){let{component:t=`div`}=e;return U(t,Y(Y({},Vu(e,[`component`])),r),{default:()=>[n.default?.call(n)]})}let t=i.value,{className:a}=t,o=Vu(t,[`className`]),{class:s}=r,c=Vu(r,[`class`]);return U(Iu,{value:null},{default:()=>[U(Bu,Y(Y(Y({class:K(a,s)},o),c),e),n)]})}}}),Uu=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.ssr===`full`),o=q(null),s=J(()=>o.value||0),c=q(new Map),l=q(0),u=q(0),d=q(0),f=q(null),p=q(null),m=J(()=>p.value===null&&a.value?2**53-1:p.value||0),h=q(!1),g=J(()=>`${e.prefixCls}-item`),_=J(()=>Math.max(l.value,u.value)),v=J(()=>!!(e.data.length&&e.maxCount===Wu)),y=J(()=>e.maxCount===Gu),b=J(()=>v.value||typeof e.maxCount==`number`&&e.data.length>e.maxCount),x=J(()=>{let t=e.data;return v.value?t=o.value===null&&a.value?e.data:e.data.slice(0,Math.min(e.data.length,s.value/e.itemWidth)):typeof e.maxCount==`number`&&(t=e.data.slice(0,e.maxCount)),t}),S=J(()=>v.value?e.data.slice(m.value+1):e.data.slice(x.value.length)),C=(t,n)=>typeof e.itemKey==`function`?e.itemKey(t):(e.itemKey&&t?.[e.itemKey])??n,w=J(()=>e.renderItem||(e=>e)),T=(t,n)=>{p.value=t,n||(h.value=t{o.value=t.clientWidth},D=(e,t)=>{let n=new Map(c.value);t===null?n.delete(e):n.set(e,t),c.value=n},O=(e,t)=>{l.value=u.value,u.value=t},k=(e,t)=>{d.value=t},A=e=>c.value.get(C(x.value[e],e));return G([s,c,u,d,()=>e.itemKey,x],()=>{if(s.value&&_.value&&x.value){let t=d.value,n=x.value.length,r=n-1;if(!n){T(0),f.value=null;return}for(let e=0;es.value){T(e-1),f.value=t-n-d.value+u.value;break}}e.suffix&&A(0)+d.value>s.value&&(f.value=null)}}),()=>{let t=h.value&&!!S.value.length,{itemComponent:r,renderRawItem:a,renderRawRest:o,renderRest:s,prefixCls:c=`rc-overflow`,suffix:l,component:u=`div`,id:d,onMousedown:p}=e,{class:_,style:T}=n,A=Uu(n,[`class`,`style`]),j={};f.value!==null&&v.value&&(j={position:`absolute`,left:`${f.value}px`,top:0});let M={prefixCls:g.value,responsive:v.value,component:r,invalidate:y.value},N=a?(e,t)=>{let n=C(e,t);return U(Iu,{key:n,value:Z(Z({},M),{order:t,item:e,itemKey:n,registerSize:D,display:t<=m.value})},{default:()=>[a(e,t)]})}:(e,t)=>{let n=C(e,t);return U(Bu,Y(Y({},M),{},{order:t,key:n,item:e,renderItem:w.value,itemKey:n,registerSize:D,display:t<=m.value}),null)},P=()=>null,F={order:t?m.value:2**53-1,className:`${g.value} ${g.value}-rest`,registerSize:O,display:t};if(o)o&&(P=()=>U(Iu,{value:Z(Z({},M),F)},{default:()=>[o(S.value)]}));else{let e=s||Ku;P=()=>U(Bu,Y(Y({},M),F),{default:()=>typeof e==`function`?e(S.value):e})}return U(Kn,{disabled:!v.value,onResize:E},{default:()=>U(u,Y({id:d,class:K(!y.value&&c,_),style:T,onMousedown:p,role:e.role},A),{default:()=>[x.value.map(N),b.value?P():null,l&&U(Bu,Y(Y({},M),{},{order:m.value,class:`${g.value}-suffix`,registerSize:k,display:!0,style:j}),{default:()=>l}),i.default?.call(i)]})})}}});qu.Item=Hu,qu.RESPONSIVE=Wu,qu.INVALIDATE=Gu;var Ju=qu,Yu=Symbol(`TreeSelectLegacyContextPropsKey`);function Xu(e){return ge(Yu,e)}function Zu(){return b(Yu,{})}var Qu={id:String,prefixCls:String,values:g.array,open:{type:Boolean,default:void 0},searchValue:String,inputRef:g.any,placeholder:g.any,disabled:{type:Boolean,default:void 0},mode:String,showSearch:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,activeDescendantId:String,tabindex:g.oneOfType([g.number,g.string]),compositionStatus:Boolean,removeIcon:g.any,choiceTransitionName:String,maxTagCount:g.oneOfType([g.number,g.string]),maxTagTextLength:Number,maxTagPlaceholder:g.any.def(()=>e=>`+ ${e.length} ...`),tagRender:Function,onToggleOpen:{type:Function},onRemove:Function,onInputChange:Function,onInputPaste:Function,onInputKeyDown:Function,onInputMouseDown:Function,onInputCompositionStart:Function,onInputCompositionEnd:Function},$u=e=>{e.preventDefault(),e.stopPropagation()},ed=m({name:`MultipleSelectSelector`,inheritAttrs:!1,props:Qu,setup(e){let t=q(),n=q(0),r=q(!1),i=Zu(),a=J(()=>`${e.prefixCls}-selection`),o=J(()=>e.open||e.mode===`tags`?e.searchValue:``),s=J(()=>e.mode===`tags`||e.showSearch&&(e.open||r.value)),c=H(``);E(()=>{c.value=o.value}),V(()=>{G(c,()=>{n.value=t.value.scrollWidth},{flush:`post`,immediate:!0})});function l(t,n,r,i,o){return U(`span`,{class:K(`${a.value}-item`,{[`${a.value}-item-disabled`]:r}),title:typeof t==`string`||typeof t==`number`?t.toString():void 0},[U(`span`,{class:`${a.value}-item-content`},[n]),i&&U(bu,{class:`${a.value}-item-remove`,onMousedown:$u,onClick:o,customizeIcon:e.removeIcon},{default:()=>[an(`×`)]})])}function u(t,n,r,a,o,s){let c=t=>{$u(t),e.onToggleOpen(!open)},l=s;return i.keyEntities&&(l=i.keyEntities[t]?.node||{}),U(`span`,{key:t,onMousedown:c},[e.tagRender({label:n,value:t,disabled:r,closable:a,onClose:o,option:l})])}function d(t){let{disabled:n,label:r,value:i,option:a}=t,o=!e.disabled&&!n,s=r;if(typeof e.maxTagTextLength==`number`&&(typeof r==`string`||typeof r==`number`)){let t=String(s);t.length>e.maxTagTextLength&&(s=`${t.slice(0,e.maxTagTextLength)}...`)}let c=n=>{var r;n&&n.stopPropagation(),(r=e.onRemove)==null||r.call(e,t)};return typeof e.tagRender==`function`?u(i,s,n,o,c,a):l(r,s,n,o,c)}function f(t){let{maxTagPlaceholder:n=e=>`+ ${e.length} ...`}=e,r=typeof n==`function`?n(t):n;return l(r,r,!1)}let p=t=>{let n=t.target.composing;c.value=t.target.value,n||e.onInputChange(t)};return()=>{let{id:i,prefixCls:l,values:u,open:m,inputRef:h,placeholder:g,disabled:_,autofocus:v,autocomplete:y,activeDescendantId:b,tabindex:x,compositionStatus:S,onInputPaste:C,onInputKeyDown:w,onInputMouseDown:T,onInputCompositionStart:E,onInputCompositionEnd:D}=e,O=U(`div`,{class:`${a.value}-search`,style:{width:n.value+`px`},key:`input`},[U(ku,{inputRef:h,open:m,prefixCls:l,id:i,inputElement:null,disabled:_,autofocus:v,autocomplete:y,editable:s.value,activeDescendantId:b,value:c.value,onKeydown:w,onMousedown:T,onChange:p,onPaste:C,onCompositionstart:E,onCompositionend:D,tabindex:x,attrs:Pu(e,!0),onFocus:()=>r.value=!0,onBlur:()=>r.value=!1},null),U(`span`,{ref:t,class:`${a.value}-search-mirror`,"aria-hidden":!0},[c.value,an(`\xA0`)])]);return U(rt,null,[U(Ju,{prefixCls:`${a.value}-overflow`,data:u,renderItem:d,renderRest:f,suffix:O,itemKey:`key`,maxCount:e.maxTagCount,key:`overflow`},null),!u.length&&!o.value&&!S&&U(`span`,{class:`${a.value}-placeholder`},[g])])}}}),td={inputElement:g.any,id:String,prefixCls:String,values:g.array,open:{type:Boolean,default:void 0},searchValue:String,inputRef:g.any,placeholder:g.any,compositionStatus:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},mode:String,showSearch:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0},autocomplete:String,activeDescendantId:String,tabindex:g.oneOfType([g.number,g.string]),activeValue:String,backfill:{type:Boolean,default:void 0},optionLabelRender:Function,onInputChange:Function,onInputPaste:Function,onInputKeyDown:Function,onInputMouseDown:Function,onInputCompositionStart:Function,onInputCompositionEnd:Function},nd=m({name:`SingleSelector`,setup(e){let t=q(!1),n=J(()=>e.mode===`combobox`),r=J(()=>n.value||e.showSearch),i=J(()=>{let r=e.searchValue||``;return n.value&&e.activeValue&&!t.value&&(r=e.activeValue),r}),a=Zu();G([n,()=>e.activeValue],()=>{n.value&&(t.value=!1)},{immediate:!0});let o=J(()=>e.mode!==`combobox`&&!e.open&&!e.showSearch?!1:!!i.value||e.compositionStatus),s=J(()=>{let t=e.values[0];return t&&(typeof t.label==`string`||typeof t.label==`number`)?t.label.toString():void 0}),c=()=>{if(e.values[0])return null;let t=o.value?{visibility:`hidden`}:void 0;return U(`span`,{class:`${e.prefixCls}-selection-placeholder`,style:t},[e.placeholder])},l=n=>{n.target.composing||(t.value=!0,e.onInputChange(n))};return()=>{let{inputElement:t,prefixCls:u,id:d,values:f,inputRef:p,disabled:m,autofocus:h,autocomplete:g,activeDescendantId:_,open:v,tabindex:y,optionLabelRender:b,onInputKeyDown:x,onInputMouseDown:S,onInputPaste:C,onInputCompositionStart:w,onInputCompositionEnd:T}=e,E=f[0],D=null;if(E&&a.customSlots){let e=E.key??E.value,t=a.keyEntities[e]?.node||{};D=a.customSlots[t.slots?.title]||a.customSlots.title||E.label,typeof D==`function`&&(D=D(t))}else D=b&&E?b(E.option):E?.label;return U(rt,null,[U(`span`,{class:`${u}-selection-search`},[U(ku,{inputRef:p,prefixCls:u,id:d,open:v,inputElement:t,disabled:m,autofocus:h,autocomplete:g,editable:r.value,activeDescendantId:_,value:i.value,onKeydown:x,onMousedown:S,onChange:l,onPaste:C,onCompositionstart:w,onCompositionend:T,tabindex:y,attrs:Pu(e,!0)},null)]),!n.value&&E&&!o.value&&U(`span`,{class:`${u}-selection-item`,title:s.value},[U(rt,{key:E.key??E.value},[D])]),c()])}}});nd.props=td,nd.inheritAttrs=!1;function rd(e){return![$.ESC,$.SHIFT,$.BACKSPACE,$.TAB,$.WIN_KEY,$.ALT,$.META,$.WIN_KEY_RIGHT,$.CTRL,$.SEMICOLON,$.EQUALS,$.CAPS_LOCK,$.CONTEXT_MENU,$.F1,$.F2,$.F3,$.F4,$.F5,$.F6,$.F7,$.F8,$.F9,$.F10,$.F11,$.F12].includes(e)}function id(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,t=null,n;mt(()=>{clearTimeout(n)});function r(r){(r||t===null)&&(t=r),clearTimeout(n),n=setTimeout(()=>{t=null},e)}return[()=>t,r]}function ad(){let e=t=>{e.current=t};return e}var od=m({name:`Selector`,inheritAttrs:!1,props:{id:String,prefixCls:String,showSearch:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},values:g.array,multiple:{type:Boolean,default:void 0},mode:String,searchValue:String,activeValue:String,inputElement:g.any,autofocus:{type:Boolean,default:void 0},activeDescendantId:String,tabindex:g.oneOfType([g.number,g.string]),disabled:{type:Boolean,default:void 0},placeholder:g.any,removeIcon:g.any,maxTagCount:g.oneOfType([g.number,g.string]),maxTagTextLength:Number,maxTagPlaceholder:g.any,tagRender:Function,optionLabelRender:Function,tokenWithEnter:{type:Boolean,default:void 0},choiceTransitionName:String,onToggleOpen:{type:Function},onSearch:Function,onSearchSubmit:Function,onRemove:Function,onInputKeyDown:{type:Function},domRef:Function},setup(e,t){let{expose:n}=t,r=ad(),i=H(!1),[a,o]=id(0),s=t=>{let{which:n}=t;(n===$.UP||n===$.DOWN)&&t.preventDefault(),e.onInputKeyDown&&e.onInputKeyDown(t),n===$.ENTER&&e.mode===`tags`&&!i.value&&!e.open&&e.onSearchSubmit(t.target.value),rd(n)&&e.onToggleOpen(!0)},c=()=>{o(!0)},l=null,u=t=>{e.onSearch(t,!0,i.value)!==!1&&e.onToggleOpen(!0)},d=()=>{i.value=!0},f=t=>{i.value=!1,e.mode!==`combobox`&&u(t.target.value)},p=t=>{let{target:{value:n}}=t;if(e.tokenWithEnter&&l&&/[\r\n]/.test(l)){let e=l.replace(/[\r\n]+$/,``).replace(/\r\n/g,` `).replace(/[\r\n]/g,` `);n=n.replace(e,l)}l=null,u(n)},m=e=>{let{clipboardData:t}=e;l=t.getData(`text`)},h=e=>{let{target:t}=e;t!==r.current&&(document.body.style.msTouchAction===void 0?r.current.focus():setTimeout(()=>{r.current.focus()}))},g=t=>{let n=a();t.target!==r.current&&!n&&t.preventDefault(),(e.mode!==`combobox`&&(!e.showSearch||!n)||!e.open)&&(e.open&&e.onSearch(``,!0,!1),e.onToggleOpen())};return n({focus:()=>{r.current.focus()},blur:()=>{r.current.blur()}}),()=>{let{prefixCls:t,domRef:n,mode:a}=e,o={inputRef:r,onInputKeyDown:s,onInputMouseDown:c,onInputChange:p,onInputPaste:m,compositionStatus:i.value,onInputCompositionStart:d,onInputCompositionEnd:f},l=U(a===`multiple`||a===`tags`?ed:nd,Y(Y({},e),o),null);return U(`div`,{ref:n,class:`${t}-selector`,onClick:h,onMousedown:g},[l])}}});function sd(e,t,n){function r(r){let i=r.target;i.shadowRoot&&r.composed&&(i=r.composedPath()[0]||i);let a=[e[0]?.value,(e[1]?.value)?.getPopupElement()];t.value&&a.every(e=>e&&!e.contains(i)&&e!==i)&&n(!1)}V(()=>{window.addEventListener(`mousedown`,r)}),mt(()=>{window.removeEventListener(`mousedown`,r)})}function cd(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10,t=q(!1),n,r=()=>{clearTimeout(n)};return V(()=>{r()}),[t,(i,a)=>{r(),n=setTimeout(()=>{t.value=i,a&&a()},e)},r]}var ld=Symbol(`BaseSelectContextKey`);function ud(e){return ge(ld,e)}function dd(){return b(ld,{})}var fd=(()=>{if(typeof navigator>`u`||typeof window>`u`)return!1;let e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e?.substring(0,4))});function pd(e){return Pe(e)?Le(new Proxy({},{get(t,n,r){return Reflect.get(e.value,n,r)},set(t,n,r){return e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}})):Le(e)}var md=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i({prefixCls:String,id:String,omitDomProps:Array,displayValues:Array,onDisplayValuesChange:Function,activeValue:String,activeDescendantId:String,onActiveValueChange:Function,searchValue:String,onSearch:Function,onSearchSplit:Function,maxLength:Number,OptionList:g.any,emptyOptions:Boolean}),_d=()=>({showSearch:{type:Boolean,default:void 0},tagRender:{type:Function},optionLabelRender:{type:Function},direction:{type:String},tabindex:Number,autofocus:Boolean,notFoundContent:g.any,placeholder:g.any,onClear:Function,choiceTransitionName:String,mode:String,disabled:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:void 0},onDropdownVisibleChange:{type:Function},getInputElement:{type:Function},getRawInputElement:{type:Function},maxTagTextLength:Number,maxTagCount:{type:[String,Number]},maxTagPlaceholder:g.any,tokenSeparators:{type:Array},allowClear:{type:Boolean,default:void 0},showArrow:{type:Boolean,default:void 0},inputIcon:g.any,clearIcon:g.any,removeIcon:g.any,animation:String,transitionName:String,dropdownStyle:{type:Object},dropdownClassName:String,dropdownMatchSelectWidth:{type:[Boolean,Number],default:void 0},dropdownRender:{type:Function},dropdownAlign:Object,placement:{type:String},getPopupContainer:{type:Function},showAction:{type:Array},onBlur:{type:Function},onFocus:{type:Function},onKeyup:Function,onKeydown:Function,onMousedown:Function,onPopupScroll:Function,onInputKeyDown:Function,onMouseenter:Function,onMouseleave:Function,onClick:Function}),vd=()=>Z(Z({},gd()),_d());function yd(e){return e===`tags`||e===`multiple`}var bd=m({compatConfig:{MODE:3},name:`BaseSelect`,inheritAttrs:!1,props:Gn(vd(),{showAction:[],notFoundContent:`Not Found`}),setup(e,t){let{attrs:n,expose:r,slots:i}=t,a=J(()=>yd(e.mode)),o=J(()=>e.showSearch===void 0?a.value||e.mode===`combobox`:e.showSearch),s=q(!1);V(()=>{s.value=fd()});let c=Zu(),l=q(null),u=ad(),d=q(null),f=q(null),p=q(null),m=H(!1),[h,g,_]=cd();r({focus:()=>{var e;(e=f.value)==null||e.focus()},blur:()=>{var e;(e=f.value)==null||e.blur()},scrollTo:e=>p.value?.scrollTo(e)});let v=J(()=>{if(e.mode!==`combobox`)return e.searchValue;let t=e.displayValues[0]?.value;return typeof t==`string`||typeof t==`number`?String(t):``}),y=e.open===void 0?e.defaultOpen:e.open,b=q(y),x=q(y),S=t=>{b.value=e.open===void 0?t:e.open,x.value=b.value};G(()=>e.open,()=>{S(e.open)});let C=J(()=>!e.notFoundContent&&e.emptyOptions);E(()=>{x.value=b.value,(e.disabled||C.value&&x.value&&e.mode===`combobox`)&&(x.value=!1)});let w=J(()=>!C.value&&x.value),T=t=>{let n=t===void 0?!x.value:t;x.value!==n&&!e.disabled&&(S(n),e.onDropdownVisibleChange&&e.onDropdownVisibleChange(n),!n&&L.value&&(L.value=!1,g(!1,()=>{F.value=!1,m.value=!1})))},D=J(()=>(e.tokenSeparators||[]).some(e=>[`
+`,`\r
+`].includes(e))),O=(t,n,r)=>{var i,a;let o=!0,s=t;(i=e.onActiveValueChange)==null||i.call(e,null);let c=r?null:_i(t,e.tokenSeparators);return e.mode!==`combobox`&&c&&(s=``,(a=e.onSearchSplit)==null||a.call(e,c),T(!1),o=!1),e.onSearch&&v.value!==s&&e.onSearch(s,{source:n?`typing`:`effect`}),o},k=t=>{var n;!t||!t.trim()||(n=e.onSearch)==null||n.call(e,t,{source:`submit`})};G(x,()=>{!x.value&&!a.value&&e.mode!==`combobox`&&O(``,!1,!1)},{immediate:!0,flush:`post`}),G(()=>e.disabled,()=>{b.value&&e.disabled&&S(!1),e.disabled&&!m.value&&g(!1)},{immediate:!0});let[A,j]=id(),M=function(t){var n;let r=A(),{which:i}=t;if(i===$.ENTER&&(e.mode!==`combobox`&&t.preventDefault(),x.value||T(!0)),j(!!v.value),i===$.BACKSPACE&&!r&&a.value&&!v.value&&e.displayValues.length){let t=[...e.displayValues],n=null;for(let e=t.length-1;e>=0;--e){let r=t[e];if(!r.disabled){t.splice(e,1),n=r;break}}n&&e.onDisplayValuesChange(t,{type:`remove`,values:[n]})}var o=[...arguments].slice(1);x.value&&p.value&&p.value.onKeydown(t,...o),(n=e.onKeydown)==null||n.call(e,t,...o)},N=function(t){var n=[...arguments].slice(1);x.value&&p.value&&p.value.onKeyup(t,...n),e.onKeyup&&e.onKeyup(t,...n)},P=t=>{let n=e.displayValues.filter(e=>e!==t);e.onDisplayValuesChange(n,{type:`remove`,values:[t]})},F=q(!1),I=function(){g(!0),e.disabled||(e.onFocus&&!F.value&&e.onFocus(...arguments),e.showAction&&e.showAction.includes(`focus`)&&T(!0)),F.value=!0},L=H(!1),R=function(){if(L.value||(m.value=!0,g(!1,()=>{F.value=!1,m.value=!1,T(!1)}),e.disabled))return;let t=v.value;t&&(e.mode===`tags`?e.onSearch(t,{source:`submit`}):e.mode===`multiple`&&e.onSearch(``,{source:`blur`})),e.onBlur&&e.onBlur(...arguments)},ee=()=>{L.value=!0},te=()=>{L.value=!1};ge(`VCSelectContainerEvent`,{focus:I,blur:R});let z=[];V(()=>{z.forEach(e=>clearTimeout(e)),z.splice(0,z.length)}),mt(()=>{z.forEach(e=>clearTimeout(e)),z.splice(0,z.length)});let ne=function(t){var n;let{target:r}=t,i=d.value?.getPopupElement();if(i&&i.contains(r)){let e=setTimeout(()=>{var t;let n=z.indexOf(e);n!==-1&&z.splice(n,1),_(),!s.value&&!i.contains(document.activeElement)&&((t=f.value)==null||t.focus())});z.push(e)}var a=[...arguments].slice(1);(n=e.onMousedown)==null||n.call(e,t,...a)},re=q(null),ie=()=>{};return V(()=>{G(w,()=>{if(w.value){let e=Math.ceil(l.value?.offsetWidth);re.value!==e&&!Number.isNaN(e)&&(re.value=e)}},{immediate:!0,flush:`post`})}),sd([l,d],w,T),ud(pd(Z(Z({},zt(e)),{open:x,triggerOpen:w,showSearch:o,multiple:a,toggleOpen:T}))),()=>{let t=Z(Z({},e),n),{prefixCls:r,id:s,open:m,defaultOpen:g,mode:_,showSearch:y,searchValue:b,onSearch:S,allowClear:C,clearIcon:E,showArrow:A,inputIcon:j,disabled:F,loading:I,getInputElement:L,getPopupContainer:R,placement:z,animation:ae,transitionName:oe,dropdownStyle:se,dropdownClassName:ce,dropdownMatchSelectWidth:le,dropdownRender:ue,dropdownAlign:de,showAction:B,direction:V,tokenSeparators:fe,tagRender:pe,optionLabelRender:H,onPopupScroll:me,onDropdownVisibleChange:he,onFocus:ge,onBlur:_e,onKeyup:ve,onKeydown:ye,onMousedown:be,onClear:xe,omitDomProps:W,getRawInputElement:Se,displayValues:Ce,onDisplayValuesChange:we,emptyOptions:Te,activeDescendantId:Ee,activeValue:De,OptionList:Oe}=t,G=md(t,`prefixCls.id.open.defaultOpen.mode.showSearch.searchValue.onSearch.allowClear.clearIcon.showArrow.inputIcon.disabled.loading.getInputElement.getPopupContainer.placement.animation.transitionName.dropdownStyle.dropdownClassName.dropdownMatchSelectWidth.dropdownRender.dropdownAlign.showAction.direction.tokenSeparators.tagRender.optionLabelRender.onPopupScroll.onDropdownVisibleChange.onFocus.onBlur.onKeyup.onKeydown.onMousedown.onClear.omitDomProps.getRawInputElement.displayValues.onDisplayValuesChange.emptyOptions.activeDescendantId.activeValue.OptionList`.split(`.`)),ke=_===`combobox`&&L&&L()||null,Ae=typeof Se==`function`&&Se(),je=Z({},G),Me;Ae&&(Me=e=>{T(e)}),hd.forEach(e=>{delete je[e]}),W?.forEach(e=>{delete je[e]});let Ne=A===void 0?I||!a.value&&_!==`combobox`:A,Pe;Ne&&(Pe=U(bu,{class:K(`${r}-arrow`,{[`${r}-arrow-loading`]:I}),customizeIcon:j,customizeIconProps:{loading:I,searchValue:v.value,open:x.value,focused:h.value,showSearch:o.value}},null));let Fe;!F&&C&&(Ce.length||v.value)&&(Fe=U(bu,{class:`${r}-clear`,onMousedown:()=>{xe?.(),we([],{type:`clear`,values:Ce}),O(``,!1,!1)},customizeIcon:E},{default:()=>[an(`×`)]}));let Ie=U(Oe,{ref:p},Z(Z({},c.customSlots),{option:i.option})),Le=K(r,n.class,{[`${r}-focused`]:h.value,[`${r}-multiple`]:a.value,[`${r}-single`]:!a.value,[`${r}-allow-clear`]:C,[`${r}-show-arrow`]:Ne,[`${r}-disabled`]:F,[`${r}-loading`]:I,[`${r}-open`]:x.value,[`${r}-customize-input`]:ke,[`${r}-show-search`]:o.value}),Re=U(yu,{ref:d,disabled:F,prefixCls:r,visible:w.value,popupElement:Ie,containerWidth:re.value,animation:ae,transitionName:oe,dropdownStyle:se,dropdownClassName:ce,direction:V,dropdownMatchSelectWidth:le,dropdownRender:ue,dropdownAlign:de,placement:z,getPopupContainer:R,empty:Te,getTriggerDOMNode:()=>u.current,onPopupVisibleChange:Me,onPopupMouseEnter:ie,onPopupFocusin:ee,onPopupFocusout:te},{default:()=>Ae?Lt(Ae)&&$a(Ae,{ref:u},!1,!0):U(od,Y(Y({},e),{},{domRef:u,prefixCls:r,inputElement:ke,ref:f,id:s,showSearch:o.value,mode:_,activeDescendantId:Ee,tagRender:pe,optionLabelRender:H,values:Ce,open:x.value,onToggleOpen:T,activeValue:De,searchValue:v.value,onSearch:O,onSearchSubmit:k,onRemove:P,tokenWithEnter:D.value}),null)}),ze;return ze=Ae?Re:U(`div`,Y(Y({},je),{},{class:Le,ref:l,onMousedown:ne,onKeydown:M,onKeyup:N}),[h.value&&!x.value&&U(`span`,{style:{width:0,height:0,position:`absolute`,overflow:`hidden`,opacity:0},"aria-live":`polite`},[`${Ce.map(e=>{let{label:t,value:n}=e;return[`number`,`string`].includes(typeof t)?t:n}).join(`, `)}`]),Re,Pe,Fe]),ze}}}),xd=(e,t)=>{let{height:n,offset:r,prefixCls:i,onInnerResize:a}=e,{slots:o}=t,s={},c={display:`flex`,flexDirection:`column`};return r!==void 0&&(s={height:`${n}px`,position:`relative`,overflow:`hidden`},c=Z(Z({},c),{transform:`translateY(${r}px)`,position:`absolute`,left:0,right:0,top:0})),U(`div`,{style:s},[U(Kn,{onResize:e=>{let{offsetHeight:t}=e;t&&a&&a()}},{default:()=>[U(`div`,{style:c,class:K({[`${i}-holder-inner`]:i})},[o.default?.call(o)])]})])};xd.displayName=`Filter`,xd.inheritAttrs=!1,xd.props={prefixCls:String,height:Number,offset:Number,onInnerResize:Function};var Sd=(e,t)=>{let{setRef:n}=e,{slots:r}=t,i=fe(r.default?.call(r));return i&&i.length?ct(i[0],{ref:n}):i};Sd.props={setRef:{type:Function,default:()=>{}}};var Cd=20;function wd(e){return`touches`in e?e.touches[0].pageY:e.pageY}var Td=m({compatConfig:{MODE:3},name:`ScrollBar`,inheritAttrs:!1,props:{prefixCls:String,scrollTop:Number,scrollHeight:Number,height:Number,count:Number,onScroll:{type:Function},onStartMove:{type:Function},onStopMove:{type:Function}},setup(){return{moveRaf:null,scrollbarRef:ad(),thumbRef:ad(),visibleTimeout:null,state:Le({dragging:!1,pageY:null,startTop:null,visible:!1})}},watch:{scrollTop:{handler(){this.delayHidden()},flush:`post`}},mounted(){var e,t;(e=this.scrollbarRef.current)==null||e.addEventListener(`touchstart`,this.onScrollbarTouchStart,tr?{passive:!1}:!1),(t=this.thumbRef.current)==null||t.addEventListener(`touchstart`,this.onMouseDown,tr?{passive:!1}:!1)},beforeUnmount(){this.removeEvents(),clearTimeout(this.visibleTimeout)},methods:{delayHidden(){clearTimeout(this.visibleTimeout),this.state.visible=!0,this.visibleTimeout=setTimeout(()=>{this.state.visible=!1},2e3)},onScrollbarTouchStart(e){e.preventDefault()},onContainerMouseDown(e){e.stopPropagation(),e.preventDefault()},patchEvents(){window.addEventListener(`mousemove`,this.onMouseMove),window.addEventListener(`mouseup`,this.onMouseUp),this.thumbRef.current.addEventListener(`touchmove`,this.onMouseMove,tr?{passive:!1}:!1),this.thumbRef.current.addEventListener(`touchend`,this.onMouseUp)},removeEvents(){window.removeEventListener(`mousemove`,this.onMouseMove),window.removeEventListener(`mouseup`,this.onMouseUp),this.scrollbarRef.current.removeEventListener(`touchstart`,this.onScrollbarTouchStart,tr?{passive:!1}:!1),this.thumbRef.current&&(this.thumbRef.current.removeEventListener(`touchstart`,this.onMouseDown,tr?{passive:!1}:!1),this.thumbRef.current.removeEventListener(`touchmove`,this.onMouseMove,tr?{passive:!1}:!1),this.thumbRef.current.removeEventListener(`touchend`,this.onMouseUp)),Qn.cancel(this.moveRaf)},onMouseDown(e){let{onStartMove:t}=this.$props;Z(this.state,{dragging:!0,pageY:wd(e),startTop:this.getTop()}),t(),this.patchEvents(),e.stopPropagation(),e.preventDefault()},onMouseMove(e){let{dragging:t,pageY:n,startTop:r}=this.state,{onScroll:i}=this.$props;if(Qn.cancel(this.moveRaf),t){let t=r+(wd(e)-n),a=this.getEnableScrollRange(),o=this.getEnableHeightRange(),s=o?t/o:0,c=Math.ceil(s*a);this.moveRaf=Qn(()=>{i(c)})}},onMouseUp(){let{onStopMove:e}=this.$props;this.state.dragging=!1,e(),this.removeEvents()},getSpinHeight(){let{height:e,scrollHeight:t}=this.$props,n=e/t*100;return n=Math.max(n,Cd),n=Math.min(n,e/2),Math.floor(n)},getEnableScrollRange(){let{scrollHeight:e,height:t}=this.$props;return e-t||0},getEnableHeightRange(){let{height:e}=this.$props;return e-this.getSpinHeight()||0},getTop(){let{scrollTop:e}=this.$props,t=this.getEnableScrollRange(),n=this.getEnableHeightRange();return e===0||t===0?0:e/t*n},showScroll(){let{height:e,scrollHeight:t}=this.$props;return t>e}},render(){let{dragging:e,visible:t}=this.state,{prefixCls:n}=this.$props,r=this.getSpinHeight()+`px`,i=this.getTop()+`px`,a=this.showScroll(),o=a&&t;return U(`div`,{ref:this.scrollbarRef,class:K(`${n}-scrollbar`,{[`${n}-scrollbar-show`]:a}),style:{width:`8px`,top:0,bottom:0,right:0,position:`absolute`,display:o?void 0:`none`},onMousedown:this.onContainerMouseDown,onMousemove:this.delayHidden},[U(`div`,{ref:this.thumbRef,class:K(`${n}-scrollbar-thumb`,{[`${n}-scrollbar-thumb-moving`]:e}),style:{width:`100%`,height:r,top:i,left:0,position:`absolute`,background:`rgba(0, 0, 0, 0.5)`,borderRadius:`99px`,cursor:`pointer`,userSelect:`none`},onMousedown:this.onMouseDown},null)])}});function Ed(e,t,n,r){let i=new Map,a=new Map,o=H(Symbol(`update`));G(e,()=>{o.value=Symbol(`update`)});let s;function c(){Qn.cancel(s)}function l(){c(),s=Qn(()=>{i.forEach((e,t)=>{if(e&&e.offsetParent){let{offsetHeight:n}=e;a.get(t)!==n&&(o.value=Symbol(`update`),a.set(t,e.offsetHeight))}})})}function u(e,a){let o=t(e),s=i.get(o);a?(i.set(o,a.$el||a),l()):i.delete(o),!s!=!a&&(a?n?.(e):r?.(e))}return C(()=>{c()}),[u,l,a,o]}function Dd(e,t,n,r,i,a,o,s){let c;return l=>{if(l==null){s();return}Qn.cancel(c);let u=t.value,d=r.itemHeight;if(typeof l==`number`)o(l);else if(l&&typeof l==`object`){let t,{align:r}=l;`index`in l?{index:t}=l:t=u.findIndex(e=>i(e)===l.key);let{offset:s=0}=l,f=(l,p)=>{if(l<0||!e.value)return;let m=e.value.clientHeight,h=!1,g=p;if(m){let a=p||r,c=0,l=0,f=0,_=Math.min(u.length,t);for(let e=0;e<=_;e+=1){let r=i(u[e]);l=c;let a=n.get(r);f=l+(a===void 0?d:a),c=f,e===t&&a===void 0&&(h=!0)}let v=e.value.scrollTop,y=null;switch(a){case`top`:y=l-s;break;case`bottom`:y=f-m+s;break;default:{let e=v+m;le&&(g=`bottom`)}}y!==null&&y!==v&&o(y)}c=Qn(()=>{h&&a(),f(l-1,g)},2)};f(5)}}}var Od=typeof navigator==`object`&&/Firefox/i.test(navigator.userAgent),kd=((e,t)=>{let n=!1,r=null;function i(){clearTimeout(r),n=!0,r=setTimeout(()=>{n=!1},50)}return function(a){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1],s=a<0&&e.value||a>0&&t.value;return o&&s?(clearTimeout(r),n=!1):(!s||n)&&i(),!n&&s}});function Ad(e,t,n,r){let i=0,a=null,o=null,s=!1,c=kd(t,n);function l(t){if(!e.value)return;Qn.cancel(a);let{deltaY:n}=t;i+=n,o=n,!c(n)&&(Od||t.preventDefault(),a=Qn(()=>{r(i*(s?10:1)),i=0}))}function u(t){e.value&&(s=t.detail===o)}return[l,u]}var jd=14/15;function Md(e,t,n){let r=!1,i=0,a=null,o=null,s=()=>{a&&(a.removeEventListener(`touchmove`,c),a.removeEventListener(`touchend`,l))},c=e=>{if(r){let t=Math.ceil(e.touches[0].pageY),r=i-t;i=t,n(r)&&e.preventDefault(),clearInterval(o),o=setInterval(()=>{r*=jd,(!n(r,!0)||Math.abs(r)<=.1)&&clearInterval(o)},16)}},l=()=>{r=!1,s()},u=e=>{s(),e.touches.length===1&&!r&&(r=!0,i=Math.ceil(e.touches[0].pageY),a=e.target,a.addEventListener(`touchmove`,c,{passive:!1}),a.addEventListener(`touchend`,l))},d=()=>{};V(()=>{document.addEventListener(`touchmove`,d,{passive:!1}),G(e,e=>{t.value.removeEventListener(`touchstart`,u),s(),clearInterval(o),e&&t.value.addEventListener(`touchstart`,u,{passive:!1})},{immediate:!0})}),mt(()=>{document.removeEventListener(`touchmove`,d)})}var Nd=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let a=i(e,t+n,{});return U(Sd,{key:o(e),setRef:t=>r(e,t)},{default:()=>[a]})})}var Ld=m({compatConfig:{MODE:3},name:`List`,inheritAttrs:!1,props:{prefixCls:String,data:g.array,height:Number,itemHeight:Number,fullHeight:{type:Boolean,default:void 0},itemKey:{type:[String,Number,Function],required:!0},component:{type:[String,Object]},virtual:{type:Boolean,default:void 0},children:Function,onScroll:Function,onMousedown:Function,onMouseenter:Function,onVisibleChange:Function},setup(e,t){let{expose:n}=t,r=J(()=>{let{height:t,itemHeight:n,virtual:r}=e;return!!(r!==!1&&t&&n)}),i=J(()=>{let{height:t,itemHeight:n,data:i}=e;return r.value&&i&&n*i.length>t}),a=Le({scrollTop:0,scrollMoving:!1}),o=J(()=>e.data||Pd),s=q([]);G(o,()=>{s.value=Kt(o.value).slice()},{immediate:!0});let c=q(e=>void 0);G(()=>e.itemKey,e=>{typeof e==`function`?c.value=e:c.value=t=>t?.[e]},{immediate:!0});let l=q(),u=q(),d=q(),f=e=>c.value(e),p={getKey:f};function m(e){let t;t=typeof e==`function`?e(a.scrollTop):e;let n=S(t);l.value&&(l.value.scrollTop=n),a.scrollTop=n}let[h,g,_,v]=Ed(s,f,null,null),y=Le({scrollHeight:void 0,start:0,end:0,offset:void 0}),b=q(0);V(()=>{ue(()=>{b.value=u.value?.offsetHeight||0})}),M(()=>{ue(()=>{b.value=u.value?.offsetHeight||0})}),G([r,s],()=>{r.value||Z(y,{scrollHeight:void 0,start:0,end:s.value.length-1,offset:void 0})},{immediate:!0}),G([r,s,b,i],()=>{r.value&&!i.value&&Z(y,{scrollHeight:b.value,start:0,end:s.value.length-1,offset:void 0}),l.value&&(a.scrollTop=l.value.scrollTop)},{immediate:!0}),G([i,r,()=>a.scrollTop,s,v,()=>e.height,b],()=>{if(!r.value||!i.value)return;let t=0,n,o,c,l=s.value.length,u=s.value,d=a.scrollTop,{itemHeight:p,height:m}=e,h=d+m;for(let e=0;e=d&&(n=e,o=t),c===void 0&&s>h&&(c=e),t=s}n===void 0&&(n=0,o=0,c=Math.ceil(m/p)),c===void 0&&(c=l-1),c=Math.min(c+1,l),Z(y,{scrollHeight:t,start:n,end:c,offset:o})},{immediate:!0});let x=J(()=>y.scrollHeight-e.height);function S(e){let t=e;return Number.isNaN(x.value)||(t=Math.min(t,x.value)),t=Math.max(t,0),t}let C=J(()=>a.scrollTop<=0),w=J(()=>a.scrollTop>=x.value),T=kd(C,w);function D(e){m(e)}function O(t){var n;let{scrollTop:r}=t.currentTarget;r!==a.scrollTop&&m(r),(n=e.onScroll)==null||n.call(e,t)}let[k,A]=Ad(r,C,w,e=>{m(t=>t+e)});Md(r,l,(e,t)=>T(e,t)?!1:(k({preventDefault(){},deltaY:e}),!0));function j(e){r.value&&e.preventDefault()}let N=()=>{l.value&&(l.value.removeEventListener(`wheel`,k,tr?{passive:!1}:!1),l.value.removeEventListener(`DOMMouseScroll`,A),l.value.removeEventListener(`MozMousePixelScroll`,j))};E(()=>{ue(()=>{l.value&&(N(),l.value.addEventListener(`wheel`,k,tr?{passive:!1}:!1),l.value.addEventListener(`DOMMouseScroll`,A),l.value.addEventListener(`MozMousePixelScroll`,j))})}),mt(()=>{N()}),n({scrollTo:Dd(l,s,_,e,f,g,m,()=>{var e;(e=d.value)==null||e.delayHidden()})});let P=J(()=>{let t=null;return e.height&&(t=Z({[e.fullHeight?`height`:`maxHeight`]:e.height+`px`},Fd),r.value&&(t.overflowY=`hidden`,a.scrollMoving&&(t.pointerEvents=`none`))),t});return G([()=>y.start,()=>y.end,s],()=>{if(e.onVisibleChange){let t=s.value.slice(y.start,y.end+1);e.onVisibleChange(t,s.value)}},{flush:`post`}),{state:a,mergedData:s,componentStyle:P,onFallbackScroll:O,onScrollBar:D,componentRef:l,useVirtual:r,calRes:y,collectHeight:g,setInstance:h,sharedConfig:p,scrollBarRef:d,fillerInnerRef:u,delayHideScrollBar:()=>{var e;(e=d.value)==null||e.delayHidden()}}},render(){let e=Z(Z({},this.$props),this.$attrs),{prefixCls:t=`rc-virtual-list`,height:n,itemHeight:r,fullHeight:i,data:a,itemKey:o,virtual:s,component:c=`div`,onScroll:l,children:u=this.$slots.default,style:d,class:f}=e,p=Nd(e,[`prefixCls`,`height`,`itemHeight`,`fullHeight`,`data`,`itemKey`,`virtual`,`component`,`onScroll`,`children`,`style`,`class`]),m=K(t,f),{scrollTop:h}=this.state,{scrollHeight:g,offset:_,start:v,end:y}=this.calRes,{componentStyle:b,onFallbackScroll:x,onScrollBar:S,useVirtual:C,collectHeight:w,sharedConfig:T,setInstance:E,mergedData:D,delayHideScrollBar:O}=this;return U(`div`,Y({style:Z(Z({},d),{position:`relative`}),class:m},p),[U(c,{class:`${t}-holder`,style:b,ref:`componentRef`,onScroll:x,onMouseenter:O},{default:()=>[U(xd,{prefixCls:t,height:g,offset:_,onInnerResize:w,ref:`fillerInnerRef`},{default:()=>Id(D,v,y,E,u,T)})]}),C&&U(Td,{ref:`scrollBarRef`,prefixCls:t,scrollTop:h,height:n,scrollHeight:g,count:D.length,onScroll:S,onStartMove:()=>{this.state.scrollMoving=!0},onStopMove:()=>{this.state.scrollMoving=!1}},null)])}});function Rd(e,t,n){let r=H(e());return G(t,(t,i)=>{n?n(t,i)&&(r.value=e()):r.value=e()}),r}function zd(){return/(mac\sos|macintosh)/i.test(navigator.appVersion)}var Bd=Symbol(`SelectContextKey`);function Vd(e){return ge(Bd,e)}function Hd(){return b(Bd,{})}var Ud=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i`${i.prefixCls}-item`),s=Rd(()=>a.flattenOptions,[()=>i.open,()=>a.flattenOptions],e=>e[0]),c=ad(),l=e=>{e.preventDefault()},u=e=>{c.current&&c.current.scrollTo(typeof e==`number`?{index:e}:e)},d=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,n=s.value.length;for(let r=0;r1&&arguments[1]!==void 0&&arguments[1];f.activeIndex=e;let n={source:t?`keyboard`:`mouse`},r=s.value[e];if(!r){a.onActiveValue(null,-1,n);return}a.onActiveValue(r.value,e,n)};G([()=>s.value.length,()=>i.searchValue],()=>{p(a.defaultActiveFirstOption===!1?-1:d(0))},{immediate:!0});let m=e=>a.rawValues.has(e)&&i.mode!==`combobox`;G([()=>i.open,()=>i.searchValue],()=>{if(!i.multiple&&i.open&&a.rawValues.size===1){let e=Array.from(a.rawValues)[0],t=Kt(s.value).findIndex(t=>{let{data:n}=t;return n[a.fieldNames.value]===e});t!==-1&&(p(t),ue(()=>{u(t)}))}i.open&&ue(()=>{var e;(e=c.current)==null||e.scrollTo(void 0)})},{immediate:!0,flush:`post`});let h=e=>{e!==void 0&&a.onSelect(e,{selected:!a.rawValues.has(e)}),i.multiple||i.toggleOpen(!1)},g=e=>typeof e.label==`function`?e.label():e.label;function _(e){let t=s.value[e];if(!t)return null;let n=t.data||{},{value:r}=n,{group:a}=t,o=Pu(n,!0),c=g(t);return t?U(`div`,Y(Y({"aria-label":typeof c==`string`&&!a?c:null},o),{},{key:e,role:a?`presentation`:`option`,id:`${i.id}_list_${e}`,"aria-selected":m(r)}),[r]):null}return n({onKeydown:e=>{let{which:t,ctrlKey:n}=e;switch(t){case $.N:case $.P:case $.UP:case $.DOWN:{let e=0;if(t===$.UP?e=-1:t===$.DOWN?e=1:zd()&&n&&(t===$.N?e=1:t===$.P&&(e=-1)),e!==0){let t=d(f.activeIndex+e,e);u(t),p(t,!0)}break}case $.ENTER:{let t=s.value[f.activeIndex];t&&!t.data.disabled?h(t.value):h(void 0),i.open&&e.preventDefault();break}case $.ESC:i.toggleOpen(!1),i.open&&e.stopPropagation()}},onKeyup:()=>{},scrollTo:e=>{u(e)}}),()=>{let{id:e,notFoundContent:t,onPopupScroll:n}=i,{menuItemSelectedIcon:u,fieldNames:d,virtual:v,listHeight:y,listItemHeight:b}=a,x=r.option,{activeIndex:S}=f,C=Object.keys(d).map(e=>d[e]);return s.value.length===0?U(`div`,{role:`listbox`,id:`${e}_list`,class:`${o.value}-empty`,onMousedown:l},[t]):U(rt,null,[U(`div`,{role:`listbox`,id:`${e}_list`,style:{height:0,width:0,overflow:`hidden`}},[_(S-1),_(S),_(S+1)]),U(Ld,{itemKey:`key`,ref:c,data:s.value,height:y,itemHeight:b,fullHeight:!1,onMousedown:l,onScroll:n,virtual:v},{default:(e,t)=>{let{group:n,groupOption:r,data:i,value:a}=e,{key:s}=i,c=typeof e.label==`function`?e.label():e.label;if(n){let e=i.title??(Wd(c)&&c);return U(`div`,{class:K(o.value,`${o.value}-group`),title:e},[x?x(i):c===void 0?s:c])}let{disabled:l,title:d,children:f,style:_,class:v,className:y}=i,b=Ud(i,[`disabled`,`title`,`children`,`style`,`class`,`className`]),w=Pr(b,C),T=m(a),E=`${o.value}-option`,D=K(o.value,E,v,y,{[`${E}-grouped`]:r,[`${E}-active`]:S===t&&!l,[`${E}-disabled`]:l,[`${E}-selected`]:T}),O=g(e),k=!u||typeof u==`function`||T,A=typeof O==`number`?O:O||a,j=Wd(A)?A.toString():void 0;return d!==void 0&&(j=d),U(`div`,Y(Y({},w),{},{"aria-selected":T,class:D,title:j,onMousemove:e=>{b.onMousemove&&b.onMousemove(e),!(S===t||l)&&p(t)},onClick:e=>{l||h(a),b.onClick&&b.onClick(e)},style:_}),[U(`div`,{class:`${E}-content`},[x?x(i):A]),Lt(u)||T,k&&U(bu,{class:`${o.value}-option-state`,customizeIcon:u,customizeIconProps:{isSelected:T}},{default:()=>[T?`✓`:null]})])}})])}}}),Kd=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i1&&arguments[1]!==void 0&&arguments[1];return fe(e).map((e,n)=>{if(!Lt(e)||!e.type)return null;let{type:{isSelectOptGroup:r},key:i,children:a,props:o}=e;if(t||!r)return qd(e);let s=a&&a.default?a.default():void 0,c=o?.label||a.label?.call(a)||i;return Z(Z({key:`__RC_SELECT_GRP__${i===null?n:String(i)}__`},o),{label:c,options:Jd(s||[])})}).filter(e=>e)}function Yd(e,t,n){let r=q(),i=q(),a=q(),o=q([]);return G([e,t],()=>{e.value?o.value=Kt(e.value).slice():o.value=Jd(t.value)},{immediate:!0,deep:!0}),E(()=>{let e=o.value,t=new Map,s=new Map,c=n.value;function l(e){let n=arguments.length>1&&arguments[1]!==void 0&&arguments[1];for(let r=0;r0&&arguments[0]!==void 0?arguments[0]:H(``),t=`rc_select_${Qd()}`;return e.value||t}function ef(e){return Array.isArray(e)?e:e===void 0?[]:[e]}typeof window<`u`&&window.document&&window.document.documentElement;function tf(e,t){return ef(e).join(``).toUpperCase().includes(t)}var nf=((e,t,n,r,i)=>J(()=>{let a=n.value,o=i?.value,s=r?.value;if(!a||s===!1)return e.value;let{options:c,label:l,value:u}=t.value,d=[],f=typeof s==`function`,p=a.toUpperCase(),m=f?s:(e,t)=>o?tf(t[o],p):t[c]?tf(t[l===`children`?`label`:l],p):tf(t[u],p),h=f?e=>gi(e):e=>e;return e.value.forEach(e=>{if(e[c]){if(m(a,h(e)))d.push(e);else{let t=e[c].filter(e=>m(a,h(e)));t.length&&d.push(Z(Z({},e),{[c]:t}))}return}m(a,h(e))&&d.push(e)}),d})),rf=((e,t)=>{let n=q({values:new Map,options:new Map});return[J(()=>{let{values:r,options:i}=n.value,a=e.value.map(e=>e.label===void 0?Z(Z({},e),{label:r.get(e.value)?.label}):e),o=new Map,s=new Map;return a.forEach(e=>{o.set(e.value,e),s.set(e.value,t.value.get(e.value)||i.get(e.value))}),n.value.values=o,n.value.options=s,a}),e=>t.value.get(e)||n.value.options.get(e)]});function af(e,t){let{defaultValue:n,value:r=H()}=t||{},i=typeof e==`function`?e():e;r.value!==void 0&&(i=Ue(r)),n!==void 0&&(i=typeof n==`function`?n():n);let a=H(i),o=H(i);E(()=>{let e=r.value===void 0?a.value:r.value;t.postState&&(e=t.postState(e)),o.value=e});function s(e){let n=o.value;a.value=e,Kt(o.value)!==e&&t.onChange&&t.onChange(e,n)}return G(r,()=>{a.value=r.value}),[o,s]}function of(e){let t=H(typeof e==`function`?e():e);function n(e){t.value=e}return[t,n]}var sf=[`inputValue`];function cf(){return Z(Z({},_d()),{prefixCls:String,id:String,backfill:{type:Boolean,default:void 0},fieldNames:Object,inputValue:String,searchValue:String,onSearch:Function,autoClearSearchValue:{type:Boolean,default:void 0},onSelect:Function,onDeselect:Function,filterOption:{type:[Boolean,Function],default:void 0},filterSort:Function,optionFilterProp:String,optionLabelProp:String,options:Array,defaultActiveFirstOption:{type:Boolean,default:void 0},virtual:{type:Boolean,default:void 0},listHeight:Number,listItemHeight:Number,menuItemSelectedIcon:g.any,mode:String,labelInValue:{type:Boolean,default:void 0},value:g.any,defaultValue:g.any,onChange:Function,children:Array})}function lf(e){return!e||typeof e!=`object`}var uf=m({compatConfig:{MODE:3},name:`VcSelect`,inheritAttrs:!1,props:Gn(cf(),{prefixCls:`vc-select`,autoClearSearchValue:!0,listHeight:200,listItemHeight:20,dropdownMatchSelectWidth:!0}),setup(e,t){let{expose:n,attrs:r,slots:i}=t,a=$d(Et(e,`id`)),o=J(()=>yd(e.mode)),s=J(()=>!!(!e.options&&e.children)),c=J(()=>e.filterOption===void 0&&e.mode===`combobox`?!1:e.filterOption),l=J(()=>mi(e.fieldNames,s.value)),[u,d]=af(``,{value:J(()=>e.searchValue===void 0?e.inputValue:e.searchValue),postState:e=>e||``}),f=Yd(Et(e,`options`),Et(e,`children`),l),{valueOptions:p,labelOptions:m,options:h}=f,g=t=>ef(t).map(t=>{let n,r,i,a;lf(t)?n=t:(i=t.key,r=t.label,n=t.value??i);let o=p.value.get(n);return o&&(r===void 0&&(r=o?.[e.optionLabelProp||l.value.label]),i===void 0&&(i=o?.key??n),a=o?.disabled),{label:r,value:n,key:i,disabled:a,option:o}}),[_,v]=af(e.defaultValue,{value:Et(e,`value`)}),[y,b]=rf(J(()=>{let t=g(_.value);return e.mode===`combobox`&&!t[0]?.value?[]:t}),p),x=J(()=>{if(!e.mode&&y.value.length===1){let e=y.value[0];if(e.value===null&&(e.label===null||e.label===void 0))return[]}return y.value.map(e=>Z(Z({},e),{label:(typeof e.label==`function`?e.label():e.label)??e.value}))}),S=J(()=>new Set(y.value.map(e=>e.value)));E(()=>{if(e.mode===`combobox`){let e=y.value[0]?.value;e!=null&&d(String(e))}},{flush:`post`});let C=(e,t)=>{let n=t??e;return{[l.value.value]:e,[l.value.label]:n}},w=q();E(()=>{if(e.mode!==`tags`){w.value=h.value;return}let t=h.value.slice(),n=e=>p.value.has(e);[...y.value].sort((e,t)=>e.value{let r=e.value;n(r)||t.push(C(r,e.label))}),w.value=t});let T=nf(w,l,u,c,Et(e,`optionFilterProp`)),D=J(()=>e.mode!==`tags`||!u.value||T.value.some(t=>t[e.optionFilterProp||`value`]===u.value)?T.value:[C(u.value),...T.value]),O=J(()=>e.filterSort?[...D.value].sort((t,n)=>e.filterSort(t,n)):D.value),k=J(()=>hi(O.value,{fieldNames:l.value,childrenAsData:s.value})),A=t=>{let n=g(t);if(v(n),e.onChange&&(n.length!==y.value.length||n.some((e,t)=>y.value[t]?.value!==e?.value))){let t=e.labelInValue?n.map(e=>Z(Z({},e),{originLabel:e.label,label:typeof e.label==`function`?e.label():e.label})):n.map(e=>e.value),r=n.map(e=>gi(b(e.value)));e.onChange(o.value?t:t[0],o.value?r:r[0])}},[j,M]=of(null),[N,P]=of(0),F=J(()=>e.defaultActiveFirstOption===void 0?e.mode!==`combobox`:e.defaultActiveFirstOption),I=function(t,n){let{source:r=`keyboard`}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};P(n),e.backfill&&e.mode===`combobox`&&t!==null&&r===`keyboard`&&M(String(t))},L=(t,n)=>{let r=()=>{let n=b(t),r=n?.[l.value.label];return[e.labelInValue?{label:typeof r==`function`?r():r,originLabel:r,value:t,key:n?.key??t}:t,gi(n)]};if(n&&e.onSelect){let[t,n]=r();e.onSelect(t,n)}else if(!n&&e.onDeselect){let[t,n]=r();e.onDeselect(t,n)}},R=(t,n)=>{let r,i=!o.value||n.selected;r=i?o.value?[...y.value,t]:[t]:y.value.filter(e=>e.value!==t),A(r),L(t,i),e.mode===`combobox`?M(``):(!o.value||e.autoClearSearchValue)&&(d(``),M(``))},ee=(e,t)=>{A(e),(t.type===`remove`||t.type===`clear`)&&t.values.forEach(e=>{L(e.value,!1)})},te=(t,n)=>{var r;if(d(t),M(null),n.source===`submit`){let e=(t||``).trim();if(e){let t=Array.from(new Set([...S.value,e]));A(t),L(e,!0),d(``)}return}n.source!==`blur`&&(e.mode===`combobox`&&A(t),(r=e.onSearch)==null||r.call(e,t))},z=t=>{let n=t;e.mode!==`tags`&&(n=t.map(e=>m.value.get(e)?.value).filter(e=>e!==void 0));let r=Array.from(new Set([...S.value,...n]));A(r),r.forEach(e=>{L(e,!0)})},ne=J(()=>e.virtual!==!1&&e.dropdownMatchSelectWidth!==!1);Vd(pd(Z(Z({},f),{flattenOptions:k,onActiveValue:I,defaultActiveFirstOption:F,onSelect:R,menuItemSelectedIcon:Et(e,`menuItemSelectedIcon`),rawValues:S,fieldNames:l,virtual:ne,listHeight:Et(e,`listHeight`),listItemHeight:Et(e,`listItemHeight`),childrenAsData:s})));let re=H();n({focus(){var e;(e=re.value)==null||e.focus()},blur(){var e;(e=re.value)==null||e.blur()},scrollTo(e){var t;(t=re.value)==null||t.scrollTo(e)}});let ie=J(()=>Pr(e,`id.mode.prefixCls.backfill.fieldNames.inputValue.searchValue.onSearch.autoClearSearchValue.onSelect.onDeselect.dropdownMatchSelectWidth.filterOption.filterSort.optionFilterProp.optionLabelProp.options.children.defaultActiveFirstOption.menuItemSelectedIcon.virtual.listHeight.listItemHeight.value.defaultValue.labelInValue.onChange`.split(`.`)));return()=>U(bd,Y(Y(Y({},ie.value),r),{},{id:a,prefixCls:e.prefixCls,ref:re,omitDomProps:sf,mode:e.mode,displayValues:x.value,onDisplayValuesChange:ee,searchValue:u.value,onSearch:te,onSearchSplit:z,dropdownMatchSelectWidth:e.dropdownMatchSelectWidth,OptionList:Gd,emptyOptions:!k.value.length,activeValue:j.value,activeDescendantId:`${a}_list_${N.value}`}),i)}}),df=()=>null;df.isSelectOption=!0,df.displayName=`ASelectOption`;var ff=()=>null;ff.isSelectOptGroup=!0,ff.displayName=`ASelectOptGroup`;var pf=uf,mf={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z`}}]},name:`down`,theme:`outlined`};function hf(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{},{loading:n,multiple:r,prefixCls:i,hasFeedback:a,feedbackIcon:o,showArrow:s}=e,c=e.suffixIcon||t.suffixIcon&&t.suffixIcon(),l=e.clearIcon||t.clearIcon&&t.clearIcon(),u=e.menuItemSelectedIcon||t.menuItemSelectedIcon&&t.menuItemSelectedIcon(),d=e.removeIcon||t.removeIcon&&t.removeIcon(),f=l??U(at,null,null),p=e=>U(rt,null,[s!==!1&&e,a&&o]),m=null;if(c!==void 0)m=p(c);else if(n)m=p(U(Zt,{spin:!0},null));else{let e=`${i}-suffix`;m=t=>{let{open:n,showSearch:r}=t;return p(U(n&&r?Tf:_f,{class:e},null))}}let h=null;h=u===void 0?r?U(xf,null,null):null:u;let g=null;return g=d===void 0?U(Re,null,null):d,{clearIcon:f,suffixIcon:m,itemIcon:h,removeIcon:g}}function Df(e){let t=Symbol(`contextKey`);return{useProvide:(e,n)=>{let r=Le({});return ge(t,r),E(()=>{Z(r,e,n||{})}),r},useInject:()=>b(t,e)||{}}}var Of=Symbol(`ContextProps`),kf=Symbol(`InternalContextProps`),Af=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:J(()=>!0),n=H(new Map);tn(),G([t,n],()=>{}),ge(Of,e),ge(kf,{addFormItemField:(e,t)=>{n.value.set(e,t),n.value=new Map(n.value)},removeFormItemField:e=>{n.value.delete(e),n.value=new Map(n.value)}})},jf={id:J(()=>void 0),onFieldBlur:()=>{},onFieldChange:()=>{},clearValidate:()=>{}},Mf={addFormItemField:()=>{},removeFormItemField:()=>{}},Nf=()=>{let e=b(kf,Mf),t=Symbol(`FormItemFieldKey`),n=tn();return e.addFormItemField(t,n.type),mt(()=>{e.removeFormItemField(t)}),ge(kf,Mf),ge(Of,jf),b(Of,jf)},Pf=m({compatConfig:{MODE:3},name:`AFormItemRest`,setup(e,t){let{slots:n}=t;return ge(kf,Mf),ge(Of,jf),()=>n.default?.call(n)}}),Ff=Df({}),If=m({name:`NoFormStatus`,setup(e,t){let{slots:n}=t;return Ff.useProvide({}),()=>n.default?.call(n)}});function Lf(e,t,n){return K({[`${e}-status-success`]:t===`success`,[`${e}-status-warning`]:t===`warning`,[`${e}-status-error`]:t===`error`,[`${e}-status-validating`]:t===`validating`,[`${e}-has-feedback`]:n})}var Rf=(e,t)=>t||e,zf=e=>{let{componentCls:t}=e;return{[t]:{display:`inline-flex`,"&-block":{display:`flex`,width:`100%`},"&-vertical":{flexDirection:`column`}}}},Bf=e=>{let{componentCls:t}=e;return{[t]:{display:`inline-flex`,"&-rtl":{direction:`rtl`},"&-vertical":{flexDirection:`column`},"&-align":{flexDirection:`column`,"&-center":{alignItems:`center`},"&-start":{alignItems:`flex-start`},"&-end":{alignItems:`flex-end`},"&-baseline":{alignItems:`baseline`}},[`${t}-item`]:{"&:empty":{display:`none`}}}}},Vf=S(`Space`,e=>[Bf(e),zf(e)]),Hf=`[object Symbol]`;function Uf(e){return typeof e==`symbol`||fc(e)&&Ro(e)==Hf}function Wf(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n0){if(++t>=hp)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function yp(e){return function(){return e}}var bp=function(){try{var e=as(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),xp=vp(bp?function(e,t){return bp(e,`toString`,{configurable:!0,enumerable:!1,value:yp(t),writable:!0})}:lp);function Sp(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}function Op(e,t,n){t==`__proto__`&&bp?bp(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var kp=Object.prototype.hasOwnProperty;function Ap(e,t,n){var r=e[t];(!(kp.call(e,t)&&fo(r,n))||n===void 0&&!(t in e))&&Op(e,t,n)}function jp(e,t,n,r){var i=!n;n||={};for(var a=-1,o=t.length;++a0&&n(s)?t>1?rm(s,t-1,n,r,i):rc(i,s):r||(i[i.length]=s)}return i}function im(e){return e!=null&&e.length?rm(e,1):[]}function am(e){return xp(Np(e,void 0,im),e+``)}var om=fl(Object.getPrototypeOf,Object),sm=`[object Object]`,cm=Function.prototype,lm=Object.prototype,um=cm.toString,dm=lm.hasOwnProperty,fm=um.call(Object);function pm(e){if(!fc(e)||Ro(e)!=sm)return!1;var t=om(e);if(t===null)return!0;var n=dm.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&um.call(n)==fm}function mm(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r=t||n<0||d&&r>=a}function _(){var e=gg();if(g(e))return v(e);s=setTimeout(_,h(e))}function v(e){return s=void 0,f&&r?p(e):(r=i=void 0,o)}function y(){s!==void 0&&clearTimeout(s),l=0,r=c=i=s=void 0}function b(){return s===void 0?o:v(gg())}function x(){var e=gg(),n=g(e);if(r=arguments,i=this,c=e,n){if(s===void 0)return m(c);if(d)return clearTimeout(s),s=setTimeout(_,t),p(c)}return s===void 0&&(s=setTimeout(_,t)),o}return x.cancel=y,x.flush=b,x}function xg(e){return fc(e)&&gl(e)}function Sg(e,t,n){for(var r=-1,i=e==null?0:e.length;++r-1?i[a?t[o]:o]:void 0}}var Tg=Math.max;function Eg(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=n==null?0:cp(n);return i<0&&(i=Tg(r+i,0)),Cp(e,sg(t,3),i)}var Dg=wg(Eg);function Og(e){for(var t=-1,n=e==null?0:e.length,r={};++t=120&&u.length>=120)?new Ms(o&&u):void 0}u=e[0];var d=-1,f=s[0];outer:for(;++d1,t}),jp(e,Tm(e),n),r&&(n=Vh(n,Ug|Wg|Gg,Hg));for(var i=t.length;i--;)Vg(n,t[i]);return n});function qg(e,t,n,r){if(!zo(e))return e;t=Xp(t,e);for(var i=-1,a=t.length,o=a-1,s=e;s!=null&&++i=$g){var l=t?null:Qg(e);if(l)return Bs(l);o=!1,i=Ps,c=new Ms}else c=t?[]:s;outer:for(;++r({compactSize:String,compactDirection:g.oneOf(v(`horizontal`,`vertical`)).def(`horizontal`),isFirstItem:Q(),isLastItem:Q()}),r_=Df(null),i_=(e,t)=>{let n=r_.useInject(),r=J(()=>{if(!n||Lg(n))return``;let{compactDirection:r,isFirstItem:i,isLastItem:a}=n,o=r===`vertical`?`-vertical-`:`-`;return K({[`${e.value}-compact${o}item`]:!0,[`${e.value}-compact${o}first-item`]:i,[`${e.value}-compact${o}last-item`]:a,[`${e.value}-compact${o}item-rtl`]:t.value===`rtl`})});return{compactSize:J(()=>n?.compactSize),compactDirection:J(()=>n?.compactDirection),compactItemClassnames:r}},a_=m({name:`NoCompactStyle`,setup(e,t){let{slots:n}=t;return r_.useProvide(null),()=>n.default?.call(n)}}),o_=()=>({prefixCls:String,size:{type:String},direction:g.oneOf(v(`horizontal`,`vertical`)).def(`horizontal`),align:g.oneOf(v(`start`,`end`,`center`,`baseline`)),block:{type:Boolean,default:void 0}}),s_=m({name:`CompactItem`,props:n_(),setup(e,t){let{slots:n}=t;return r_.useProvide(e),()=>n.default?.call(n)}}),c_=m({name:`ASpaceCompact`,inheritAttrs:!1,props:o_(),setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=X(`space-compact`,e),o=r_.useInject(),[s,c]=Vf(i),l=J(()=>K(i.value,c.value,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-block`]:e.block,[`${i.value}-vertical`]:e.direction===`vertical`}));return()=>{let t=fe(r.default?.call(r)||[]);return t.length===0?null:s(U(`div`,Y(Y({},n),{},{class:[l.value,n.class]}),[t.map((n,r)=>{let a=n&&n.key||`${i.value}-item-${r}`,s=!o||Lg(o);return U(s_,{key:a,compactSize:e.size??`middle`,compactDirection:e.direction,isFirstItem:r===0&&(s||o?.isFirstItem),isLastItem:r===t.length-1&&(s||o?.isLastItem)},{default:()=>[n]})})]))}}}),l_=e=>({animationDuration:e,animationFillMode:`both`}),u_=e=>({animationDuration:e,animationFillMode:`both`}),d_=function(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0&&arguments[4]?`&`:``;return{[`
+ ${i}${e}-enter,
+ ${i}${e}-appear
+ `]:Z(Z({},l_(r)),{animationPlayState:`paused`}),[`${i}${e}-leave`]:Z(Z({},u_(r)),{animationPlayState:`paused`}),[`
+ ${i}${e}-enter${e}-enter-active,
+ ${i}${e}-appear${e}-appear-active
+ `]:{animationName:t,animationPlayState:`running`},[`${i}${e}-leave${e}-leave-active`]:{animationName:n,animationPlayState:`running`,pointerEvents:`none`}}},f_=new L(`antFadeIn`,{"0%":{opacity:0},"100%":{opacity:1}}),p_=new L(`antFadeOut`,{"0%":{opacity:1},"100%":{opacity:0}}),m_=function(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],{antCls:n}=e,r=`${n}-fade`,i=t?`&`:``;return[d_(r,f_,p_,e.motionDurationMid,t),{[`
+ ${i}${r}-enter,
+ ${i}${r}-appear
+ `]:{opacity:0,animationTimingFunction:`linear`},[`${i}${r}-leave`]:{animationTimingFunction:`linear`}}]},h_=new L(`antMoveDownIn`,{"0%":{transform:`translate3d(0, 100%, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),g_=new L(`antMoveDownOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(0, 100%, 0)`,transformOrigin:`0 0`,opacity:0}}),__=new L(`antMoveLeftIn`,{"0%":{transform:`translate3d(-100%, 0, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),v_=new L(`antMoveLeftOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(-100%, 0, 0)`,transformOrigin:`0 0`,opacity:0}}),y_=new L(`antMoveRightIn`,{"0%":{transform:`translate3d(100%, 0, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),b_=new L(`antMoveRightOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(100%, 0, 0)`,transformOrigin:`0 0`,opacity:0}}),x_={"move-up":{inKeyframes:new L(`antMoveUpIn`,{"0%":{transform:`translate3d(0, -100%, 0)`,transformOrigin:`0 0`,opacity:0},"100%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1}}),outKeyframes:new L(`antMoveUpOut`,{"0%":{transform:`translate3d(0, 0, 0)`,transformOrigin:`0 0`,opacity:1},"100%":{transform:`translate3d(0, -100%, 0)`,transformOrigin:`0 0`,opacity:0}})},"move-down":{inKeyframes:h_,outKeyframes:g_},"move-left":{inKeyframes:__,outKeyframes:v_},"move-right":{inKeyframes:y_,outKeyframes:b_}},S_=(e,t)=>{let{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:i,outKeyframes:a}=x_[t];return[d_(r,i,a,e.motionDurationMid),{[`
+ ${r}-enter,
+ ${r}-appear
+ `]:{opacity:0,animationTimingFunction:e.motionEaseOutCirc},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},C_=new L(`antSlideUpIn`,{"0%":{transform:`scaleY(0.8)`,transformOrigin:`0% 0%`,opacity:0},"100%":{transform:`scaleY(1)`,transformOrigin:`0% 0%`,opacity:1}}),w_=new L(`antSlideUpOut`,{"0%":{transform:`scaleY(1)`,transformOrigin:`0% 0%`,opacity:1},"100%":{transform:`scaleY(0.8)`,transformOrigin:`0% 0%`,opacity:0}}),T_=new L(`antSlideDownIn`,{"0%":{transform:`scaleY(0.8)`,transformOrigin:`100% 100%`,opacity:0},"100%":{transform:`scaleY(1)`,transformOrigin:`100% 100%`,opacity:1}}),E_=new L(`antSlideDownOut`,{"0%":{transform:`scaleY(1)`,transformOrigin:`100% 100%`,opacity:1},"100%":{transform:`scaleY(0.8)`,transformOrigin:`100% 100%`,opacity:0}}),D_=new L(`antSlideLeftIn`,{"0%":{transform:`scaleX(0.8)`,transformOrigin:`0% 0%`,opacity:0},"100%":{transform:`scaleX(1)`,transformOrigin:`0% 0%`,opacity:1}}),O_=new L(`antSlideLeftOut`,{"0%":{transform:`scaleX(1)`,transformOrigin:`0% 0%`,opacity:1},"100%":{transform:`scaleX(0.8)`,transformOrigin:`0% 0%`,opacity:0}}),k_=new L(`antSlideRightIn`,{"0%":{transform:`scaleX(0.8)`,transformOrigin:`100% 0%`,opacity:0},"100%":{transform:`scaleX(1)`,transformOrigin:`100% 0%`,opacity:1}}),A_=new L(`antSlideRightOut`,{"0%":{transform:`scaleX(1)`,transformOrigin:`100% 0%`,opacity:1},"100%":{transform:`scaleX(0.8)`,transformOrigin:`100% 0%`,opacity:0}}),j_={"slide-up":{inKeyframes:C_,outKeyframes:w_},"slide-down":{inKeyframes:T_,outKeyframes:E_},"slide-left":{inKeyframes:D_,outKeyframes:O_},"slide-right":{inKeyframes:k_,outKeyframes:A_}},M_=(e,t)=>{let{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:i,outKeyframes:a}=j_[t];return[d_(r,i,a,e.motionDurationMid),{[`
+ ${r}-enter,
+ ${r}-appear
+ `]:{transform:`scale(0)`,transformOrigin:`0% 0%`,opacity:0,animationTimingFunction:e.motionEaseOutQuint},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInQuint}}]},N_=new L(`antZoomIn`,{"0%":{transform:`scale(0.2)`,opacity:0},"100%":{transform:`scale(1)`,opacity:1}}),P_=new L(`antZoomOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0.2)`,opacity:0}}),F_=new L(`antZoomBigIn`,{"0%":{transform:`scale(0.8)`,opacity:0},"100%":{transform:`scale(1)`,opacity:1}}),I_=new L(`antZoomBigOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0.8)`,opacity:0}}),L_=new L(`antZoomUpIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`50% 0%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`50% 0%`}}),R_=new L(`antZoomUpOut`,{"0%":{transform:`scale(1)`,transformOrigin:`50% 0%`},"100%":{transform:`scale(0.8)`,transformOrigin:`50% 0%`,opacity:0}}),z_=new L(`antZoomLeftIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`0% 50%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`0% 50%`}}),B_=new L(`antZoomLeftOut`,{"0%":{transform:`scale(1)`,transformOrigin:`0% 50%`},"100%":{transform:`scale(0.8)`,transformOrigin:`0% 50%`,opacity:0}}),V_=new L(`antZoomRightIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`100% 50%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`100% 50%`}}),H_=new L(`antZoomRightOut`,{"0%":{transform:`scale(1)`,transformOrigin:`100% 50%`},"100%":{transform:`scale(0.8)`,transformOrigin:`100% 50%`,opacity:0}}),U_=new L(`antZoomDownIn`,{"0%":{transform:`scale(0.8)`,transformOrigin:`50% 100%`,opacity:0},"100%":{transform:`scale(1)`,transformOrigin:`50% 100%`}}),W_=new L(`antZoomDownOut`,{"0%":{transform:`scale(1)`,transformOrigin:`50% 100%`},"100%":{transform:`scale(0.8)`,transformOrigin:`50% 100%`,opacity:0}}),G_={zoom:{inKeyframes:N_,outKeyframes:P_},"zoom-big":{inKeyframes:F_,outKeyframes:I_},"zoom-big-fast":{inKeyframes:F_,outKeyframes:I_},"zoom-left":{inKeyframes:z_,outKeyframes:B_},"zoom-right":{inKeyframes:V_,outKeyframes:H_},"zoom-up":{inKeyframes:L_,outKeyframes:R_},"zoom-down":{inKeyframes:U_,outKeyframes:W_}},K_=(e,t)=>{let{antCls:n}=e,r=`${n}-${t}`,{inKeyframes:i,outKeyframes:a}=G_[t];return[d_(r,i,a,t===`zoom-big-fast`?e.motionDurationFast:e.motionDurationMid),{[`
+ ${r}-enter,
+ ${r}-appear
+ `]:{transform:`scale(0)`,opacity:0,animationTimingFunction:e.motionEaseOutCirc,"&-prepare":{transform:`none`}},[`${r}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},q_=e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:`hidden`,"&-active":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut},
+ opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:`hidden`,transition:`height ${e.motionDurationMid} ${e.motionEaseInOut},
+ opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}}),J_=e=>{let{controlPaddingHorizontal:t}=e;return{position:`relative`,display:`block`,minHeight:e.controlHeight,padding:`${(e.controlHeight-e.fontSize*e.lineHeight)/2}px ${t}px`,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,lineHeight:e.lineHeight,boxSizing:`border-box`}},Y_=e=>{let{antCls:t,componentCls:n}=e,r=`${n}-item`;return[{[`${n}-dropdown`]:Z(Z({},cn(e)),{position:`absolute`,top:-9999,zIndex:e.zIndexPopup,boxSizing:`border-box`,padding:e.paddingXXS,overflow:`hidden`,fontSize:e.fontSize,fontVariant:`initial`,backgroundColor:e.colorBgElevated,borderRadius:e.borderRadiusLG,outline:`none`,boxShadow:e.boxShadowSecondary,[`
+ &${t}-slide-up-enter${t}-slide-up-enter-active${n}-dropdown-placement-bottomLeft,
+ &${t}-slide-up-appear${t}-slide-up-appear-active${n}-dropdown-placement-bottomLeft
+ `]:{animationName:C_},[`
+ &${t}-slide-up-enter${t}-slide-up-enter-active${n}-dropdown-placement-topLeft,
+ &${t}-slide-up-appear${t}-slide-up-appear-active${n}-dropdown-placement-topLeft
+ `]:{animationName:T_},[`&${t}-slide-up-leave${t}-slide-up-leave-active${n}-dropdown-placement-bottomLeft`]:{animationName:w_},[`&${t}-slide-up-leave${t}-slide-up-leave-active${n}-dropdown-placement-topLeft`]:{animationName:E_},"&-hidden":{display:`none`},"&-empty":{color:e.colorTextDisabled},[`${r}-empty`]:Z(Z({},J_(e)),{color:e.colorTextDisabled}),[`${r}`]:Z(Z({},J_(e)),{cursor:`pointer`,transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,"&-group":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:`default`},"&-option":{display:`flex`,"&-content":Z({flex:`auto`},Te),"&-state":{flex:`none`},[`&-active:not(${r}-option-disabled)`]:{backgroundColor:e.controlItemBgHover},[`&-selected:not(${r}-option-disabled)`]:{color:e.colorText,fontWeight:e.fontWeightStrong,backgroundColor:e.controlItemBgActive,[`${r}-option-state`]:{color:e.colorPrimary}},"&-disabled":{[`&${r}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:`not-allowed`},"&-grouped":{paddingInlineStart:e.controlPaddingHorizontal*2}}}),"&-rtl":{direction:`rtl`}})},M_(e,`slide-up`),M_(e,`slide-down`),S_(e,`move-up`),S_(e,`move-down`)]},X_=2;function Z_(e){let{controlHeightSM:t,controlHeight:n,lineWidth:r}=e,i=(n-t)/2-r;return[i,Math.ceil(i/2)]}function Q_(e,t){let{componentCls:n,iconCls:r}=e,i=`${n}-selection-overflow`,a=e.controlHeightSM,[o]=Z_(e);return{[`${n}-multiple${t?`${n}-${t}`:``}`]:{fontSize:e.fontSize,[i]:{position:`relative`,display:`flex`,flex:`auto`,flexWrap:`wrap`,maxWidth:`100%`,"&-item":{flex:`none`,alignSelf:`center`,maxWidth:`100%`,display:`inline-flex`}},[`${n}-selector`]:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,padding:`${o-X_}px ${X_*2}px`,borderRadius:e.borderRadius,[`${n}-show-search&`]:{cursor:`text`},[`${n}-disabled&`]:{background:e.colorBgContainerDisabled,cursor:`not-allowed`},"&:after":{display:`inline-block`,width:0,margin:`${X_}px 0`,lineHeight:`${a}px`,content:`"\\a0"`}},[`
+ &${n}-show-arrow ${n}-selector,
+ &${n}-allow-clear ${n}-selector
+ `]:{paddingInlineEnd:e.fontSizeIcon+e.controlPaddingHorizontal},[`${n}-selection-item`]:{position:`relative`,display:`flex`,flex:`none`,boxSizing:`border-box`,maxWidth:`100%`,height:a,marginTop:X_,marginBottom:X_,lineHeight:`${a-e.lineWidth*2}px`,background:e.colorFillSecondary,border:`${e.lineWidth}px solid ${e.colorSplit}`,borderRadius:e.borderRadiusSM,cursor:`default`,transition:`font-size ${e.motionDurationSlow}, line-height ${e.motionDurationSlow}, height ${e.motionDurationSlow}`,userSelect:`none`,marginInlineEnd:X_*2,paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS/2,[`${n}-disabled&`]:{color:e.colorTextDisabled,borderColor:e.colorBorder,cursor:`not-allowed`},"&-content":{display:`inline-block`,marginInlineEnd:e.paddingXS/2,overflow:`hidden`,whiteSpace:`pre`,textOverflow:`ellipsis`},"&-remove":Z(Z({},u()),{display:`inline-block`,color:e.colorIcon,fontWeight:`bold`,fontSize:10,lineHeight:`inherit`,cursor:`pointer`,[`> ${r}`]:{verticalAlign:`-0.2em`},"&:hover":{color:e.colorIconHover}})},[`${i}-item + ${i}-item`]:{[`${n}-selection-search`]:{marginInlineStart:0}},[`${n}-selection-search`]:{display:`inline-flex`,position:`relative`,maxWidth:`100%`,marginInlineStart:e.inputPaddingHorizontalBase-o,"\n &-input,\n &-mirror\n ":{height:a,fontFamily:e.fontFamily,lineHeight:`${a}px`,transition:`all ${e.motionDurationSlow}`},"&-input":{width:`100%`,minWidth:4.1},"&-mirror":{position:`absolute`,top:0,insetInlineStart:0,insetInlineEnd:`auto`,zIndex:999,whiteSpace:`pre`,visibility:`hidden`}},[`${n}-selection-placeholder `]:{position:`absolute`,top:`50%`,insetInlineStart:e.inputPaddingHorizontalBase,insetInlineEnd:e.inputPaddingHorizontalBase,transform:`translateY(-50%)`,transition:`all ${e.motionDurationSlow}`}}}}function $_(e){let{componentCls:t}=e,n=B(e,{controlHeight:e.controlHeightSM,controlHeightSM:e.controlHeightXS,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS}),[,r]=Z_(e);return[Q_(e),Q_(n,`sm`),{[`${t}-multiple${t}-sm`]:{[`${t}-selection-placeholder`]:{insetInlineStart:e.controlPaddingHorizontalSM-e.lineWidth,insetInlineEnd:`auto`},[`${t}-selection-search`]:{marginInlineStart:r}}},Q_(B(e,{fontSize:e.fontSizeLG,controlHeight:e.controlHeightLG,controlHeightSM:e.controlHeight,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius}),`lg`)]}function ev(e,t){let{componentCls:n,inputPaddingHorizontalBase:r,borderRadius:i}=e,a=e.controlHeight-e.lineWidth*2,o=Math.ceil(e.fontSize*1.25);return{[`${n}-single${t?`${n}-${t}`:``}`]:{fontSize:e.fontSize,[`${n}-selector`]:Z(Z({},cn(e)),{display:`flex`,borderRadius:i,[`${n}-selection-search`]:{position:`absolute`,top:0,insetInlineStart:r,insetInlineEnd:r,bottom:0,"&-input":{width:`100%`}},[`
+ ${n}-selection-item,
+ ${n}-selection-placeholder
+ `]:{padding:0,lineHeight:`${a}px`,transition:`all ${e.motionDurationSlow}`,"@supports (-moz-appearance: meterbar)":{lineHeight:`${a}px`}},[`${n}-selection-item`]:{position:`relative`,userSelect:`none`},[`${n}-selection-placeholder`]:{transition:`none`,pointerEvents:`none`},[[`&:after`,`${n}-selection-item:after`,`${n}-selection-placeholder:after`].join(`,`)]:{display:`inline-block`,width:0,visibility:`hidden`,content:`"\\a0"`}}),[`
+ &${n}-show-arrow ${n}-selection-item,
+ &${n}-show-arrow ${n}-selection-placeholder
+ `]:{paddingInlineEnd:o},[`&${n}-open ${n}-selection-item`]:{color:e.colorTextPlaceholder},[`&:not(${n}-customize-input)`]:{[`${n}-selector`]:{width:`100%`,height:e.controlHeight,padding:`0 ${r}px`,[`${n}-selection-search-input`]:{height:a},"&:after":{lineHeight:`${a}px`}}},[`&${n}-customize-input`]:{[`${n}-selector`]:{"&:after":{display:`none`},[`${n}-selection-search`]:{position:`static`,width:`100%`},[`${n}-selection-placeholder`]:{position:`absolute`,insetInlineStart:0,insetInlineEnd:0,padding:`0 ${r}px`,"&:after":{display:`none`}}}}}}}function tv(e){let{componentCls:t}=e,n=e.controlPaddingHorizontalSM-e.lineWidth;return[ev(e),ev(B(e,{controlHeight:e.controlHeightSM,borderRadius:e.borderRadiusSM}),`sm`),{[`${t}-single${t}-sm`]:{[`&:not(${t}-customize-input)`]:{[`${t}-selection-search`]:{insetInlineStart:n,insetInlineEnd:n},[`${t}-selector`]:{padding:`0 ${n}px`},[`&${t}-show-arrow ${t}-selection-search`]:{insetInlineEnd:n+e.fontSize*1.5},[`
+ &${t}-show-arrow ${t}-selection-item,
+ &${t}-show-arrow ${t}-selection-placeholder
+ `]:{paddingInlineEnd:e.fontSize*1.5}}}},ev(B(e,{controlHeight:e.controlHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),`lg`)]}function nv(e,t,n){let{focusElCls:r,focus:i,borderElCls:a}=n,o=a?`> *`:``,s=[`hover`,i?`focus`:null,`active`].filter(Boolean).map(e=>`&:${e} ${o}`).join(`,`);return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:-e.lineWidth},"&-item":Z(Z({[s]:{zIndex:2}},r?{[`&${r}`]:{zIndex:2}}:{}),{[`&[disabled] ${o}`]:{zIndex:0}})}}function rv(e,t,n){let{borderElCls:r}=n,i=r?`> ${r}`:``;return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${i}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${i}, &${e}-sm ${i}, &${e}-lg ${i}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function iv(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0},{componentCls:n}=e,r=`${n}-compact`;return{[r]:Z(Z({},nv(e,r,t)),rv(n,r,t))}}var av=e=>{let{componentCls:t}=e;return{position:`relative`,backgroundColor:e.colorBgContainer,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,input:{cursor:`pointer`},[`${t}-show-search&`]:{cursor:`text`,input:{cursor:`auto`,color:`inherit`}},[`${t}-disabled&`]:{color:e.colorTextDisabled,background:e.colorBgContainerDisabled,cursor:`not-allowed`,[`${t}-multiple&`]:{background:e.colorBgContainerDisabled},input:{cursor:`not-allowed`}}}},ov=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0&&arguments[2],{componentCls:r,borderHoverColor:i,outlineColor:a,antCls:o}=t,s=n?{[`${r}-selector`]:{borderColor:i}}:{};return{[e]:{[`&:not(${r}-disabled):not(${r}-customize-input):not(${o}-pagination-size-changer)`]:Z(Z({},s),{[`${r}-focused& ${r}-selector`]:{borderColor:i,boxShadow:`0 0 0 ${t.controlOutlineWidth}px ${a}`,borderInlineEndWidth:`${t.controlLineWidth}px !important`,outline:0},[`&:hover ${r}-selector`]:{borderColor:i,borderInlineEndWidth:`${t.controlLineWidth}px !important`}})}}},sv=e=>{let{componentCls:t}=e;return{[`${t}-selection-search-input`]:{margin:0,padding:0,background:`transparent`,border:`none`,outline:`none`,appearance:`none`,"&::-webkit-search-cancel-button":{display:`none`,"-webkit-appearance":`none`}}}},cv=e=>{let{componentCls:t,inputPaddingHorizontalBase:n,iconCls:r}=e;return{[t]:Z(Z({},cn(e)),{position:`relative`,display:`inline-block`,cursor:`pointer`,[`&:not(${t}-customize-input) ${t}-selector`]:Z(Z({},av(e)),sv(e)),[`${t}-selection-item`]:Z({flex:1,fontWeight:`normal`},Te),[`${t}-selection-placeholder`]:Z(Z({},Te),{flex:1,color:e.colorTextPlaceholder,pointerEvents:`none`}),[`${t}-arrow`]:Z(Z({},u()),{position:`absolute`,top:`50%`,insetInlineStart:`auto`,insetInlineEnd:n,height:e.fontSizeIcon,marginTop:-e.fontSizeIcon/2,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,lineHeight:1,textAlign:`center`,pointerEvents:`none`,display:`flex`,alignItems:`center`,[r]:{verticalAlign:`top`,transition:`transform ${e.motionDurationSlow}`,"> svg":{verticalAlign:`top`},[`&:not(${t}-suffix)`]:{pointerEvents:`auto`}},[`${t}-disabled &`]:{cursor:`not-allowed`},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${t}-clear`]:{position:`absolute`,top:`50%`,insetInlineStart:`auto`,insetInlineEnd:n,zIndex:1,display:`inline-block`,width:e.fontSizeIcon,height:e.fontSizeIcon,marginTop:-e.fontSizeIcon/2,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,fontStyle:`normal`,lineHeight:1,textAlign:`center`,textTransform:`none`,background:e.colorBgContainer,cursor:`pointer`,opacity:0,transition:`color ${e.motionDurationMid} ease, opacity ${e.motionDurationSlow} ease`,textRendering:`auto`,"&:before":{display:`block`},"&:hover":{color:e.colorTextTertiary}},"&:hover":{[`${t}-clear`]:{opacity:1}}}),[`${t}-has-feedback`]:{[`${t}-clear`]:{insetInlineEnd:n+e.fontSize+e.paddingXXS}}}},lv=e=>{let{componentCls:t}=e;return[{[t]:{[`&-borderless ${t}-selector`]:{backgroundColor:`transparent !important`,borderColor:`transparent !important`,boxShadow:`none !important`},[`&${t}-in-form-item`]:{width:`100%`}}},cv(e),tv(e),$_(e),Y_(e),{[`${t}-rtl`]:{direction:`rtl`}},ov(t,B(e,{borderHoverColor:e.colorPrimaryHover,outlineColor:e.controlOutline})),ov(`${t}-status-error`,B(e,{borderHoverColor:e.colorErrorHover,outlineColor:e.colorErrorOutline}),!0),ov(`${t}-status-warning`,B(e,{borderHoverColor:e.colorWarningHover,outlineColor:e.colorWarningOutline}),!0),iv(e,{borderElCls:`${t}-selector`,focusElCls:`${t}-focused`})]},uv=S(`Select`,(e,t)=>{let{rootPrefixCls:n}=t;return[lv(B(e,{rootPrefixCls:n,inputPaddingHorizontalBase:e.paddingSM-1}))]},e=>({zIndexPopup:e.zIndexPopupBase+50})),dv=()=>Z(Z({},Pr(cf(),[`inputIcon`,`mode`,`getInputElement`,`getRawInputElement`,`backfill`])),{value:W([Array,Object,String,Number]),defaultValue:W([Array,Object,String,Number]),notFoundContent:g.any,suffixIcon:g.any,itemIcon:g.any,size:x(),mode:x(),bordered:Q(!0),transitionName:String,choiceTransitionName:x(``),popupClassName:String,dropdownClassName:String,placement:x(),status:x(),"onUpdate:value":h()}),fv=`SECRET_COMBOBOX_MODE_DO_NOT_USE`,pv=m({compatConfig:{MODE:3},name:`ASelect`,Option:df,OptGroup:ff,inheritAttrs:!1,props:Gn(dv(),{listHeight:256,listItemHeight:24}),SECRET_COMBOBOX_MODE_DO_NOT_USE:fv,slots:Object,setup(e,t){let{attrs:n,emit:r,slots:i,expose:a}=t,o=H(),s=Nf(),c=Ff.useInject(),l=J(()=>Rf(c.status,e.status)),u=()=>{var e;(e=o.value)==null||e.focus()},d=()=>{var e;(e=o.value)==null||e.blur()},f=e=>{var t;(t=o.value)==null||t.scrollTo(e)},p=J(()=>{let{mode:t}=e;if(t!==`combobox`)return t===fv?`combobox`:t}),{prefixCls:m,direction:h,configProvider:g,renderEmpty:_,size:v,getPrefixCls:y,getPopupContainer:b,disabled:x,select:S}=X(`select`,e),{compactSize:C,compactItemClassnames:w}=i_(m,h),T=J(()=>C.value||v.value),E=lt(),D=J(()=>x.value??E.value),[O,k]=uv(m),A=J(()=>y()),j=J(()=>e.placement===void 0?h.value===`rtl`?`bottomRight`:`bottomLeft`:e.placement),M=J(()=>en(A.value,ve(j.value),e.transitionName)),N=J(()=>K({[`${m.value}-lg`]:T.value===`large`,[`${m.value}-sm`]:T.value===`small`,[`${m.value}-rtl`]:h.value===`rtl`,[`${m.value}-borderless`]:!e.bordered,[`${m.value}-in-form-item`]:c.isFormItemInput},Lf(m.value,l.value,c.hasFeedback),w.value,k.value)),P=function(){var e=[...arguments];r(`update:value`,e[0]),r(`change`,...e),s.onFieldChange()},F=e=>{r(`blur`,e),s.onFieldBlur()};a({blur:d,focus:u,scrollTo:f});let I=J(()=>p.value===`multiple`||p.value===`tags`),L=J(()=>e.showArrow===void 0?e.loading||!(I.value||p.value===`combobox`):e.showArrow);return()=>{let{notFoundContent:t,listHeight:r=256,listItemHeight:a=24,popupClassName:l,dropdownClassName:u,virtual:d,dropdownMatchSelectWidth:f,id:v=s.id.value,placeholder:y=i.placeholder?.call(i),showArrow:x}=e,{hasFeedback:C,feedbackIcon:w}=c,{}=g,T;T=t===void 0?i.notFoundContent?i.notFoundContent():p.value===`combobox`?null:_?.(`Select`)||U(pt,{componentName:`Select`},null):t;let{suffixIcon:E,itemIcon:A,removeIcon:j,clearIcon:R}=Ef(Z(Z({},e),{multiple:I.value,prefixCls:m.value,hasFeedback:C,feedbackIcon:w,showArrow:L.value}),i),ee=Pr(e,[`prefixCls`,`suffixIcon`,`itemIcon`,`removeIcon`,`clearIcon`,`size`,`bordered`,`status`]),te=K(l||u,{[`${m.value}-dropdown-${h.value}`]:h.value===`rtl`},k.value);return O(U(pf,Y(Y(Y({ref:o,virtual:d,dropdownMatchSelectWidth:f},ee),n),{},{showSearch:e.showSearch??S?.value?.showSearch,placeholder:y,listHeight:r,listItemHeight:a,mode:p.value,prefixCls:m.value,direction:h.value,inputIcon:E,menuItemSelectedIcon:A,removeIcon:j,clearIcon:R,notFoundContent:T,class:[N.value,n.class],getPopupContainer:b?.value,dropdownClassName:te,onChange:P,onBlur:F,id:v,dropdownRender:ee.dropdownRender||i.dropdownRender,transitionName:M.value,children:i.default?.call(i),tagRender:e.tagRender||i.tagRender,optionLabelRender:i.optionLabel,maxTagPlaceholder:e.maxTagPlaceholder||i.maxTagPlaceholder,showArrow:C||x,disabled:D.value}),{option:i.option}))}}});pv.install=function(e){return e.component(pv.name,pv),e.component(pv.Option.displayName,pv.Option),e.component(pv.OptGroup.displayName,pv.OptGroup),e};var mv=pv.Option,hv=pv.OptGroup,gv=()=>null;gv.isSelectOption=!0,gv.displayName=`AAutoCompleteOption`;var _v=()=>null;_v.isSelectOptGroup=!0,_v.displayName=`AAutoCompleteOptGroup`;function vv(e){return e?.type?.isSelectOption||e?.type?.isSelectOptGroup}var yv=()=>Z(Z({},Pr(dv(),[`loading`,`mode`,`optionLabelProp`,`labelInValue`])),{dataSource:Array,dropdownMenuStyle:{type:Object,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},prefixCls:String,showSearch:{type:Boolean,default:void 0},transitionName:String,choiceTransitionName:{type:String,default:`zoom`},autofocus:{type:Boolean,default:void 0},backfill:{type:Boolean,default:void 0},filterOption:{type:[Boolean,Function],default:!1},defaultActiveFirstOption:{type:Boolean,default:!0},status:String}),bv=gv,xv=_v,Sv=m({compatConfig:{MODE:3},name:`AAutoComplete`,inheritAttrs:!1,props:yv(),slots:Object,setup(e,t){let{slots:n,attrs:r,expose:a}=t;i(!(`dataSource`in n),`AutoComplete`,"`dataSource` slot is deprecated, please use props `options` instead."),i(!(`options`in n),`AutoComplete`,"`options` slot is deprecated, please use props `options` instead."),i(!e.dropdownClassName,`AutoComplete`,"`dropdownClassName` is deprecated, please use `popupClassName` instead.");let o=H(),s=()=>{let e=fe(n.default?.call(n));return e.length?e[0]:void 0};a({focus:()=>{var e;(e=o.value)==null||e.focus()},blur:()=>{var e;(e=o.value)==null||e.blur()}});let{prefixCls:c}=X(`select`,e);return()=>{let{size:t,dataSource:i,notFoundContent:a=n.notFoundContent?.call(n)}=e,l,{class:u}=r,d={[u]:!!u,[`${c.value}-lg`]:t===`large`,[`${c.value}-sm`]:t===`small`,[`${c.value}-show-search`]:!0,[`${c.value}-auto-complete`]:!0};if(e.options===void 0){let e=n.dataSource?.call(n)||n.options?.call(n)||[];l=e.length&&vv(e[0])?e:i?i.map(e=>{if(Lt(e))return e;switch(typeof e){case`string`:return U(gv,{key:e,value:e},{default:()=>[e]});case`object`:return U(gv,{key:e.value,value:e.value},{default:()=>[e.text]});default:throw Error("AutoComplete[dataSource] only supports type `string[] | Object[]`.")}}):[]}return U(pv,Pr(Z(Z(Z({},e),r),{mode:pv.SECRET_COMBOBOX_MODE_DO_NOT_USE,getInputElement:s,notFoundContent:a,class:d,popupClassName:e.popupClassName||e.dropdownClassName,ref:o}),[`dataSource`,`loading`]),Y({default:()=>[l]},Pr(n,[`default`,`dataSource`,`options`])))}}}),Cv=Z(Sv,{Option:gv,OptGroup:_v,install(e){return e.component(Sv.name,Sv),e.component(gv.displayName,gv),e.component(_v.displayName,_v),e}}),wv=(e,t,n,r,i)=>({backgroundColor:e,border:`${r.lineWidth}px ${r.lineType} ${t}`,[`${i}-icon`]:{color:n}}),Tv=e=>{let{componentCls:t,motionDurationSlow:n,marginXS:r,marginSM:i,fontSize:a,fontSizeLG:o,lineHeight:s,borderRadiusLG:c,motionEaseInOutCirc:l,alertIconSizeLG:u,colorText:d,paddingContentVerticalSM:f,alertPaddingHorizontal:p,paddingMD:m,paddingContentHorizontalLG:h}=e;return{[t]:Z(Z({},cn(e)),{position:`relative`,display:`flex`,alignItems:`center`,padding:`${f}px ${p}px`,wordWrap:`break-word`,borderRadius:c,[`&${t}-rtl`]:{direction:`rtl`},[`${t}-content`]:{flex:1,minWidth:0},[`${t}-icon`]:{marginInlineEnd:r,lineHeight:0},"&-description":{display:`none`,fontSize:a,lineHeight:s},"&-message":{color:d},[`&${t}-motion-leave`]:{overflow:`hidden`,opacity:1,transition:`max-height ${n} ${l}, opacity ${n} ${l},
+ padding-top ${n} ${l}, padding-bottom ${n} ${l},
+ margin-bottom ${n} ${l}`},[`&${t}-motion-leave-active`]:{maxHeight:0,marginBottom:`0 !important`,paddingTop:0,paddingBottom:0,opacity:0}}),[`${t}-with-description`]:{alignItems:`flex-start`,paddingInline:h,paddingBlock:m,[`${t}-icon`]:{marginInlineEnd:i,fontSize:u,lineHeight:0},[`${t}-message`]:{display:`block`,marginBottom:r,color:d,fontSize:o},[`${t}-description`]:{display:`block`}},[`${t}-banner`]:{marginBottom:0,border:`0 !important`,borderRadius:0}}},Ev=e=>{let{componentCls:t,colorSuccess:n,colorSuccessBorder:r,colorSuccessBg:i,colorWarning:a,colorWarningBorder:o,colorWarningBg:s,colorError:c,colorErrorBorder:l,colorErrorBg:u,colorInfo:d,colorInfoBorder:f,colorInfoBg:p}=e;return{[t]:{"&-success":wv(i,r,n,e,t),"&-info":wv(p,f,d,e,t),"&-warning":wv(s,o,a,e,t),"&-error":Z(Z({},wv(u,l,c,e,t)),{[`${t}-description > pre`]:{margin:0,padding:0}})}}},Dv=e=>{let{componentCls:t,iconCls:n,motionDurationMid:r,marginXS:i,fontSizeIcon:a,colorIcon:o,colorIconHover:s}=e;return{[t]:{"&-action":{marginInlineStart:i},[`${t}-close-icon`]:{marginInlineStart:i,padding:0,overflow:`hidden`,fontSize:a,lineHeight:`${a}px`,backgroundColor:`transparent`,border:`none`,outline:`none`,cursor:`pointer`,[`${n}-close`]:{color:o,transition:`color ${r}`,"&:hover":{color:s}}},"&-close-text":{color:o,transition:`color ${r}`,"&:hover":{color:s}}}}},Ov=e=>[Tv(e),Ev(e),Dv(e)],kv=S(`Alert`,e=>{let{fontSizeHeading3:t}=e;return[Ov(B(e,{alertIconSizeLG:t,alertPaddingHorizontal:12}))]}),Av={success:Ze,info:vt,error:at,warning:Jt},jv={success:st,info:Mt,error:nt,warning:xt},Mv=v(`success`,`info`,`warning`,`error`),Nv=l(m({compatConfig:{MODE:3},name:`AAlert`,inheritAttrs:!1,props:{type:g.oneOf(Mv),closable:{type:Boolean,default:void 0},closeText:g.any,message:g.any,description:g.any,afterClose:Function,showIcon:{type:Boolean,default:void 0},prefixCls:String,banner:{type:Boolean,default:void 0},icon:g.any,closeIcon:g.any,onClose:Function},setup(e,t){let{slots:n,emit:r,attrs:i,expose:a}=t,{prefixCls:o,direction:s}=X(`alert`,e),[c,l]=kv(o),u=q(!1),d=q(!1),f=q(),p=e=>{e.preventDefault();let t=f.value;t.style.height=`${t.offsetHeight}px`,t.style.height=`${t.offsetHeight}px`,u.value=!0,r(`close`,e)},m=()=>{var t;u.value=!1,d.value=!0,(t=e.afterClose)==null||t.call(e)},h=J(()=>{let{type:t}=e;return t===void 0?e.banner?`warning`:`info`:t});a({animationEnd:m});let g=q({});return()=>{let{banner:t,closeIcon:r=n.closeIcon?.call(n)}=e,{closable:a,showIcon:_}=e,v=e.closeText??n.closeText?.call(n),y=e.description??n.description?.call(n),b=e.message??n.message?.call(n),x=e.icon??n.icon?.call(n),S=n.action?.call(n);_=t&&_===void 0?!0:_;let C=(y?jv:Av)[h.value]||null;v&&(a=!0);let w=o.value,T=K(w,{[`${w}-${h.value}`]:!0,[`${w}-closing`]:u.value,[`${w}-with-description`]:!!y,[`${w}-no-icon`]:!_,[`${w}-banner`]:!!t,[`${w}-closable`]:a,[`${w}-rtl`]:s.value===`rtl`,[l.value]:!0}),E=a?U(`button`,{type:`button`,onClick:p,class:`${w}-close-icon`,tabindex:0},[v?U(`span`,{class:`${w}-close-text`},[v]):r===void 0?U(Re,null,null):r]):null,D=x&&(Lt(x)?$a(x,{class:`${w}-icon`}):U(`span`,{class:`${w}-icon`},[x]))||U(C,{class:`${w}-icon`},null),O=be(`${w}-motion`,{appear:!1,css:!0,onAfterLeave:m,onBeforeLeave:e=>{e.style.maxHeight=`${e.offsetHeight}px`},onLeave:e=>{e.style.maxHeight=`0px`}});return c(d.value?null:U(He,O,{default:()=>[It(U(`div`,Y(Y({role:`alert`},i),{},{style:[i.style,g.value],class:[i.class,T],"data-show":!u.value,ref:f}),[_?D:null,U(`div`,{class:`${w}-content`},[b?U(`div`,{class:`${w}-message`},[b]):null,y?U(`div`,{class:`${w}-description`},[y]):null]),S?U(`div`,{class:`${w}-action`},[S]):null,E]),[[yt,!u.value]])]}))}}})),Pv=[`xxxl`,`xxl`,`xl`,`lg`,`md`,`sm`,`xs`],Fv=e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`,xxxl:`{min-width: ${e.screenXXXL}px}`});function Iv(){let[,e]=oe();return J(()=>{let t=Fv(e.value),n=new Map,r=-1,i={};return{matchHandlers:{},dispatch(e){return i=e,n.forEach(e=>e(i)),n.size>=1},subscribe(e){return n.size||this.register(),r+=1,n.set(r,e),e(i),r},unsubscribe(e){n.delete(e),n.size||this.unregister()},unregister(){Object.keys(t).forEach(e=>{let n=t[e],r=this.matchHandlers[n];r?.mql.removeListener(r?.listener)}),n.clear()},register(){Object.keys(t).forEach(e=>{let n=t[e],r=t=>{let{matches:n}=t;this.dispatch(Z(Z({},i),{[e]:n}))},a=window.matchMedia(n);a.addListener(r),this.matchHandlers[n]={mql:a,listener:r},r(a)})},responsiveMap:t}})}function Lv(){let e=q({}),t=null,n=Iv();return V(()=>{t=n.value.subscribe(t=>{e.value=t})}),C(()=>{n.value.unsubscribe(t)}),e}function Rv(e){let t=q();return E(()=>{t.value=e()},{flush:`sync`}),t}var zv=e=>{let{antCls:t,componentCls:n,iconCls:r,avatarBg:i,avatarColor:a,containerSize:o,containerSizeLG:s,containerSizeSM:c,textFontSize:l,textFontSizeLG:u,textFontSizeSM:d,borderRadius:f,borderRadiusLG:p,borderRadiusSM:m,lineWidth:h,lineType:g}=e,_=(e,t,i)=>({width:e,height:e,lineHeight:`${e-h*2}px`,borderRadius:`50%`,[`&${n}-square`]:{borderRadius:i},[`${n}-string`]:{position:`absolute`,left:{_skip_check_:!0,value:`50%`},transformOrigin:`0 center`},[`&${n}-icon`]:{fontSize:t,[`> ${r}`]:{margin:0}}});return{[n]:Z(Z(Z(Z({},cn(e)),{position:`relative`,display:`inline-block`,overflow:`hidden`,color:a,whiteSpace:`nowrap`,textAlign:`center`,verticalAlign:`middle`,background:i,border:`${h}px ${g} transparent`,"&-image":{background:`transparent`},[`${t}-image-img`]:{display:`block`}}),_(o,l,f)),{"&-lg":Z({},_(s,u,p)),"&-sm":Z({},_(c,d,m)),"> img":{display:`block`,width:`100%`,height:`100%`,objectFit:`cover`}})}},Bv=e=>{let{componentCls:t,groupBorderColor:n,groupOverlapping:r,groupSpace:i}=e;return{[`${t}-group`]:{display:`inline-flex`,[`${t}`]:{borderColor:n},"> *:not(:first-child)":{marginInlineStart:r}},[`${t}-group-popover`]:{[`${t} + ${t}`]:{marginInlineStart:i}}}},Vv=S(`Avatar`,e=>{let{colorTextLightSolid:t,colorTextPlaceholder:n}=e,r=B(e,{avatarBg:n,avatarColor:t});return[zv(r),Bv(r)]},e=>{let{controlHeight:t,controlHeightLG:n,controlHeightSM:r,fontSize:i,fontSizeLG:a,fontSizeXL:o,fontSizeHeading3:s,marginXS:c,marginXXS:l,colorBorderBg:u}=e;return{containerSize:t,containerSizeLG:n,containerSizeSM:r,textFontSize:Math.round((a+o)/2),textFontSizeLG:s,textFontSizeSM:i,groupSpace:l,groupOverlapping:-c,groupBorderColor:u}}),Hv=Symbol(`AvatarContextKey`),Uv=()=>b(Hv,{}),Wv=e=>ge(Hv,e),Gv=m({compatConfig:{MODE:3},name:`AAvatar`,inheritAttrs:!1,props:{prefixCls:String,shape:{type:String,default:`circle`},size:{type:[Number,String,Object],default:()=>`default`},src:String,srcset:String,icon:g.any,alt:String,gap:Number,draggable:{type:Boolean,default:void 0},crossOrigin:String,loadError:{type:Function}},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,i=q(!0),a=q(!1),o=q(1),s=q(null),c=q(null),{prefixCls:l}=X(`avatar`,e),[u,d]=Vv(l),f=Uv(),p=J(()=>e.size==="default"?f.size:e.size),m=Lv(),h=Rv(()=>{if(typeof e.size!=`object`)return;let t=Pv.find(e=>m.value[e]);return e.size[t]}),g=e=>h.value?{width:`${h.value}px`,height:`${h.value}px`,lineHeight:`${h.value}px`,fontSize:`${e?h.value/2:18}px`}:{},_=()=>{if(!s.value||!c.value)return;let t=s.value.offsetWidth,n=c.value.offsetWidth;if(t!==0&&n!==0){let{gap:r=4}=e;r*2{let{loadError:t}=e;t?.()!==!1&&(i.value=!1)};return G(()=>e.src,()=>{ue(()=>{i.value=!0,o.value=1})}),G(()=>e.gap,()=>{ue(()=>{_()})}),V(()=>{ue(()=>{_(),a.value=!0})}),()=>{let{shape:t,src:m,alt:h,srcset:y,draggable:b,crossOrigin:x}=e,S=f.shape??t,C=un(n,e,`icon`),w=l.value,T={[`${r.class}`]:!!r.class,[w]:!0,[`${w}-lg`]:p.value===`large`,[`${w}-sm`]:p.value===`small`,[`${w}-${S}`]:!0,[`${w}-image`]:m&&i.value,[`${w}-icon`]:C,[d.value]:!0},E=typeof p.value==`number`?{width:`${p.value}px`,height:`${p.value}px`,lineHeight:`${p.value}px`,fontSize:C?`${p.value/2}px`:`18px`}:{},D=n.default?.call(n),O;if(m&&i.value)O=U(`img`,{draggable:b,src:m,srcset:y,onError:v,alt:h,crossorigin:x},null);else if(C)O=C;else if(a.value||o.value!==1){let e=`scale(${o.value}) translateX(-50%)`,t={msTransform:e,WebkitTransform:e,transform:e},n=typeof p.value==`number`?{lineHeight:`${p.value}px`}:{};O=U(Kn,{onResize:_},{default:()=>[U(`span`,{class:`${w}-string`,ref:s,style:Z(Z({},n),t)},[D])]})}else O=U(`span`,{class:`${w}-string`,ref:s,style:{opacity:0}},[D]);return u(U(`span`,Y(Y({},r),{},{ref:c,class:T,style:[E,g(!!C),r.style]}),[O]))}}}),Kv={adjustX:1,adjustY:1},qv=[0,0],Jv={left:{points:[`cr`,`cl`],overflow:Kv,offset:[-4,0],targetOffset:qv},right:{points:[`cl`,`cr`],overflow:Kv,offset:[4,0],targetOffset:qv},top:{points:[`bc`,`tc`],overflow:Kv,offset:[0,-4],targetOffset:qv},bottom:{points:[`tc`,`bc`],overflow:Kv,offset:[0,4],targetOffset:qv},topLeft:{points:[`bl`,`tl`],overflow:Kv,offset:[0,-4],targetOffset:qv},leftTop:{points:[`tr`,`tl`],overflow:Kv,offset:[-4,0],targetOffset:qv},topRight:{points:[`br`,`tr`],overflow:Kv,offset:[0,-4],targetOffset:qv},rightTop:{points:[`tl`,`tr`],overflow:Kv,offset:[4,0],targetOffset:qv},bottomRight:{points:[`tr`,`br`],overflow:Kv,offset:[0,4],targetOffset:qv},rightBottom:{points:[`bl`,`br`],overflow:Kv,offset:[4,0],targetOffset:qv},bottomLeft:{points:[`tl`,`bl`],overflow:Kv,offset:[0,4],targetOffset:qv},leftBottom:{points:[`br`,`bl`],overflow:Kv,offset:[-4,0],targetOffset:qv}},Yv=m({compatConfig:{MODE:3},name:`TooltipContent`,props:{prefixCls:String,id:String,overlayInnerStyle:g.any},setup(e,t){let{slots:n}=t;return()=>U(`div`,{class:`${e.prefixCls}-inner`,id:e.id,role:`tooltip`,style:e.overlayInnerStyle},[n.overlay?.call(n)])}}),Xv=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{}),overlayStyle:{type:Object,default:void 0},overlayClassName:String,prefixCls:g.string.def(`rc-tooltip`),mouseEnterDelay:g.number.def(.1),mouseLeaveDelay:g.number.def(.1),getPopupContainer:Function,destroyTooltipOnHide:{type:Boolean,default:!1},align:g.object.def(()=>({})),arrowContent:g.any.def(null),tipId:String,builtinPlacements:g.object,overlayInnerStyle:{type:Object,default:void 0},popupVisible:{type:Boolean,default:void 0},onVisibleChange:Function,onPopupAlign:Function,arrow:{type:Boolean,default:!0}},setup(e,t){let{slots:n,attrs:r,expose:i}=t,a=q(),o=()=>{let{prefixCls:t,tipId:r,overlayInnerStyle:i}=e;return[e.arrow?U(`div`,{class:`${t}-arrow`,key:`arrow`},[un(n,e,`arrowContent`)]):null,U(Yv,{key:`content`,prefixCls:t,id:r,overlayInnerStyle:i},{overlay:n.overlay})]};i({getPopupDomNode:()=>a.value.getPopupDomNode(),triggerDOM:a,forcePopupAlign:()=>a.value?.forcePopupAlign()});let s=q(!1),c=q(!1);return E(()=>{let{destroyTooltipOnHide:t}=e;if(typeof t==`boolean`)s.value=t;else if(t&&typeof t==`object`){let{keepParent:e}=t;s.value=e===!0,c.value=e===!1}}),()=>{let{overlayClassName:t,trigger:i,mouseEnterDelay:l,mouseLeaveDelay:u,overlayStyle:d,prefixCls:f,afterVisibleChange:p,transitionName:m,animation:h,placement:g,align:_,destroyTooltipOnHide:v,defaultVisible:y}=e,b=Z({},Xv(e,[`overlayClassName`,`trigger`,`mouseEnterDelay`,`mouseLeaveDelay`,`overlayStyle`,`prefixCls`,`afterVisibleChange`,`transitionName`,`animation`,`placement`,`align`,`destroyTooltipOnHide`,`defaultVisible`]));return e.visible!==void 0&&(b.popupVisible=e.visible),U(gu,Z(Z(Z({popupClassName:t,prefixCls:f,action:i,builtinPlacements:Jv,popupPlacement:g,popupAlign:_,afterPopupVisibleChange:p,popupTransitionName:m,popupAnimation:h,defaultPopupVisible:y,destroyPopupOnHide:s.value,autoDestroy:c.value,mouseLeaveDelay:u,popupStyle:d,mouseEnterDelay:l},b),r),{onPopupVisibleChange:e.onVisibleChange||Zv,onPopupAlign:e.onPopupAlign||Zv,ref:a,arrow:!!e.arrow,popup:o()}),{default:n.default})}}}),$v=(()=>({trigger:[String,Array],open:{type:Boolean,default:void 0},visible:{type:Boolean,default:void 0},placement:String,color:String,transitionName:String,overlayStyle:nn(),overlayInnerStyle:nn(),overlayClassName:String,openClassName:String,prefixCls:String,mouseEnterDelay:Number,mouseLeaveDelay:Number,getPopupContainer:Function,arrowPointAtCenter:{type:Boolean,default:void 0},arrow:{type:[Boolean,Object],default:!0},autoAdjustOverflow:{type:[Boolean,Object],default:void 0},destroyTooltipOnHide:{type:Boolean,default:void 0},align:nn(),builtinPlacements:nn(),children:Array,onVisibleChange:Function,"onUpdate:visible":Function,onOpenChange:Function,"onUpdate:open":Function})),ey={adjustX:1,adjustY:1},ty={adjustX:0,adjustY:0},ny=[0,0];function ry(e){return typeof e==`boolean`?e?ey:ty:Z(Z({},ty),e)}function iy(e){let{arrowWidth:t=4,horizontalArrowShift:n=16,verticalArrowShift:r=8,autoAdjustOverflow:i,arrowPointAtCenter:a}=e,o={left:{points:[`cr`,`cl`],offset:[-4,0]},right:{points:[`cl`,`cr`],offset:[4,0]},top:{points:[`bc`,`tc`],offset:[0,-4]},bottom:{points:[`tc`,`bc`],offset:[0,4]},topLeft:{points:[`bl`,`tc`],offset:[-(n+t),-4]},leftTop:{points:[`tr`,`cl`],offset:[-4,-(r+t)]},topRight:{points:[`br`,`tc`],offset:[n+t,-4]},rightTop:{points:[`tl`,`cr`],offset:[4,-(r+t)]},bottomRight:{points:[`tr`,`bc`],offset:[n+t,4]},rightBottom:{points:[`bl`,`cr`],offset:[4,r+t]},bottomLeft:{points:[`tl`,`bc`],offset:[-(n+t),4]},leftBottom:{points:[`br`,`cl`],offset:[-4,r+t]}};return Object.keys(o).forEach(e=>{o[e]=a?Z(Z({},o[e]),{overflow:ry(i),targetOffset:ny}):Z(Z({},Jv[e]),{overflow:ry(i)}),o[e].ignoreShake=!0}),o}function ay(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(let t=0,n=e.length;t`${e}-inverse`),sy=[`success`,`processing`,`error`,`default`,`warning`];function cy(e){return!(arguments.length>1&&arguments[1]!==void 0)||arguments[1]?[...oy,...Ar].includes(e):Ar.includes(e)}function ly(e){return sy.includes(e)}function uy(e,t){let n=cy(t),r=K({[`${e}-${t}`]:t&&n}),i={},a={};return t&&!n&&(i.background=t,a[`--antd-arrow-background-color`]=t),{className:r,overlayStyle:i,arrowStyle:a}}function dy(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``;return e.map(e=>`${t}${e}`).join(`,`)}function fy(e){let{sizePopupArrow:t,contentRadius:n,borderRadiusOuter:r,limitVerticalRadius:i}=e,a=t/2-Math.ceil(r*(Math.sqrt(2)-1)),o=(n>12?n+2:12)-a;return{dropdownArrowOffset:o,dropdownArrowOffsetVertical:i?8-a:o}}function py(e,t){let{componentCls:n,sizePopupArrow:r,marginXXS:i,borderRadiusXS:a,borderRadiusOuter:o,boxShadowPopoverArrow:s}=e,{colorBg:c,showArrowCls:l,contentRadius:u=e.borderRadiusLG,limitVerticalRadius:d}=t,{dropdownArrowOffsetVertical:f,dropdownArrowOffset:p}=fy({sizePopupArrow:r,contentRadius:u,borderRadiusOuter:o,limitVerticalRadius:d}),m=r/2+i;return{[n]:{[`${n}-arrow`]:[Z(Z({position:`absolute`,zIndex:1,display:`block`},Mr(r,a,o,c,s)),{"&:before":{background:c}})],[[`&-placement-top ${n}-arrow`,`&-placement-topLeft ${n}-arrow`,`&-placement-topRight ${n}-arrow`].join(`,`)]:{bottom:0,transform:`translateY(100%) rotate(180deg)`},[`&-placement-top ${n}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(100%) rotate(180deg)`},[`&-placement-topLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:p}},[`&-placement-topRight ${n}-arrow`]:{right:{_skip_check_:!0,value:p}},[[`&-placement-bottom ${n}-arrow`,`&-placement-bottomLeft ${n}-arrow`,`&-placement-bottomRight ${n}-arrow`].join(`,`)]:{top:0,transform:`translateY(-100%)`},[`&-placement-bottom ${n}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(-100%)`},[`&-placement-bottomLeft ${n}-arrow`]:{left:{_skip_check_:!0,value:p}},[`&-placement-bottomRight ${n}-arrow`]:{right:{_skip_check_:!0,value:p}},[[`&-placement-left ${n}-arrow`,`&-placement-leftTop ${n}-arrow`,`&-placement-leftBottom ${n}-arrow`].join(`,`)]:{right:{_skip_check_:!0,value:0},transform:`translateX(100%) rotate(90deg)`},[`&-placement-left ${n}-arrow`]:{top:{_skip_check_:!0,value:`50%`},transform:`translateY(-50%) translateX(100%) rotate(90deg)`},[`&-placement-leftTop ${n}-arrow`]:{top:f},[`&-placement-leftBottom ${n}-arrow`]:{bottom:f},[[`&-placement-right ${n}-arrow`,`&-placement-rightTop ${n}-arrow`,`&-placement-rightBottom ${n}-arrow`].join(`,`)]:{left:{_skip_check_:!0,value:0},transform:`translateX(-100%) rotate(-90deg)`},[`&-placement-right ${n}-arrow`]:{top:{_skip_check_:!0,value:`50%`},transform:`translateY(-50%) translateX(-100%) rotate(-90deg)`},[`&-placement-rightTop ${n}-arrow`]:{top:f},[`&-placement-rightBottom ${n}-arrow`]:{bottom:f},[dy([`&-placement-topLeft`,`&-placement-top`,`&-placement-topRight`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingBottom:m},[dy([`&-placement-bottomLeft`,`&-placement-bottom`,`&-placement-bottomRight`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingTop:m},[dy([`&-placement-leftTop`,`&-placement-left`,`&-placement-leftBottom`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingRight:{_skip_check_:!0,value:m}},[dy([`&-placement-rightTop`,`&-placement-right`,`&-placement-rightBottom`].map(e=>e+=`:not(&-arrow-hidden)`),l)]:{paddingLeft:{_skip_check_:!0,value:m}}}}}var my=e=>{let{componentCls:t,tooltipMaxWidth:n,tooltipColor:r,tooltipBg:i,tooltipBorderRadius:a,zIndexPopup:o,controlHeight:s,boxShadowSecondary:c,paddingSM:l,paddingXS:u,tooltipRadiusOuter:d}=e;return[{[t]:Z(Z(Z(Z({},cn(e)),{position:`absolute`,zIndex:o,display:`block`,"&":[{width:`max-content`},{width:`intrinsic`}],maxWidth:n,visibility:`visible`,"&-hidden":{display:`none`},"--antd-arrow-background-color":i,[`${t}-inner`]:{minWidth:s,minHeight:s,padding:`${l/2}px ${u}px`,color:r,textAlign:`start`,textDecoration:`none`,wordWrap:`break-word`,backgroundColor:i,borderRadius:a,boxShadow:c},[[`&-placement-left`,`&-placement-leftTop`,`&-placement-leftBottom`,`&-placement-right`,`&-placement-rightTop`,`&-placement-rightBottom`].join(`,`)]:{[`${t}-inner`]:{borderRadius:Math.min(a,8)}},[`${t}-content`]:{position:`relative`}}),Nr(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t}-${e}`]:{[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{"--antd-arrow-background-color":r}}}})),{"&-rtl":{direction:`rtl`}})},py(B(e,{borderRadiusOuter:d}),{colorBg:`var(--antd-arrow-background-color)`,showArrowCls:``,contentRadius:a,limitVerticalRadius:!0}),{[`${t}-pure`]:{position:`relative`,maxWidth:`none`}}]},hy=((e,t)=>S(`Tooltip`,e=>{if(t?.value===!1)return[];let{borderRadius:n,colorTextLightSolid:r,colorBgDefault:i,borderRadiusOuter:a}=e;return[my(B(e,{tooltipMaxWidth:250,tooltipColor:r,tooltipBorderRadius:n,tooltipBg:i,tooltipRadiusOuter:a>4?4:a})),K_(e,`zoom-big-fast`)]},e=>{let{zIndexPopupBase:t,colorBgSpotlight:n}=e;return{zIndexPopup:t+70,colorBgDefault:n}})(e)),gy=(e,t)=>{let n={},r=Z({},e);return t.forEach(t=>{e&&t in e&&(n[t]=e[t],delete r[t])}),{picked:n,omitted:r}},_y=()=>Z(Z({},$v()),{title:g.any}),vy=()=>({trigger:`hover`,align:{},placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0}),yy=l(m({compatConfig:{MODE:3},name:`ATooltip`,inheritAttrs:!1,props:Gn(_y(),{trigger:`hover`,align:{},placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0}),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i,expose:a}=t,{prefixCls:o,getPopupContainer:s,direction:c,rootPrefixCls:l}=X(`tooltip`,e),u=J(()=>e.open??e.visible),d=H(ay([e.open,e.visible])),f=H(),p;G(u,e=>{Qn.cancel(p),p=Qn(()=>{d.value=!!e})});let m=()=>{let t=e.title??n.title;return!t&&t!==0},h=e=>{let t=m();u.value===void 0&&(d.value=!t&&e),t||(r(`update:visible`,e),r(`visibleChange`,e),r(`update:open`,e),r(`openChange`,e))};a({getPopupDomNode:()=>f.value.getPopupDomNode(),open:d,forcePopupAlign:()=>f.value?.forcePopupAlign()});let g=J(()=>{let{builtinPlacements:t,autoAdjustOverflow:n,arrow:r,arrowPointAtCenter:i}=e,a=i;return typeof r==`object`&&(a=r.pointAtCenter??i),t||iy({arrowPointAtCenter:a,autoAdjustOverflow:n})}),_=e=>e||e===``,v=e=>{let t=e.type;if(typeof t==`object`&&e.props&&((t.__ANT_BUTTON===!0||t===`button`)&&_(e.props.disabled)||t.__ANT_SWITCH===!0&&(_(e.props.disabled)||_(e.props.loading))||t.__ANT_RADIO===!0&&_(e.props.disabled))){let{picked:t,omitted:n}=gy(De(e),[`position`,`left`,`right`,`top`,`bottom`,`float`,`display`,`zIndex`]),r=Z(Z({display:`inline-block`},t),{cursor:`not-allowed`,lineHeight:1,width:e.props&&e.props.block?`100%`:void 0}),i=$a(e,{style:Z(Z({},n),{pointerEvents:`none`})},!0);return U(`span`,{style:r,class:`${o.value}-disabled-compatible-wrapper`},[i])}return e},y=()=>e.title??n.title?.call(n),b=(e,t)=>{let n=g.value,r=Object.keys(n).find(e=>n[e].points[0]===t.points?.[0]&&n[e].points[1]===t.points?.[1]);if(r){let n=e.getBoundingClientRect(),i={top:`50%`,left:`50%`};r.indexOf(`top`)>=0||r.indexOf(`Bottom`)>=0?i.top=`${n.height-t.offset[1]}px`:(r.indexOf(`Top`)>=0||r.indexOf(`bottom`)>=0)&&(i.top=`${-t.offset[1]}px`),r.indexOf(`left`)>=0||r.indexOf(`Right`)>=0?i.left=`${n.width-t.offset[0]}px`:(r.indexOf(`right`)>=0||r.indexOf(`Left`)>=0)&&(i.left=`${-t.offset[0]}px`),e.style.transformOrigin=`${i.left} ${i.top}`}},x=J(()=>uy(o.value,e.color)),S=J(()=>i[`data-popover-inject`]),[C,w]=hy(o,J(()=>!S.value));return()=>{let{openClassName:t,overlayClassName:r,overlayStyle:a,overlayInnerStyle:p}=e,_=ht(n.default?.call(n))??null;_=_.length===1?_[0]:_;let S=d.value;if(u.value===void 0&&m()&&(S=!1),!_)return null;let T=v(Lt(_)&&!D(_)?_:U(`span`,null,[_])),E=K({[t||`${o.value}-open`]:!0,[T.props&&T.props.class]:T.props&&T.props.class}),O=K(r,{[`${o.value}-rtl`]:c.value===`rtl`},x.value.className,w.value),k=Z(Z({},x.value.overlayStyle),p),A=x.value.arrowStyle,j=Z(Z(Z({},i),e),{prefixCls:o.value,arrow:!!e.arrow,getPopupContainer:s?.value,builtinPlacements:g.value,visible:S,ref:f,overlayClassName:O,overlayStyle:Z(Z({},A),a),overlayInnerStyle:k,onVisibleChange:h,onPopupAlign:b,transitionName:en(l.value,`zoom-big-fast`,e.transitionName)});return C(U(Qv,j,{default:()=>[d.value?$a(T,{class:E}):T],arrowContent:()=>U(`span`,{class:`${o.value}-arrow-content`},null),overlay:y}))}}})),by=e=>{let{componentCls:t,popoverBg:n,popoverColor:r,width:i,fontWeightStrong:a,popoverPadding:o,boxShadowSecondary:s,colorTextHeading:c,borderRadiusLG:l,zIndexPopup:u,marginXS:d,colorBgElevated:f}=e;return[{[t]:Z(Z({},cn(e)),{position:`absolute`,top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:`normal`,whiteSpace:`normal`,textAlign:`start`,cursor:`auto`,userSelect:`text`,"--antd-arrow-background-color":f,"&-rtl":{direction:`rtl`},"&-hidden":{display:`none`},[`${t}-content`]:{position:`relative`},[`${t}-inner`]:{backgroundColor:n,backgroundClip:`padding-box`,borderRadius:l,boxShadow:s,padding:o},[`${t}-title`]:{minWidth:i,marginBottom:d,color:c,fontWeight:a},[`${t}-inner-content`]:{color:r}})},py(e,{colorBg:`var(--antd-arrow-background-color)`}),{[`${t}-pure`]:{position:`relative`,maxWidth:`none`,[`${t}-content`]:{display:`inline-block`}}}]},xy=e=>{let{componentCls:t}=e;return{[t]:Ar.map(n=>{let r=e[`${n}-6`];return{[`&${t}-${n}`]:{"--antd-arrow-background-color":r,[`${t}-inner`]:{backgroundColor:r},[`${t}-arrow`]:{background:`transparent`}}}})}},Sy=e=>{let{componentCls:t,lineWidth:n,lineType:r,colorSplit:i,paddingSM:a,controlHeight:o,fontSize:s,lineHeight:c,padding:l}=e,u=o-Math.round(s*c),d=u/2,f=u/2-n,p=l;return{[t]:{[`${t}-inner`]:{padding:0},[`${t}-title`]:{margin:0,padding:`${d}px ${p}px ${f}px`,borderBottom:`${n}px ${r} ${i}`},[`${t}-inner-content`]:{padding:`${a}px ${p}px`}}}},Cy=S(`Popover`,e=>{let{colorBgElevated:t,colorText:n,wireframe:r}=e,i=B(e,{popoverBg:t,popoverColor:n,popoverPadding:12});return[by(i),xy(i),r&&Sy(i),K_(i,`zoom-big`)]},e=>{let{zIndexPopupBase:t}=e;return{zIndexPopup:t+30,width:177}}),wy=l(m({compatConfig:{MODE:3},name:`APopover`,inheritAttrs:!1,props:Gn(Z(Z({},$v()),{content:sn(),title:sn()}),Z(Z({},vy()),{trigger:`hover`,placement:`top`,mouseEnterDelay:.1,mouseLeaveDelay:.1})),setup(e,t){let{expose:n,slots:r,attrs:a}=t,o=H();i(e.visible===void 0,`popover`,"`visible` will be removed in next major version, please use `open` instead."),n({getPopupDomNode:()=>{var e;return((e=o.value)?.getPopupDomNode)?.call(e)}});let{prefixCls:s,configProvider:c}=X(`popover`,e),[l,u]=Cy(s),d=J(()=>c.getPrefixCls()),f=()=>{let{title:t=ht(r.title?.call(r)),content:n=ht(r.content?.call(r))}=e,i=!!(Array.isArray(t)?t.length:t),a=!!(Array.isArray(n)?n.length:t);return!i&&!a?null:U(rt,null,[i&&U(`div`,{class:`${s.value}-title`},[t]),U(`div`,{class:`${s.value}-inner-content`},[n])])};return()=>{let t=K(e.overlayClassName,u.value);return l(U(yy,Y(Y(Y({},Pr(e,[`title`,`content`])),a),{},{prefixCls:s.value,ref:o,overlayClassName:t,transitionName:en(d.value,`zoom-big`,e.transitionName),"data-popover-inject":!0}),{title:f,default:r.default}))}}})),Ty=m({compatConfig:{MODE:3},name:`AAvatarGroup`,inheritAttrs:!1,props:{prefixCls:String,maxCount:Number,maxStyle:{type:Object,default:void 0},maxPopoverPlacement:{type:String,default:`top`},maxPopoverTrigger:String,size:{type:[Number,String,Object],default:`default`},shape:{type:String,default:`circle`}},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=X(`avatar`,e),o=J(()=>`${i.value}-group`),[s,c]=Vv(i);return E(()=>{Wv({size:e.size,shape:e.shape})}),()=>{let{maxPopoverPlacement:t=`top`,maxCount:i,maxStyle:l,maxPopoverTrigger:u=`hover`,shape:d}=e,f={[o.value]:!0,[`${o.value}-rtl`]:a.value===`rtl`,[`${r.class}`]:!!r.class,[c.value]:!0},p=fe(un(n,e)).map((e,t)=>$a(e,{key:`avatar-key-${t}`})),m=p.length;if(i&&i[U(Gv,{style:l,shape:d},{default:()=>[`+${m-i}`]})]})),s(U(`div`,Y(Y({},r),{},{class:f,style:r.style}),[e]))}return s(U(`div`,Y(Y({},r),{},{class:f,style:r.style}),[p]))}}});Gv.Group=Ty,Gv.install=function(e){return e.component(Gv.name,Gv),e.component(Ty.name,Ty),e};var Ey=Gv;function Dy(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),U(`p`,{style:a,class:K(`${t}-only-unit`,{current:r})},[n])}function Oy(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var ky=m({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=J(()=>Number(e.value)),n=J(()=>Math.abs(e.count)),r=Le({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=H();return G(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),C(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[Dy(Z(Z({},e),{current:!0}))],o={transition:`none`};else{a=[];let t=s+10,i=[];for(let e=s;e<=t;e+=1)i.push(e);let c=i.findIndex(e=>e%10===r.prevValue);a=i.map((t,n)=>{let r=t%10;return Dy(Z(Z({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCounti()},[a])}}}),Ay=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let t=Z(Z({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=Z(Z({},Ay(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`])),{style:d,"data-show":e.show,class:K(i.value,u),title:s}),p=o;if(o&&Number(o)%1==0){let e=String(o).split(``);p=e.map((t,n)=>U(ky,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(f.style=Z(Z({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let m=ht(r.default?.call(r));return m&&m.length?$a(m,{class:K(`${i.value}-custom-component`)},!1):U(l,f,{default:()=>[p]})}}}),My=new L(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Ny=new L(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),Py=new L(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),Fy=new L(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Iy=new L(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Ly=new L(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Ry=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=Nr(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=Nr(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:Z(Z(Z(Z({},cn(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:Ly,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:My,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Ny,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:Py,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Fy,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Iy,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:Z(Z(Z(Z({},cn(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},zy=S(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover;return[Ry(B(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:t,badgeDotSize:r/2,badgeFontSizeSm:r,badgeStatusSize:r/2,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),By=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);icy(e.color,!1)),l=J(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=By(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(U(`div`,Y({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),U(`div`,{class:[l.value,t,s.value],style:Z(Z({},d),a)},[U(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),U(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),Hy=e=>!isNaN(parseFloat(e))&&isFinite(e),Uy=m({compatConfig:{MODE:3},name:`ABadge`,Ribbon:Vy,inheritAttrs:!1,props:{count:g.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:g.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=X(`badge`,e),[o,s]=zy(i),c=J(()=>e.count>e.overflowCount?`${e.overflowCount}+`:e.count),l=J(()=>c.value===`0`||c.value===0),u=J(()=>e.count===null||l.value&&!e.showZero),d=J(()=>(e.status!==null&&e.status!==void 0||e.color!==null&&e.color!==void 0)&&u.value),f=J(()=>e.dot&&!l.value),p=J(()=>f.value?``:c.value),m=J(()=>(p.value===null||p.value===void 0||p.value===``||l.value&&!e.showZero)&&!f.value),h=H(e.count),g=H(p.value),_=H(f.value);G([()=>e.count,p,f],()=>{m.value||(h.value=e.count,g.value=p.value,_.value=f.value)},{immediate:!0});let v=J(()=>cy(e.color,!1)),y=J(()=>({[`${i.value}-status-dot`]:d.value,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:v.value})),b=J(()=>e.color&&!v.value?{background:e.color,color:e.color}:{}),x=J(()=>({[`${i.value}-dot`]:_.value,[`${i.value}-count`]:!_.value,[`${i.value}-count-sm`]:e.size===`small`,[`${i.value}-multiple-words`]:!_.value&&g.value&&g.value.toString().length>1,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:v.value}));return()=>{let{offset:t,title:c,color:l}=e,u=r.style,f=un(n,e,`text`),p=i.value,_=h.value,S=fe(n.default?.call(n));S=S.length?S:null;let C=!!(!m.value||n.count),w=(()=>{if(!t)return Z({},u);let e={marginTop:Hy(t[1])?`${t[1]}px`:t[1]};return a.value===`rtl`?e.left=`${parseInt(t[0],10)}px`:e.right=`${-parseInt(t[0],10)}px`,Z(Z({},e),u)})(),T=c??(typeof _==`string`||typeof _==`number`?_:void 0),E=C||!f?null:U(`span`,{class:`${p}-status-text`},[f]),D=typeof _==`object`||_===void 0&&n.count?$a(_??n.count?.call(n),{style:w},!1):null,O=K(p,{[`${p}-status`]:d.value,[`${p}-not-a-wrapper`]:!S,[`${p}-rtl`]:a.value===`rtl`},r.class,s.value);if(!S&&d.value){let e=w.color;return o(U(`span`,Y(Y({},r),{},{class:O,style:w}),[U(`span`,{class:y.value,style:b.value},null),U(`span`,{style:{color:e},class:`${p}-status-text`},[f])]))}let k=be(S?`${p}-zoom`:``,{appear:!1}),A=Z(Z({},w),e.numberStyle);return l&&!v.value&&(A||={},A.background=l),o(U(`span`,Y(Y({},r),{},{class:O}),[S,U(He,k,{default:()=>[It(U(jy,{prefixCls:e.scrollNumberPrefixCls,show:C,class:x.value,count:g.value,title:T,style:A,key:`scrollNumber`},{default:()=>[D]}),[[yt,C]])]}),E]))}}});Uy.install=function(e){return e.component(Uy.name,Uy),e.component(Vy.name,Vy),e};var Wy=Uy,Gy={adjustX:1,adjustY:1},Ky=[0,0],qy={topLeft:{points:[`bl`,`tl`],overflow:Gy,offset:[0,-4],targetOffset:Ky},topCenter:{points:[`bc`,`tc`],overflow:Gy,offset:[0,-4],targetOffset:Ky},topRight:{points:[`br`,`tr`],overflow:Gy,offset:[0,-4],targetOffset:Ky},bottomLeft:{points:[`tl`,`bl`],overflow:Gy,offset:[0,4],targetOffset:Ky},bottomCenter:{points:[`tc`,`bc`],overflow:Gy,offset:[0,4],targetOffset:Ky},bottomRight:{points:[`tr`,`br`],overflow:Gy,offset:[0,4],targetOffset:Ky}},Jy=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.visible,e=>{e!==void 0&&(a.value=e)});let o=H();i({triggerRef:o});let s=t=>{e.visible===void 0&&(a.value=!1),r(`overlayClick`,t)},c=t=>{e.visible===void 0&&(a.value=t),r(`visibleChange`,t)},l=()=>{let t=n.overlay?.call(n),r={prefixCls:`${e.prefixCls}-menu`,onClick:s};return U(rt,{key:I},[e.arrow&&U(`div`,{class:`${e.prefixCls}-arrow`},null),$a(t,r,!1)])},u=J(()=>{let{minOverlayWidthMatchTrigger:t=!e.alignPoint}=e;return t}),d=()=>{let t=n.default?.call(n);return a.value&&t?$a(t[0],{class:e.openClassName||`${e.prefixCls}-open`},!1):t},f=J(()=>!e.hideAction&&e.trigger.indexOf(`contextmenu`)!==-1?[`click`]:e.hideAction);return()=>{let{prefixCls:t,arrow:n,showAction:r,overlayStyle:i,trigger:s,placement:p,align:m,getPopupContainer:h,transitionName:g,animation:_,overlayClassName:v}=e;return U(gu,Y(Y({},Jy(e,[`prefixCls`,`arrow`,`showAction`,`overlayStyle`,`trigger`,`placement`,`align`,`getPopupContainer`,`transitionName`,`animation`,`overlayClassName`])),{},{prefixCls:t,ref:o,popupClassName:K(v,{[`${t}-show-arrow`]:n}),popupStyle:i,builtinPlacements:qy,action:s,showAction:r,hideAction:f.value||[],popupPlacement:p,popupAlign:m,popupTransitionName:g,popupAnimation:_,popupVisible:a.value,stretch:u.value?`minWidth`:``,onPopupVisibleChange:c,getPopupContainer:h}),{popup:l,default:d})}}}),Xy=e=>{let{componentCls:t,colorPrimary:n}=e;return{[t]:{position:`absolute`,background:`transparent`,pointerEvents:`none`,boxSizing:`border-box`,color:`var(--wave-color, ${n})`,boxShadow:`0 0 0 0 currentcolor`,opacity:.2,"&.wave-motion-appear":{transition:[`box-shadow 0.4s ${e.motionEaseOutCirc}`,`opacity 2s ${e.motionEaseOutCirc}`].join(`,`),"&-active":{boxShadow:`0 0 0 6px currentcolor`,opacity:0}}}}},Zy=S(`Wave`,e=>[Xy(e)]);function Qy(e){let t=(e||``).match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return t&&t[1]&&t[2]&&t[3]?!(t[1]===t[2]&&t[2]===t[3]):!0}function $y(e){return e&&e!==`#fff`&&e!==`#ffffff`&&e!==`rgb(255, 255, 255)`&&e!==`rgba(255, 255, 255, 1)`&&Qy(e)&&!/rgba\((?:\d*, ){3}0\)/.test(e)&&e!==`transparent`}function eb(e){let{borderTopColor:t,borderColor:n,backgroundColor:r}=getComputedStyle(e);return $y(t)?t:$y(n)?n:$y(r)?r:null}function tb(e){return Number.isNaN(e)?0:e}var nb=m({props:{target:nn(),className:String},setup(e){let t=q(null),[n,r]=of(null),[i,a]=of([]),[o,s]=of(0),[c,l]=of(0),[u,d]=of(0),[f,p]=of(0),[m,h]=of(!1);function g(){let{target:t}=e,n=getComputedStyle(t);r(eb(t));let i=n.position===`static`,{borderLeftWidth:o,borderTopWidth:c}=n;s(i?t.offsetLeft:tb(-parseFloat(o))),l(i?t.offsetTop:tb(-parseFloat(c))),d(t.offsetWidth),p(t.offsetHeight);let{borderTopLeftRadius:u,borderTopRightRadius:f,borderBottomLeftRadius:m,borderBottomRightRadius:h}=n;a([u,f,h,m].map(e=>tb(parseFloat(e))))}let _,v,y,b=()=>{clearTimeout(y),Qn.cancel(v),_?.disconnect()},x=()=>{let e=t.value?.parentElement;e&&(Ye(null,e),e.parentElement&&e.parentElement.removeChild(e))};V(()=>{b(),y=setTimeout(()=>{x()},5e3);let{target:t}=e;t&&(v=Qn(()=>{g(),h(!0)}),typeof ResizeObserver<`u`&&(_=new ResizeObserver(g),_.observe(t)))}),mt(()=>{b()});let S=e=>{e.propertyName===`opacity`&&x()};return()=>{if(!m.value)return null;let r={left:`${o.value}px`,top:`${c.value}px`,width:`${u.value}px`,height:`${f.value}px`,borderRadius:i.value.map(e=>`${e}px`).join(` `)};return n&&(r[`--wave-color`]=n.value),U(He,{appear:!0,name:`wave-motion`,appearFromClass:`wave-motion-appear`,appearActiveClass:`wave-motion-appear`,appearToClass:`wave-motion-appear wave-motion-appear-active`},{default:()=>[U(`div`,{ref:t,class:e.className,style:r,onTransitionend:S},null)]})}}});function rb(e,t){let n=document.createElement(`div`);return n.style.position=`absolute`,n.style.left=`0px`,n.style.top=`0px`,e?.insertBefore(n,e?.firstChild),Ye(U(nb,{target:e,className:t},null),n),()=>{Ye(null,n),n.parentElement&&n.parentElement.removeChild(n)}}function ib(e,t){let n=tn(),r;function i(){let i=ce(n);r?.(),!(t?.value?.disabled||!i)&&(r=rb(i,e.value))}return mt(()=>{r?.()}),i}var ab=m({compatConfig:{MODE:3},name:`Wave`,props:{disabled:Boolean},setup(e,t){let{slots:n}=t,r=tn(),{prefixCls:i,wave:a}=X(`wave`,e),[,o]=Zy(i),s=ib(J(()=>K(i.value,o.value)),a),c,l=()=>{ce(r).removeEventListener(`click`,c,!0)};return V(()=>{G(()=>e.disabled,()=>{l(),ue(()=>{let t=ce(r);t?.removeEventListener(`click`,c,!0),!(!t||t.nodeType!==1||e.disabled)&&(c=e=>{e.target.tagName===`INPUT`||!ao(e.target)||!t.getAttribute||t.getAttribute(`disabled`)||t.disabled||t.className.includes(`disabled`)||t.className.includes(`-leave`)||s()},t.addEventListener(`click`,c,!0))})},{immediate:!0,flush:`post`})}),mt(()=>{l()}),()=>n.default?.call(n)[0]}});function ob(e){return e===`danger`?{danger:!0}:{type:e}}var sb=()=>({prefixCls:String,type:String,htmlType:{type:String,default:`button`},shape:{type:String},size:{type:String},loading:{type:[Boolean,Object],default:()=>!1},disabled:{type:Boolean,default:void 0},ghost:{type:Boolean,default:void 0},block:{type:Boolean,default:void 0},danger:{type:Boolean,default:void 0},icon:g.any,href:String,target:String,title:String,onClick:ye(),onMousedown:ye()}),cb=e=>{e&&(e.style.width=`0px`,e.style.opacity=`0`,e.style.transform=`scale(0)`)},lb=e=>{ue(()=>{e&&(e.style.width=`${e.scrollWidth}px`,e.style.opacity=`1`,e.style.transform=`scale(1)`)})},ub=e=>{e&&e.style&&(e.style.width=null,e.style.opacity=null,e.style.transform=null)},db=m({compatConfig:{MODE:3},name:`LoadingIcon`,props:{prefixCls:String,loading:[Boolean,Object],existIcon:Boolean},setup(e){return()=>{let{existIcon:t,prefixCls:n,loading:r}=e;if(t)return U(`span`,{class:`${n}-loading-icon`},[U(Zt,null,null)]);let i=!!r;return U(He,{name:`${n}-loading-icon-motion`,onBeforeEnter:cb,onEnter:lb,onAfterEnter:ub,onBeforeLeave:lb,onLeave:e=>{setTimeout(()=>{cb(e)})},onAfterLeave:ub},{default:()=>[i?U(`span`,{class:`${n}-loading-icon`},[U(Zt,null,null)]):null]})}}}),fb=(e,t)=>({[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineEndColor:t}}},"&:not(:first-child)":{[`&, & > ${e}`]:{"&:not(:disabled)":{borderInlineStartColor:t}}}}}),pb=e=>{let{componentCls:t,fontSize:n,lineWidth:r,colorPrimaryHover:i,colorErrorHover:a}=e;return{[`${t}-group`]:[{position:`relative`,display:`inline-flex`,[`> span, > ${t}`]:{"&:not(:last-child)":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:-r,[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:`relative`,zIndex:1,"&:hover,\n &:focus,\n &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${t}-icon-only`]:{fontSize:n}},fb(`${t}-primary`,i),fb(`${t}-danger`,a)]}};function mb(e,t){return{[`&-item:not(${t}-last-item)`]:{marginBottom:-e.lineWidth},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function hb(e,t){return{[`&-item:not(${t}-first-item):not(${t}-last-item)`]:{borderRadius:0},[`&-item${t}-first-item:not(${t}-last-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${t}-last-item:not(${t}-first-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function gb(e){let t=`${e.componentCls}-compact-vertical`;return{[t]:Z(Z({},mb(e,t)),hb(e.componentCls,t))}}var _b=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{outline:`none`,position:`relative`,display:`inline-block`,fontWeight:400,whiteSpace:`nowrap`,textAlign:`center`,backgroundImage:`none`,backgroundColor:`transparent`,border:`${e.lineWidth}px ${e.lineType} transparent`,cursor:`pointer`,transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:`none`,touchAction:`manipulation`,lineHeight:e.lineHeight,color:e.colorText,"> span":{display:`inline-block`},[`> ${n} + span, > span + ${n}`]:{marginInlineStart:e.marginXS},"> a":{color:`currentColor`},"&:not(:disabled)":Z({},he(e)),[`&-icon-only${t}-compact-item`]:{flex:`none`},[`&-compact-item${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-item${t}-primary:not([disabled])`]:{position:`relative`,"&:before":{position:`absolute`,top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:`inline-block`,width:e.lineWidth,height:`calc(100% + ${e.lineWidth*2}px)`,backgroundColor:e.colorPrimaryHover,content:`""`}}},"&-compact-vertical-item":{[`&${t}-primary`]:{[`&:not([disabled]) + ${t}-compact-vertical-item${t}-primary:not([disabled])`]:{position:`relative`,"&:before":{position:`absolute`,top:-e.lineWidth,insetInlineStart:-e.lineWidth,display:`inline-block`,width:`calc(100% + ${e.lineWidth*2}px)`,height:e.lineWidth,backgroundColor:e.colorPrimaryHover,content:`""`}}}}}}},vb=(e,t)=>({"&:not(:disabled)":{"&:hover":e,"&:active":t}}),yb=e=>({minWidth:e.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:`50%`}),bb=e=>({borderRadius:e.controlHeight,paddingInlineStart:e.controlHeight/2,paddingInlineEnd:e.controlHeight/2}),xb=e=>({cursor:`not-allowed`,borderColor:e.colorBorder,color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,boxShadow:`none`}),Sb=(e,t,n,r,i,a,o)=>({[`&${e}-background-ghost`]:Z(Z({color:t||void 0,backgroundColor:`transparent`,borderColor:n||void 0,boxShadow:`none`},vb(Z({backgroundColor:`transparent`},a),Z({backgroundColor:`transparent`},o))),{"&:disabled":{cursor:`not-allowed`,color:r||void 0,borderColor:i||void 0}})}),Cb=e=>({"&:disabled":Z({},xb(e))}),wb=e=>Z({},Cb(e)),Tb=e=>({"&:disabled":{cursor:`not-allowed`,color:e.colorTextDisabled}}),Eb=e=>Z(Z(Z(Z(Z({},wb(e)),{backgroundColor:e.colorBgContainer,borderColor:e.colorBorder,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`}),vb({color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),Sb(e.componentCls,e.colorBgContainer,e.colorBgContainer,e.colorTextDisabled,e.colorBorder)),{[`&${e.componentCls}-dangerous`]:Z(Z(Z({color:e.colorError,borderColor:e.colorError},vb({color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),Sb(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder)),Cb(e))}),Db=e=>Z(Z(Z(Z(Z({},wb(e)),{color:e.colorTextLightSolid,backgroundColor:e.colorPrimary,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`}),vb({color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryHover},{color:e.colorTextLightSolid,backgroundColor:e.colorPrimaryActive})),Sb(e.componentCls,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),{[`&${e.componentCls}-dangerous`]:Z(Z(Z({backgroundColor:e.colorError,boxShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`},vb({backgroundColor:e.colorErrorHover},{backgroundColor:e.colorErrorActive})),Sb(e.componentCls,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),Cb(e))}),Ob=e=>Z(Z({},Eb(e)),{borderStyle:`dashed`}),kb=e=>Z(Z(Z({color:e.colorLink},vb({color:e.colorLinkHover},{color:e.colorLinkActive})),Tb(e)),{[`&${e.componentCls}-dangerous`]:Z(Z({color:e.colorError},vb({color:e.colorErrorHover},{color:e.colorErrorActive})),Tb(e))}),Ab=e=>Z(Z(Z({},vb({color:e.colorText,backgroundColor:e.colorBgTextHover},{color:e.colorText,backgroundColor:e.colorBgTextActive})),Tb(e)),{[`&${e.componentCls}-dangerous`]:Z(Z({color:e.colorError},Tb(e)),vb({color:e.colorErrorHover,backgroundColor:e.colorErrorBg},{color:e.colorErrorHover,backgroundColor:e.colorErrorBg}))}),jb=e=>Z(Z({},xb(e)),{[`&${e.componentCls}:hover`]:Z({},xb(e))}),Mb=e=>{let{componentCls:t}=e;return{[`${t}-default`]:Eb(e),[`${t}-primary`]:Db(e),[`${t}-dashed`]:Ob(e),[`${t}-link`]:kb(e),[`${t}-text`]:Ab(e),[`${t}-disabled`]:jb(e)}},Nb=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:``,{componentCls:n,iconCls:r,controlHeight:i,fontSize:a,lineHeight:o,lineWidth:s,borderRadius:c,buttonPaddingHorizontal:l}=e,u=Math.max(0,(i-a*o)/2-s),d=l-s,f=`${n}-icon-only`;return[{[`${n}${t}`]:{fontSize:a,height:i,padding:`${u}px ${d}px`,borderRadius:c,[`&${f}`]:{width:i,paddingInlineStart:0,paddingInlineEnd:0,[`&${n}-round`]:{width:`auto`},"> span":{transform:`scale(1.143)`}},[`&${n}-loading`]:{opacity:e.opacityLoading,cursor:`default`},[`${n}-loading-icon`]:{transition:`width ${e.motionDurationSlow} ${e.motionEaseInOut}, opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`&:not(${f}) ${n}-loading-icon > ${r}`]:{marginInlineEnd:e.marginXS}}},{[`${n}${n}-circle${t}`]:yb(e)},{[`${n}${n}-round${t}`]:bb(e)}]},Pb=e=>Nb(e),Fb=e=>Nb(B(e,{controlHeight:e.controlHeightSM,padding:e.paddingXS,buttonPaddingHorizontal:8,borderRadius:e.borderRadiusSM}),`${e.componentCls}-sm`),Ib=e=>Nb(B(e,{controlHeight:e.controlHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),`${e.componentCls}-lg`),Lb=e=>{let{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:`100%`}}}},Rb=S(`Button`,e=>{let{controlTmpOutline:t,paddingContentHorizontal:n}=e,r=B(e,{colorOutlineDefault:t,buttonPaddingHorizontal:n});return[_b(r),Fb(r),Pb(r),Ib(r),Lb(r),Mb(r),pb(r),iv(e,{focus:!1}),gb(e)]}),zb=()=>({prefixCls:String,size:{type:String}}),Bb=Df(),Vb=m({compatConfig:{MODE:3},name:`AButtonGroup`,props:zb(),setup(e,t){let{slots:n}=t,{prefixCls:r,direction:i}=X(`btn-group`,e),[,,a]=oe();Bb.useProvide(Le({size:J(()=>e.size)}));let o=J(()=>{let{size:t}=e,n=``;switch(t){case`large`:n=`lg`;break;case`small`:n=`sm`;break;case`middle`:case void 0:break;default:si(!t,`Button.Group`,"Invalid prop `size`.")}return{[`${r.value}`]:!0,[`${r.value}-${n}`]:n,[`${r.value}-rtl`]:i.value===`rtl`,[a.value]:!0}});return()=>U(`div`,{class:o.value},[fe(n.default?.call(n))])}}),Hb=/^[\u4e00-\u9fa5]{2}$/,Ub=Hb.test.bind(Hb);function Wb(e){return e===`text`||e===`link`}var Gb=m({compatConfig:{MODE:3},name:`AButton`,inheritAttrs:!1,__ANT_BUTTON:!0,props:Gn(sb(),{type:`default`}),slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i,expose:a}=t,{prefixCls:o,autoInsertSpaceInButton:s,direction:c,size:l}=X(`btn`,e),[u,d]=Rb(o),f=Bb.useInject(),p=lt(),m=J(()=>e.disabled??p.value),h=q(null),g=q(void 0),_=!1,v=q(!1),y=q(!1),b=J(()=>s.value!==!1),{compactSize:x,compactItemClassnames:S}=i_(o,c),C=J(()=>typeof e.loading==`object`&&e.loading.delay?e.loading.delay||!0:!!e.loading);G(C,e=>{clearTimeout(g.value),typeof C.value==`number`?g.value=setTimeout(()=>{v.value=e},C.value):v.value=e},{immediate:!0});let w=J(()=>{let{type:t,shape:n=`default`,ghost:r,block:i,danger:a}=e,s=o.value,u={large:`lg`,small:`sm`,middle:void 0},p=x.value||f?.size||l.value,m=p&&u[p]||``;return[S.value,{[d.value]:!0,[`${s}`]:!0,[`${s}-${n}`]:n!=="default"&&n,[`${s}-${t}`]:t,[`${s}-${m}`]:m,[`${s}-loading`]:v.value,[`${s}-background-ghost`]:r&&!Wb(t),[`${s}-two-chinese-chars`]:y.value&&b.value,[`${s}-block`]:i,[`${s}-dangerous`]:!!a,[`${s}-rtl`]:c.value===`rtl`}]}),T=()=>{let e=h.value;if(!e||s.value===!1)return;let t=e.textContent;_&&Ub(t)?y.value||=!0:y.value&&=!1},D=e=>{if(v.value||m.value){e.preventDefault();return}i(`click`,e)},O=e=>{i(`mousedown`,e)},k=(e,t)=>{let n=t?` `:``;if(e.type===St){let t=e.children.trim();return Ub(t)&&(t=t.split(``).join(n)),U(`span`,null,[t])}return e};return E(()=>{si(!(e.ghost&&Wb(e.type)),`Button`,"`link` or `text` button can't be a `ghost` button.")}),V(T),M(T),mt(()=>{g.value&&clearTimeout(g.value)}),a({focus:()=>{var e;(e=h.value)==null||e.focus()},blur:()=>{var e;(e=h.value)==null||e.blur()}}),()=>{let{icon:t=n.icon?.call(n)}=e,i=fe(n.default?.call(n));_=i.length===1&&!t&&!Wb(e.type);let{type:a,htmlType:s,href:c,title:l,target:d}=e,f=v.value?`loading`:t,p=Z(Z({},r),{title:l,disabled:m.value,class:[w.value,r.class,{[`${o.value}-icon-only`]:i.length===0&&!!f}],onClick:D,onMousedown:O});m.value||delete p.disabled;let g=t&&!v.value?t:U(db,{existIcon:!!t,prefixCls:o.value,loading:!!v.value},null),y=i.map(e=>k(e,_&&b.value));if(c!==void 0)return u(U(`a`,Y(Y({},p),{},{href:c,target:d,ref:h}),[g,y]));let x=U(`button`,Y(Y({},p),{},{ref:h,type:s}),[g,y]);if(!Wb(a)){let e=function(){return x}();x=U(ab,{ref:`wave`,disabled:!!v.value},{default:()=>[e]})}return u(x)}}});Gb.Group=Vb,Gb.install=function(e){return e.component(Gb.name,Gb),e.component(Vb.name,Vb),e};var Kb=Gb,qb=()=>({arrow:W([Boolean,Object]),trigger:{type:[Array,String]},menu:nn(),overlay:g.any,visible:Q(),open:Q(),disabled:Q(),danger:Q(),autofocus:Q(),align:nn(),getPopupContainer:Function,prefixCls:String,transitionName:String,placement:String,overlayClassName:String,overlayStyle:nn(),forceRender:Q(),mouseEnterDelay:Number,mouseLeaveDelay:Number,openClassName:String,minOverlayWidthMatchTrigger:Q(),destroyPopupOnHide:Q(),onVisibleChange:{type:Function},"onUpdate:visible":{type:Function},onOpenChange:{type:Function},"onUpdate:open":{type:Function}}),Jb=sb(),Yb=()=>Z(Z({},qb()),{type:Jb.type,size:String,htmlType:Jb.htmlType,href:String,disabled:Q(),prefixCls:String,icon:g.any,title:String,loading:Jb.loading,onClick:ye()}),Xb={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`ellipsis`,theme:`outlined`};function Zb(e){for(var t=1;t{let{componentCls:t,antCls:n,paddingXS:r,opacityLoading:i}=e;return{[`${t}-button`]:{whiteSpace:`nowrap`,[`&${n}-btn-group > ${n}-btn`]:{[`&-loading, &-loading + ${n}-btn`]:{cursor:`default`,pointerEvents:`none`,opacity:i},[`&:last-child:not(:first-child):not(${n}-btn-icon-only)`]:{paddingInline:r}}}}},tx=e=>{let{componentCls:t,menuCls:n,colorError:r,colorTextLightSolid:i}=e,a=`${n}-item`;return{[`${t}, ${t}-menu-submenu`]:{[`${n} ${a}`]:{[`&${a}-danger:not(${a}-disabled)`]:{color:r,"&:hover":{color:i,backgroundColor:r}}}}}},nx=e=>{let{componentCls:t,menuCls:n,zIndexPopup:r,dropdownArrowDistance:i,dropdownArrowOffset:a,sizePopupArrow:o,antCls:s,iconCls:c,motionDurationMid:l,dropdownPaddingVertical:u,fontSize:d,dropdownEdgeChildPadding:f,colorTextDisabled:p,fontSizeIcon:m,controlPaddingHorizontal:h,colorBgElevated:g,boxShadowPopoverArrow:_}=e;return[{[t]:Z(Z({},cn(e)),{position:`absolute`,top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:r,display:`block`,"&::before":{position:`absolute`,insetBlock:-i+o/2,zIndex:-9999,opacity:1e-4,content:`""`},[`${t}-wrap`]:{position:`relative`,[`${s}-btn > ${c}-down`]:{fontSize:m},[`${c}-down::before`]:{transition:`transform ${l}`}},[`${t}-wrap-open`]:{[`${c}-down::before`]:{transform:`rotate(180deg)`}},"\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n ":{display:`none`},[`
+ &-show-arrow${t}-placement-topLeft,
+ &-show-arrow${t}-placement-top,
+ &-show-arrow${t}-placement-topRight
+ `]:{paddingBottom:i},[`
+ &-show-arrow${t}-placement-bottomLeft,
+ &-show-arrow${t}-placement-bottom,
+ &-show-arrow${t}-placement-bottomRight
+ `]:{paddingTop:i},[`${t}-arrow`]:Z({position:`absolute`,zIndex:1,display:`block`},Mr(o,e.borderRadiusXS,e.borderRadiusOuter,g,_)),[`
+ &-placement-top > ${t}-arrow,
+ &-placement-topLeft > ${t}-arrow,
+ &-placement-topRight > ${t}-arrow
+ `]:{bottom:i,transform:`translateY(100%) rotate(180deg)`},[`&-placement-top > ${t}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateX(-50%) translateY(100%) rotate(180deg)`},[`&-placement-topLeft > ${t}-arrow`]:{left:{_skip_check_:!0,value:a}},[`&-placement-topRight > ${t}-arrow`]:{right:{_skip_check_:!0,value:a}},[`
+ &-placement-bottom > ${t}-arrow,
+ &-placement-bottomLeft > ${t}-arrow,
+ &-placement-bottomRight > ${t}-arrow
+ `]:{top:i,transform:`translateY(-100%)`},[`&-placement-bottom > ${t}-arrow`]:{left:{_skip_check_:!0,value:`50%`},transform:`translateY(-100%) translateX(-50%)`},[`&-placement-bottomLeft > ${t}-arrow`]:{left:{_skip_check_:!0,value:a}},[`&-placement-bottomRight > ${t}-arrow`]:{right:{_skip_check_:!0,value:a}},[`&${s}-slide-down-enter${s}-slide-down-enter-active${t}-placement-bottomLeft,
+ &${s}-slide-down-appear${s}-slide-down-appear-active${t}-placement-bottomLeft,
+ &${s}-slide-down-enter${s}-slide-down-enter-active${t}-placement-bottom,
+ &${s}-slide-down-appear${s}-slide-down-appear-active${t}-placement-bottom,
+ &${s}-slide-down-enter${s}-slide-down-enter-active${t}-placement-bottomRight,
+ &${s}-slide-down-appear${s}-slide-down-appear-active${t}-placement-bottomRight`]:{animationName:C_},[`&${s}-slide-up-enter${s}-slide-up-enter-active${t}-placement-topLeft,
+ &${s}-slide-up-appear${s}-slide-up-appear-active${t}-placement-topLeft,
+ &${s}-slide-up-enter${s}-slide-up-enter-active${t}-placement-top,
+ &${s}-slide-up-appear${s}-slide-up-appear-active${t}-placement-top,
+ &${s}-slide-up-enter${s}-slide-up-enter-active${t}-placement-topRight,
+ &${s}-slide-up-appear${s}-slide-up-appear-active${t}-placement-topRight`]:{animationName:T_},[`&${s}-slide-down-leave${s}-slide-down-leave-active${t}-placement-bottomLeft,
+ &${s}-slide-down-leave${s}-slide-down-leave-active${t}-placement-bottom,
+ &${s}-slide-down-leave${s}-slide-down-leave-active${t}-placement-bottomRight`]:{animationName:w_},[`&${s}-slide-up-leave${s}-slide-up-leave-active${t}-placement-topLeft,
+ &${s}-slide-up-leave${s}-slide-up-leave-active${t}-placement-top,
+ &${s}-slide-up-leave${s}-slide-up-leave-active${t}-placement-topRight`]:{animationName:E_}})},{[`${t} ${n}`]:{position:`relative`,margin:0},[`${n}-submenu-popup`]:{position:`absolute`,zIndex:r,background:`transparent`,boxShadow:`none`,transformOrigin:`0 0`,"ul,li":{listStyle:`none`},ul:{marginInline:`0.3em`}},[`${t}, ${t}-menu-submenu`]:{[n]:Z(Z({padding:f,listStyleType:`none`,backgroundColor:g,backgroundClip:`padding-box`,borderRadius:e.borderRadiusLG,outline:`none`,boxShadow:e.boxShadowSecondary},he(e)),{[`${n}-item-group-title`]:{padding:`${u}px ${h}px`,color:e.colorTextDescription,transition:`all ${l}`},[`${n}-item`]:{position:`relative`,display:`flex`,alignItems:`center`,borderRadius:e.borderRadiusSM},[`${n}-item-icon`]:{minWidth:d,marginInlineEnd:e.marginXS,fontSize:e.fontSizeSM},[`${n}-title-content`]:{flex:`auto`,"> a":{color:`inherit`,transition:`all ${l}`,"&:hover":{color:`inherit`},"&::after":{position:`absolute`,inset:0,content:`""`}}},[`${n}-item, ${n}-submenu-title`]:Z(Z({clear:`both`,margin:0,padding:`${u}px ${h}px`,color:e.colorText,fontWeight:`normal`,fontSize:d,lineHeight:e.lineHeight,cursor:`pointer`,transition:`all ${l}`,"&:hover, &-active":{backgroundColor:e.controlItemBgHover}},he(e)),{"&-selected":{color:e.colorPrimary,backgroundColor:e.controlItemBgActive,"&:hover, &-active":{backgroundColor:e.controlItemBgActiveHover}},"&-disabled":{color:p,cursor:`not-allowed`,"&:hover":{color:p,backgroundColor:g,cursor:`not-allowed`},a:{pointerEvents:`none`}},"&-divider":{height:1,margin:`${e.marginXXS}px 0`,overflow:`hidden`,lineHeight:0,backgroundColor:e.colorSplit},[`${t}-menu-submenu-expand-icon`]:{position:`absolute`,insetInlineEnd:e.paddingXS,[`${t}-menu-submenu-arrow-icon`]:{marginInlineEnd:`0 !important`,color:e.colorTextDescription,fontSize:m,fontStyle:`normal`}}}),[`${n}-item-group-list`]:{margin:`0 ${e.marginXS}px`,padding:0,listStyle:`none`},[`${n}-submenu-title`]:{paddingInlineEnd:h+e.fontSizeSM},[`${n}-submenu-vertical`]:{position:`relative`},[`${n}-submenu${n}-submenu-disabled ${t}-menu-submenu-title`]:{[`&, ${t}-menu-submenu-arrow-icon`]:{color:p,backgroundColor:g,cursor:`not-allowed`}},[`${n}-submenu-selected ${t}-menu-submenu-title`]:{color:e.colorPrimary}})}},[M_(e,`slide-up`),M_(e,`slide-down`),S_(e,`move-up`),S_(e,`move-down`),K_(e,`zoom-big`)]]},rx=S(`Dropdown`,(e,t)=>{let{rootPrefixCls:n}=t,{marginXXS:r,sizePopupArrow:i,controlHeight:a,fontSize:o,lineHeight:s,paddingXXS:c,componentCls:l,borderRadiusOuter:u,borderRadiusLG:d}=e,f=(a-o*s)/2,{dropdownArrowOffset:p}=fy({sizePopupArrow:i,contentRadius:d,borderRadiusOuter:u}),m=B(e,{menuCls:`${l}-menu`,rootPrefixCls:n,dropdownArrowDistance:i/2+r,dropdownArrowOffset:p,dropdownPaddingVertical:f,dropdownEdgeChildPadding:c});return[nx(m),ex(m),tx(m)]},e=>({zIndexPopup:e.zIndexPopupBase+50})),ix=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{i(`update:visible`,e),i(`visibleChange`,e),i(`update:open`,e),i(`openChange`,e)},{prefixCls:o,direction:s,getPopupContainer:c}=X(`dropdown`,e),l=J(()=>`${o.value}-button`),[u,d]=rx(o);return()=>{let t=Z(Z({},e),r),{type:i=`default`,disabled:o,danger:f,loading:p,htmlType:m,class:h=``,overlay:g=n.overlay?.call(n),trigger:_,align:v,open:y,visible:b,onVisibleChange:x,placement:S=s.value===`rtl`?`bottomLeft`:`bottomRight`,href:C,title:w,icon:T=n.icon?.call(n)||U($b,null,null),mouseEnterDelay:E,mouseLeaveDelay:D,overlayClassName:O,overlayStyle:k,destroyPopupOnHide:A,onClick:j,"onUpdate:open":M}=t,N=ix(t,[`type`,`disabled`,`danger`,`loading`,`htmlType`,`class`,`overlay`,`trigger`,`align`,`open`,`visible`,`onVisibleChange`,`placement`,`href`,`title`,`icon`,`mouseEnterDelay`,`mouseLeaveDelay`,`overlayClassName`,`overlayStyle`,`destroyPopupOnHide`,`onClick`,`onUpdate:open`]),P={align:v,disabled:o,trigger:o?[]:_,placement:S,getPopupContainer:c?.value,onOpenChange:a,mouseEnterDelay:E,mouseLeaveDelay:D,open:y??b,overlayClassName:O,overlayStyle:k,destroyPopupOnHide:A},F=U(Kb,{danger:f,type:i,disabled:o,loading:p,onClick:j,htmlType:m,href:C,title:w},{default:n.default}),I=U(Kb,{danger:f,type:i,icon:T},null);return u(U(ax,Y(Y({},N),{},{class:K(l.value,h,d.value)}),{default:()=>[n.leftButton?n.leftButton({button:F}):F,U(mx,P,{default:()=>[n.rightButton?n.rightButton({button:I}):I],overlay:()=>g})]}))}}}),sx={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z`}}]},name:`right`,theme:`outlined`};function cx(e){for(var t=1;tb(dx,void 0),px=e=>{let{prefixCls:t,mode:n,selectable:r,validator:i,onClick:a,expandIcon:o}=fx()||{};ge(dx,{prefixCls:J(()=>e.prefixCls?.value??t?.value),mode:J(()=>e.mode?.value??n?.value),selectable:J(()=>e.selectable?.value??r?.value),validator:e.validator??i,onClick:e.onClick??a,expandIcon:e.expandIcon??o?.value})},mx=m({compatConfig:{MODE:3},name:`ADropdown`,inheritAttrs:!1,props:Gn(qb(),{mouseEnterDelay:.15,mouseLeaveDelay:.1,placement:`bottomLeft`,trigger:`hover`}),slots:Object,setup(e,t){let{slots:n,attrs:r,emit:a}=t,{prefixCls:o,rootPrefixCls:s,direction:c,getPopupContainer:l}=X(`dropdown`,e),[u,d]=rx(o),f=J(()=>{let{placement:t=``,transitionName:n}=e;return n===void 0?t.includes(`top`)?`${s.value}-slide-down`:`${s.value}-slide-up`:n});px({prefixCls:J(()=>`${o.value}-menu`),expandIcon:J(()=>U(`span`,{class:`${o.value}-menu-submenu-arrow`},[U(ux,{class:`${o.value}-menu-submenu-arrow-icon`},null)])),mode:J(()=>`vertical`),selectable:J(()=>!1),onClick:()=>{},validator:e=>{let{mode:t}=e;i(!t||t===`vertical`,`Dropdown`,`mode="${t}" is not supported for Dropdown's Menu.`)}});let p=()=>{var t;let r=e.overlay||n.overlay?.call(n),i=Array.isArray(r)?r[0]:r;if(!i)return null;let a=i.props||{};si(!a.mode||a.mode===`vertical`,`Dropdown`,`mode="${a.mode}" is not supported for Dropdown's Menu.`);let{selectable:s=!1,expandIcon:c=((t=i.children)?.expandIcon)?.call(t)}=a,l=c!==void 0&&Lt(c)?c:U(`span`,{class:`${o.value}-menu-submenu-arrow`},[U(ux,{class:`${o.value}-menu-submenu-arrow-icon`},null)]);return Lt(i)?$a(i,{mode:`vertical`,selectable:s,expandIcon:()=>l}):i},m=J(()=>{let t=e.placement;if(!t)return c.value===`rtl`?`bottomRight`:`bottomLeft`;if(t.includes(`Center`)){let e=t.slice(0,t.indexOf(`Center`));return si(!t.includes(`Center`),`Dropdown`,`You are using '${t}' placement in Dropdown, which is deprecated. Try to use '${e}' instead.`),e}return t}),h=J(()=>typeof e.visible==`boolean`?e.visible:e.open),g=e=>{a(`update:visible`,e),a(`visibleChange`,e),a(`update:open`,e),a(`openChange`,e)};return()=>{let{arrow:t,trigger:i,disabled:a,overlayClassName:s}=e,_=n.default?.call(n)[0],v=$a(_,Z({class:K(_?.props?.class,{[`${o.value}-rtl`]:c.value===`rtl`},`${o.value}-trigger`)},a?{disabled:a}:{})),y=K(s,d.value,{[`${o.value}-rtl`]:c.value===`rtl`}),b=a?[]:i,x;b&&b.includes(`contextmenu`)&&(x=!0);let S=iy({arrowPointAtCenter:typeof t==`object`&&t.pointAtCenter,autoAdjustOverflow:!0}),C=Pr(Z(Z(Z({},e),r),{visible:h.value,builtinPlacements:S,overlayClassName:y,arrow:!!t,alignPoint:x,prefixCls:o.value,getPopupContainer:l?.value,transitionName:f.value,trigger:b,onVisibleChange:g,placement:m.value}),[`overlay`,`onUpdate:visible`]);return u(U(Yy,C,{default:()=>[v],overlay:p}))}}});mx.Button=ox;var hx=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let i=un(n,e,`overlay`);return i?U(mx,Y(Y({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[U(`span`,{class:`${r}-overlay-link`},[t,U(_f,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=un(n,e,`separator`)??`/`,i=un(n,e),{class:c,style:l}=r,u=hx(r,[`class`,`style`]),d;return d=e.href===void 0?U(`span`,Y({class:`${a.value}-link`,onClick:s},u),[i]):U(`a`,Y({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:U(`li`,{class:c,style:l},[d,t&&U(`span`,{class:`${a.value}-separator`},[t])])}}});function _x(e,t,n,r){let i=n?n.call(r,e,t):void 0;if(i!==void 0)return!!i;if(e===t)return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let a=Object.keys(e),o=Object.keys(t);if(a.length!==o.length)return!1;let s=Object.prototype.hasOwnProperty.bind(t);for(let o=0;o{ge(yx,e)},xx=()=>b(yx),Sx=Symbol(`ForceRenderKey`),Cx=e=>{ge(Sx,e)},wx=()=>b(Sx,!1),Tx=Symbol(`menuFirstLevelContextKey`),Ex=e=>{ge(Tx,e)},Dx=()=>b(Tx,!0),Ox=m({compatConfig:{MODE:3},name:`MenuContextProvider`,inheritAttrs:!1,props:{mode:{type:String,default:void 0},overflowDisabled:{type:Boolean,default:void 0}},setup(e,t){let{slots:n}=t,r=Z({},xx());return e.mode!==void 0&&(r.mode=Et(e,`mode`)),e.overflowDisabled!==void 0&&(r.overflowDisabled=Et(e,`overflowDisabled`)),bx(r),()=>n.default?.call(n)}}),kx=Symbol(`siderCollapsed`),Ax=Symbol(`siderHookProvider`),jx=`$$__vc-menu-more__key`,Mx=Symbol(`KeyPathContext`),Nx=()=>b(Mx,{parentEventKeys:J(()=>[]),parentKeys:J(()=>[]),parentInfo:{}}),Px=(e,t,n)=>{let{parentEventKeys:r,parentKeys:i}=Nx(),a=J(()=>[...r.value,e]),o=J(()=>[...i.value,t]);return ge(Mx,{parentEventKeys:a,parentKeys:o,parentInfo:n}),o},Fx=Symbol(`measure`),Ix=m({compatConfig:{MODE:3},setup(e,t){let{slots:n}=t;return ge(Fx,!0),()=>n.default?.call(n)}}),Lx=()=>b(Fx,!1);function Rx(e){let{mode:t,rtl:n,inlineIndent:r}=xx();return J(()=>t.value===`inline`?n.value?{paddingRight:`${e.value*r.value}px`}:{paddingLeft:`${e.value*r.value}px`}:null)}var zx=0,Bx=m({compatConfig:{MODE:3},name:`AMenuItem`,inheritAttrs:!1,props:{id:String,role:String,disabled:Boolean,danger:Boolean,title:{type:[String,Boolean],default:void 0},icon:g.any,onMouseenter:Function,onMouseleave:Function,onClick:Function,onKeydown:Function,onFocus:Function,originItemValue:nn()},slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i}=t,a=tn(),o=Lx(),s=typeof a.vnode.key==`symbol`?String(a.vnode.key):a.vnode.key;si(typeof a.vnode.key!=`symbol`,`MenuItem`,`MenuItem \`:key="${String(s)}"\` not support Symbol type`);let c=`menu_item_${++zx}_$$_${s}`,{parentEventKeys:l,parentKeys:u}=Nx(),{prefixCls:d,activeKeys:f,disabled:p,changeActiveKeys:m,rtl:h,inlineCollapsed:g,siderCollapsed:_,onItemClick:v,selectedKeys:y,registerMenuInfo:b,unRegisterMenuInfo:x}=xx(),S=Dx(),C=q(!1),w=J(()=>[...u.value,s]);b(c,{eventKey:c,key:s,parentEventKeys:l,parentKeys:u,isLeaf:!0}),mt(()=>{x(c)}),G(f,()=>{C.value=!!f.value.find(e=>e===s)},{immediate:!0});let T=J(()=>p.value||e.disabled),E=J(()=>y.value.includes(s)),D=J(()=>{let t=`${d.value}-item`;return{[`${t}`]:!0,[`${t}-danger`]:e.danger,[`${t}-active`]:C.value,[`${t}-selected`]:E.value,[`${t}-disabled`]:T.value}}),O=t=>({key:s,eventKey:c,keyPath:w.value,eventKeyPath:[...l.value,c],domEvent:t,item:Z(Z({},e),i)}),k=e=>{if(T.value)return;let t=O(e);r(`click`,e),v(t)},A=e=>{T.value||(m(w.value),r(`mouseenter`,e))},j=e=>{T.value||(m([]),r(`mouseleave`,e))},M=e=>{if(r(`keydown`,e),e.which===$.ENTER){let t=O(e);r(`click`,e),v(t)}},N=e=>{m(w.value),r(`focus`,e)},P=(e,t)=>{let n=U(`span`,{class:`${d.value}-title-content`},[t]);return(!e||Lt(t)&&t.type===`span`)&&t&&g.value&&S&&typeof t==`string`?U(`div`,{class:`${d.value}-inline-collapsed-noicon`},[t.charAt(0)]):n},F=Rx(J(()=>w.value.length));return()=>{if(o)return null;let t=e.title??n.title?.call(n),r=fe(n.default?.call(n)),a=r.length,c=t;t===void 0?c=S&&a?r:``:t===!1&&(c=``);let l={title:c};!_.value&&!g.value&&(l.title=null,l.open=!1);let u={};e.role===`option`&&(u[`aria-selected`]=E.value);let f=e.icon??n.icon?.call(n,e);return U(yy,Y(Y({},l),{},{placement:h.value?`left`:`right`,overlayClassName:`${d.value}-inline-collapsed-tooltip`}),{default:()=>[U(Ju.Item,Y(Y(Y({component:`li`},i),{},{id:e.id,style:Z(Z({},i.style||{}),F.value),class:[D.value,{[`${i.class}`]:!!i.class,[`${d.value}-item-only-child`]:(f?a+1:a)===1}],role:e.role||`menuitem`,tabindex:e.disabled?null:-1,"data-menu-id":s,"aria-disabled":e.disabled},u),{},{onMouseenter:A,onMouseleave:j,onClick:k,onKeydown:M,onFocus:N,title:typeof t==`string`?t:void 0}),{default:()=>[$a(typeof f==`function`?f(e.originItemValue):f,{class:`${d.value}-item-icon`},!1),P(f,r)]})]})}}}),Vx={adjustX:1,adjustY:1},Hx={topLeft:{points:[`bl`,`tl`],overflow:Vx,offset:[0,-7]},bottomLeft:{points:[`tl`,`bl`],overflow:Vx,offset:[0,7]},leftTop:{points:[`tr`,`tl`],overflow:Vx,offset:[-4,0]},rightTop:{points:[`tl`,`tr`],overflow:Vx,offset:[4,0]}},Ux={topLeft:{points:[`bl`,`tl`],overflow:Vx,offset:[0,-7]},bottomLeft:{points:[`tl`,`bl`],overflow:Vx,offset:[0,7]},rightTop:{points:[`tr`,`tl`],overflow:Vx,offset:[-4,0]},leftTop:{points:[`tl`,`tr`],overflow:Vx,offset:[4,0]}},Wx={horizontal:`bottomLeft`,vertical:`rightTop`,"vertical-left":`rightTop`,"vertical-right":`leftTop`},Gx=m({compatConfig:{MODE:3},name:`PopupTrigger`,inheritAttrs:!1,props:{prefixCls:String,mode:String,visible:Boolean,popupClassName:String,popupOffset:Array,disabled:Boolean,onVisibleChange:Function},slots:Object,emits:[`visibleChange`],setup(e,t){let{slots:n,emit:r}=t,i=q(!1),{getPopupContainer:a,rtl:o,subMenuOpenDelay:s,subMenuCloseDelay:c,builtinPlacements:l,triggerSubMenuAction:u,forceSubMenuRender:d,motion:f,defaultMotions:p,rootClassName:m}=xx(),h=wx(),g=J(()=>o.value?Z(Z({},Ux),l.value):Z(Z({},Hx),l.value)),_=J(()=>Wx[e.mode]),v=q();G(()=>e.visible,e=>{Qn.cancel(v.value),v.value=Qn(()=>{i.value=e})},{immediate:!0}),mt(()=>{Qn.cancel(v.value)});let y=e=>{r(`visibleChange`,e)},b=J(()=>{let t=f.value||p.value?.[e.mode]||p.value?.other,n=typeof t==`function`?t():t;return n?be(n.name,{css:!0}):void 0});return()=>{let{prefixCls:t,popupClassName:r,mode:l,popupOffset:f,disabled:p}=e;return U(gu,{prefixCls:t,popupClassName:K(`${t}-popup`,{[`${t}-rtl`]:o.value},r,m.value),stretch:l===`horizontal`?`minWidth`:null,getPopupContainer:a.value,builtinPlacements:g.value,popupPlacement:_.value,popupVisible:i.value,popupAlign:f&&{offset:f},action:p?[]:[u.value],mouseEnterDelay:s.value,mouseLeaveDelay:c.value,onPopupVisibleChange:y,forceRender:h||d.value,popupAnimation:b.value},{popup:n.popup,default:n.default})}}}),Kx=(e,t)=>{let{slots:n,attrs:r}=t,{prefixCls:i,mode:a}=xx();return U(`ul`,Y(Y({},r),{},{class:K(i.value,`${i.value}-sub`,`${i.value}-${a.value===`inline`?`inline`:`vertical`}`),"data-menu-list":!0}),[n.default?.call(n)])};Kx.displayName=`SubMenuList`;var qx=m({compatConfig:{MODE:3},name:`InlineSubMenuList`,inheritAttrs:!1,props:{id:String,open:Boolean,keyPath:Array},setup(e,t){let{slots:n}=t,r=J(()=>`inline`),{motion:i,mode:a,defaultMotions:o}=xx(),s=J(()=>a.value===r.value),c=H(!s.value),l=J(()=>s.value?e.open:!1);G(a,()=>{s.value&&(c.value=!1)},{flush:`post`});let u=J(()=>{let t=i.value||o.value?.[r.value]||o.value?.other;return Z(Z({},typeof t==`function`?t():t),{appear:e.keyPath.length<=1})});return()=>c.value?null:U(Ox,{mode:r.value},{default:()=>[U(He,u.value,{default:()=>[It(U(Kx,{id:e.id},{default:()=>[n.default?.call(n)]}),[[yt,l.value]])]})]})}}),Jx=0,Yx=m({compatConfig:{MODE:3},name:`ASubMenu`,inheritAttrs:!1,props:{icon:g.any,title:g.any,disabled:Boolean,level:Number,popupClassName:String,popupOffset:Array,internalPopupClose:Boolean,eventKey:String,expandIcon:Function,theme:String,onMouseenter:Function,onMouseleave:Function,onTitleClick:Function,originItemValue:nn()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t;var a;Ex(!1);let o=Lx(),s=tn(),c=typeof s.vnode.key==`symbol`?String(s.vnode.key):s.vnode.key;si(typeof s.vnode.key!=`symbol`,`SubMenu`,`SubMenu \`:key="${String(c)}"\` not support Symbol type`);let l=Me(c)?c:`sub_menu_${++Jx}_$$_not_set_key`,u=e.eventKey??(Me(c)?`sub_menu_${++Jx}_$$_${c}`:l),{parentEventKeys:d,parentInfo:f,parentKeys:p}=Nx(),m=J(()=>[...p.value,l]),h={eventKey:u,key:l,parentEventKeys:d,childrenEventKeys:q([]),parentKeys:p};(a=f.childrenEventKeys)==null||a.value.push(u),mt(()=>{f.childrenEventKeys&&(f.childrenEventKeys.value=f.childrenEventKeys?.value.filter(e=>e!=u))}),Px(u,l,h);let{prefixCls:g,activeKeys:_,disabled:v,changeActiveKeys:y,mode:b,inlineCollapsed:x,openKeys:S,overflowDisabled:C,onOpenChange:w,registerMenuInfo:T,unRegisterMenuInfo:E,selectedSubMenuKeys:D,expandIcon:O,theme:k}=xx(),A=c!=null,j=!o&&(wx()||!A);Cx(j),(o&&A||!o&&!A||j)&&(T(u,h),mt(()=>{E(u)}));let M=J(()=>`${g.value}-submenu`),N=J(()=>v.value||e.disabled),P=q(),F=q(),I=J(()=>S.value.includes(l)),L=J(()=>!C.value&&I.value),R=J(()=>D.value.includes(l)),ee=q(!1);G(_,()=>{ee.value=!!_.value.find(e=>e===l)},{immediate:!0});let te=e=>{N.value||(i(`titleClick`,e,l),b.value===`inline`&&w(l,!I.value))},z=e=>{N.value||(y(m.value),i(`mouseenter`,e))},ne=e=>{N.value||(y([]),i(`mouseleave`,e))},re=Rx(J(()=>m.value.length)),ie=e=>{b.value!==`inline`&&w(l,e)},ae=()=>{y(m.value)},oe=u&&`${u}-popup`,se=J(()=>K(g.value,`${g.value}-${e.theme||k.value}`,e.popupClassName)),ce=(t,n)=>{if(!n)return x.value&&!p.value.length&&t&&typeof t==`string`?U(`div`,{class:`${g.value}-inline-collapsed-noicon`},[t.charAt(0)]):U(`span`,{class:`${g.value}-title-content`},[t]);let r=Lt(t)&&t.type===`span`;return U(rt,null,[$a(typeof n==`function`?n(e.originItemValue):n,{class:`${g.value}-item-icon`},!1),r?t:U(`span`,{class:`${g.value}-title-content`},[t])])},le=J(()=>b.value!==`inline`&&m.value.length>1?`vertical`:b.value),ue=J(()=>b.value===`horizontal`?`vertical`:b.value),de=J(()=>le.value===`horizontal`?`vertical`:le.value),B=()=>{let t=M.value,r=e.icon??n.icon?.call(n,e),i=e.expandIcon||n.expandIcon||O.value,a=ce(un(n,e,`title`),r);return U(`div`,{style:re.value,class:`${t}-title`,tabindex:N.value?null:-1,ref:P,title:typeof a==`string`?a:null,"data-menu-id":l,"aria-expanded":L.value,"aria-haspopup":!0,"aria-controls":oe,"aria-disabled":N.value,onClick:te,onFocus:ae},[a,b.value!==`horizontal`&&i?i(Z(Z({},e),{isOpen:L.value})):U(`i`,{class:`${t}-arrow`},null)])};return()=>{if(o)return A?n.default?.call(n):null;let t=M.value,i=()=>null;if(!C.value&&b.value!==`inline`){let r=b.value===`horizontal`?[0,8]:[10,0];i=()=>U(Gx,{mode:le.value,prefixCls:t,visible:!e.internalPopupClose&&L.value,popupClassName:se.value,popupOffset:e.popupOffset||r,disabled:N.value,onVisibleChange:ie},{default:()=>[B()],popup:()=>U(Ox,{mode:de.value},{default:()=>[U(Kx,{id:oe,ref:F},{default:n.default})]})})}else i=()=>U(Gx,null,{default:B});return U(Ox,{mode:ue.value},{default:()=>[U(Ju.Item,Y(Y({component:`li`},r),{},{role:`none`,class:K(t,`${t}-${b.value}`,r.class,{[`${t}-open`]:L.value,[`${t}-active`]:ee.value,[`${t}-selected`]:R.value,[`${t}-disabled`]:N.value}),onMouseenter:z,onMouseleave:ne,"data-submenu-id":l}),{default:()=>U(rt,null,[i(),!C.value&&U(qx,{id:oe,open:L.value,keyPath:m.value},{default:n.default})])})]})}}});function Xx(e,t){return e.classList?e.classList.contains(t):` ${e.className} `.indexOf(` ${t} `)>-1}function Zx(e,t){e.classList?e.classList.add(t):Xx(e,t)||(e.className=`${e.className} ${t}`)}function Qx(e,t){e.classList?e.classList.remove(t):Xx(e,t)&&(e.className=` ${e.className} `.replace(` ${t} `,` `))}var $x=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:`ant-motion-collapse`;return{name:e,appear:arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,css:!0,onBeforeEnter:t=>{t.style.height=`0px`,t.style.opacity=`0`,Zx(t,e)},onEnter:e=>{ue(()=>{e.style.height=`${e.scrollHeight}px`,e.style.opacity=`1`})},onAfterEnter:t=>{t&&(Qx(t,e),t.style.height=null,t.style.opacity=null)},onBeforeLeave:t=>{Zx(t,e),t.style.height=`${t.offsetHeight}px`,t.style.opacity=null},onLeave:e=>{setTimeout(()=>{e.style.height=`0px`,e.style.opacity=`0`})},onAfterLeave:t=>{t&&(Qx(t,e),t.style&&(t.style.height=null,t.style.opacity=null))}}},eS=m({compatConfig:{MODE:3},name:`AMenuItemGroup`,inheritAttrs:!1,props:{title:g.any,originItemValue:nn()},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=xx(),a=J(()=>`${i.value}-item-group`),o=Lx();return()=>o?n.default?.call(n):U(`li`,Y(Y({},r),{},{onClick:e=>e.stopPropagation(),class:a.value}),[U(`div`,{title:typeof e.title==`string`?e.title:void 0,class:`${a.value}-title`},[un(n,e,`title`)]),U(`ul`,{class:`${a.value}-list`},[n.default?.call(n)])])}}),tS=m({compatConfig:{MODE:3},name:`AMenuDivider`,props:{prefixCls:String,dashed:Boolean},setup(e){let{prefixCls:t}=xx(),n=J(()=>({[`${t.value}-item-divider`]:!0,[`${t.value}-item-divider-dashed`]:!!e.dashed}));return()=>U(`li`,{class:n.value},null)}}),nS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{if(e&&typeof e==`object`){let i=e,{label:a,children:o,key:s,type:c}=i,l=nS(i,[`label`,`children`,`key`,`type`]),u=s??`tmp-${r}`,d=n?n.parentKeys.slice():[],f=[],p={eventKey:u,key:u,parentEventKeys:H(d),parentKeys:H(d),childrenEventKeys:H(f),isLeaf:!1};if(o||c===`group`){if(c===`group`){let r=rS(o,t,n);return U(eS,Y(Y({key:u},l),{},{title:a,originItemValue:e}),{default:()=>[r]})}t.set(u,p),n&&n.childrenEventKeys.push(u);let r=rS(o,t,{childrenEventKeys:f,parentKeys:[].concat(d,u)});return U(Yx,Y(Y({key:u},l),{},{title:a,originItemValue:e}),{default:()=>[r]})}return c===`divider`?U(tS,Y({key:u},l),null):(p.isLeaf=!0,t.set(u,p),U(Bx,Y(Y({key:u},l),{},{originItemValue:e}),{default:()=>[a]}))}return null}).filter(e=>e)}function iS(e){let t=q([]),n=q(!1),r=q(new Map);return G(()=>e.items,()=>{let i=new Map;n.value=!1,e.items?(n.value=!0,t.value=rS(e.items,i)):t.value=void 0,r.value=i},{immediate:!0,deep:!0}),{itemsNodes:t,store:r,hasItmes:n}}var aS=e=>{let{componentCls:t,motionDurationSlow:n,menuHorizontalHeight:r,colorSplit:i,lineWidth:a,lineType:o,menuItemPaddingInline:s}=e;return{[`${t}-horizontal`]:{lineHeight:`${r}px`,border:0,borderBottom:`${a}px ${o} ${i}`,boxShadow:`none`,"&::after":{display:`block`,clear:`both`,height:0,content:`"\\20"`},[`${t}-item, ${t}-submenu`]:{position:`relative`,display:`inline-block`,verticalAlign:`bottom`,paddingInline:s},[`> ${t}-item:hover,
+ > ${t}-item-active,
+ > ${t}-submenu ${t}-submenu-title:hover`]:{backgroundColor:`transparent`},[`${t}-item, ${t}-submenu-title`]:{transition:[`border-color ${n}`,`background ${n}`].join(`,`)},[`${t}-submenu-arrow`]:{display:`none`}}}},oS=e=>{let{componentCls:t,menuArrowOffset:n}=e;return{[`${t}-rtl`]:{direction:`rtl`},[`${t}-submenu-rtl`]:{transformOrigin:`100% 0`},[`${t}-rtl${t}-vertical,
+ ${t}-submenu-rtl ${t}-vertical`]:{[`${t}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(-${n})`},"&::after":{transform:`rotate(45deg) translateY(${n})`}}}}},sS=e=>Z({},te(e)),cS=(e,t)=>{let{componentCls:n,colorItemText:r,colorItemTextSelected:i,colorGroupTitle:a,colorItemBg:o,colorSubItemBg:s,colorItemBgSelected:c,colorActiveBarHeight:l,colorActiveBarWidth:u,colorActiveBarBorderSize:d,motionDurationSlow:f,motionEaseInOut:p,motionEaseOut:m,menuItemPaddingInline:h,motionDurationMid:g,colorItemTextHover:_,lineType:v,colorSplit:y,colorItemTextDisabled:b,colorDangerItemText:x,colorDangerItemTextHover:S,colorDangerItemTextSelected:C,colorDangerItemBgActive:w,colorDangerItemBgSelected:T,colorItemBgHover:E,menuSubMenuBg:D,colorItemTextSelectedHorizontal:O,colorItemBgSelectedHorizontal:k}=e;return{[`${n}-${t}`]:{color:r,background:o,[`&${n}-root:focus-visible`]:Z({},sS(e)),[`${n}-item-group-title`]:{color:a},[`${n}-submenu-selected`]:{[`> ${n}-submenu-title`]:{color:i}},[`${n}-item-disabled, ${n}-submenu-disabled`]:{color:`${b} !important`},[`${n}-item:hover, ${n}-submenu-title:hover`]:{[`&:not(${n}-item-selected):not(${n}-submenu-selected)`]:{color:_}},[`&:not(${n}-horizontal)`]:{[`${n}-item:not(${n}-item-selected)`]:{"&:hover":{backgroundColor:E},"&:active":{backgroundColor:c}},[`${n}-submenu-title`]:{"&:hover":{backgroundColor:E},"&:active":{backgroundColor:c}}},[`${n}-item-danger`]:{color:x,[`&${n}-item:hover`]:{[`&:not(${n}-item-selected):not(${n}-submenu-selected)`]:{color:S}},[`&${n}-item:active`]:{background:w}},[`${n}-item a`]:{"&, &:hover":{color:`inherit`}},[`${n}-item-selected`]:{color:i,[`&${n}-item-danger`]:{color:C},"a, a:hover":{color:`inherit`}},[`& ${n}-item-selected`]:{backgroundColor:c,[`&${n}-item-danger`]:{backgroundColor:T}},[`${n}-item, ${n}-submenu-title`]:{[`&:not(${n}-item-disabled):focus-visible`]:Z({},sS(e))},[`&${n}-submenu > ${n}`]:{backgroundColor:D},[`&${n}-popup > ${n}`]:{backgroundColor:o},[`&${n}-horizontal`]:Z(Z({},t===`dark`?{borderBottom:0}:{}),{[`> ${n}-item, > ${n}-submenu`]:{top:d,marginTop:-d,marginBottom:0,borderRadius:0,"&::after":{position:`absolute`,insetInline:h,bottom:0,borderBottom:`${l}px solid transparent`,transition:`border-color ${f} ${p}`,content:`""`},"&:hover, &-active, &-open":{"&::after":{borderBottomWidth:l,borderBottomColor:O}},"&-selected":{color:O,backgroundColor:k,"&::after":{borderBottomWidth:l,borderBottomColor:O}}}}),[`&${n}-root`]:{[`&${n}-inline, &${n}-vertical`]:{borderInlineEnd:`${d}px ${v} ${y}`}},[`&${n}-inline`]:{[`${n}-sub${n}-inline`]:{background:s},[`${n}-item, ${n}-submenu-title`]:d&&u?{width:`calc(100% + ${d}px)`}:{},[`${n}-item`]:{position:`relative`,"&::after":{position:`absolute`,insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${u}px solid ${i}`,transform:`scaleY(0.0001)`,opacity:0,transition:[`transform ${g} ${m}`,`opacity ${g} ${m}`].join(`,`),content:`""`},[`&${n}-item-danger`]:{"&::after":{borderInlineEndColor:C}}},[`${n}-selected, ${n}-item-selected`]:{"&::after":{transform:`scaleY(1)`,opacity:1,transition:[`transform ${g} ${p}`,`opacity ${g} ${p}`].join(`,`)}}}}}},lS=e=>{let{componentCls:t,menuItemHeight:n,itemMarginInline:r,padding:i,menuArrowSize:a,marginXS:o,marginXXS:s}=e,c=i+a+o;return{[`${t}-item`]:{position:`relative`},[`${t}-item, ${t}-submenu-title`]:{height:n,lineHeight:`${n}px`,paddingInline:i,overflow:`hidden`,textOverflow:`ellipsis`,marginInline:r,marginBlock:s,width:`calc(100% - ${r*2}px)`},[`${t}-submenu`]:{paddingBottom:.02},[`> ${t}-item,
+ > ${t}-submenu > ${t}-submenu-title`]:{height:n,lineHeight:`${n}px`},[`${t}-item-group-list ${t}-submenu-title,
+ ${t}-submenu-title`]:{paddingInlineEnd:c}}},uS=e=>{let{componentCls:t,iconCls:n,menuItemHeight:r,colorTextLightSolid:i,dropdownWidth:a,controlHeightLG:o,motionDurationMid:s,motionEaseOut:c,paddingXL:l,fontSizeSM:u,fontSizeLG:d,motionDurationSlow:f,paddingXS:p,boxShadowSecondary:m}=e,h={height:r,lineHeight:`${r}px`,listStylePosition:`inside`,listStyleType:`disc`};return[{[t]:{"&-inline, &-vertical":Z({[`&${t}-root`]:{boxShadow:`none`}},lS(e))},[`${t}-submenu-popup`]:{[`${t}-vertical`]:Z(Z({},lS(e)),{boxShadow:m})}},{[`${t}-submenu-popup ${t}-vertical${t}-sub`]:{minWidth:a,maxHeight:`calc(100vh - ${o*2.5}px)`,padding:`0`,overflow:`hidden`,borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:`hidden`,overflowY:`auto`}}},{[`${t}-inline`]:{width:`100%`,[`&${t}-root`]:{[`${t}-item, ${t}-submenu-title`]:{display:`flex`,alignItems:`center`,transition:[`border-color ${f}`,`background ${f}`,`padding ${s} ${c}`].join(`,`),[`> ${t}-title-content`]:{flex:`auto`,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`},"> *":{flex:`none`}}},[`${t}-sub${t}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:`none`,[`& > ${t}-submenu > ${t}-submenu-title`]:h,[`& ${t}-item-group-title`]:{paddingInlineStart:l}},[`${t}-item`]:h}},{[`${t}-inline-collapsed`]:{width:r*2,[`&${t}-root`]:{[`${t}-item, ${t}-submenu ${t}-submenu-title`]:{[`> ${t}-inline-collapsed-noicon`]:{fontSize:d,textAlign:`center`}}},[`> ${t}-item,
+ > ${t}-item-group > ${t}-item-group-list > ${t}-item,
+ > ${t}-item-group > ${t}-item-group-list > ${t}-submenu > ${t}-submenu-title,
+ > ${t}-submenu > ${t}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${u}px)`,textOverflow:`clip`,[`
+ ${t}-submenu-arrow,
+ ${t}-submenu-expand-icon
+ `]:{opacity:0},[`${t}-item-icon, ${n}`]:{margin:0,fontSize:d,lineHeight:`${r}px`,"+ span":{display:`inline-block`,opacity:0}}},[`${t}-item-icon, ${n}`]:{display:`inline-block`},"&-tooltip":{pointerEvents:`none`,[`${t}-item-icon, ${n}`]:{display:`none`},"a, a:hover":{color:i}},[`${t}-item-group-title`]:Z(Z({},Te),{paddingInline:p})}}]},dS=e=>{let{componentCls:t,fontSize:n,motionDurationSlow:r,motionDurationMid:i,motionEaseInOut:a,motionEaseOut:o,iconCls:s,controlHeightSM:c}=e;return{[`${t}-item, ${t}-submenu-title`]:{position:`relative`,display:`block`,margin:0,whiteSpace:`nowrap`,cursor:`pointer`,transition:[`border-color ${r}`,`background ${r}`,`padding ${r} ${a}`].join(`,`),[`${t}-item-icon, ${s}`]:{minWidth:n,fontSize:n,transition:[`font-size ${i} ${o}`,`margin ${r} ${a}`,`color ${r}`].join(`,`),"+ span":{marginInlineStart:c-n,opacity:1,transition:[`opacity ${r} ${a}`,`margin ${r}`,`color ${r}`].join(`,`)}},[`${t}-item-icon`]:Z({},u()),[`&${t}-item-only-child`]:{[`> ${s}, > ${t}-item-icon`]:{marginInlineEnd:0}}},[`${t}-item-disabled, ${t}-submenu-disabled`]:{background:`none !important`,cursor:`not-allowed`,"&::after":{borderColor:`transparent !important`},a:{color:`inherit !important`},[`> ${t}-submenu-title`]:{color:`inherit !important`,cursor:`not-allowed`}}}},fS=e=>{let{componentCls:t,motionDurationSlow:n,motionEaseInOut:r,borderRadius:i,menuArrowSize:a,menuArrowOffset:o}=e;return{[`${t}-submenu`]:{"&-expand-icon, &-arrow":{position:`absolute`,top:`50%`,insetInlineEnd:e.margin,width:a,color:`currentcolor`,transform:`translateY(-50%)`,transition:`transform ${n} ${r}, opacity ${n}`},"&-arrow":{"&::before, &::after":{position:`absolute`,width:a*.6,height:a*.15,backgroundColor:`currentcolor`,borderRadius:i,transition:[`background ${n} ${r}`,`transform ${n} ${r}`,`top ${n} ${r}`,`color ${n} ${r}`].join(`,`),content:`""`},"&::before":{transform:`rotate(45deg) translateY(-${o})`},"&::after":{transform:`rotate(-45deg) translateY(${o})`}}}}},pS=e=>{let{antCls:t,componentCls:n,fontSize:r,motionDurationSlow:i,motionDurationMid:a,motionEaseInOut:o,lineHeight:s,paddingXS:c,padding:l,colorSplit:u,lineWidth:d,zIndexPopup:f,borderRadiusLG:p,radiusSubMenuItem:m,menuArrowSize:h,menuArrowOffset:g,lineType:_,menuPanelMaskInset:v}=e;return[{"":{[`${n}`]:Z(Z({},j()),{"&-hidden":{display:`none`}})},[`${n}-submenu-hidden`]:{display:`none`}},{[n]:Z(Z(Z(Z(Z(Z(Z({},cn(e)),j()),{marginBottom:0,paddingInlineStart:0,fontSize:r,lineHeight:0,listStyle:`none`,outline:`none`,transition:`width ${i} cubic-bezier(0.2, 0, 0, 1) 0s`,"ul, ol":{margin:0,padding:0,listStyle:`none`},"&-overflow":{display:`flex`,[`${n}-item`]:{flex:`none`}},[`${n}-item, ${n}-submenu, ${n}-submenu-title`]:{borderRadius:e.radiusItem},[`${n}-item-group-title`]:{padding:`${c}px ${l}px`,fontSize:r,lineHeight:s,transition:`all ${i}`},[`&-horizontal ${n}-submenu`]:{transition:[`border-color ${i} ${o}`,`background ${i} ${o}`].join(`,`)},[`${n}-submenu, ${n}-submenu-inline`]:{transition:[`border-color ${i} ${o}`,`background ${i} ${o}`,`padding ${a} ${o}`].join(`,`)},[`${n}-submenu ${n}-sub`]:{cursor:`initial`,transition:[`background ${i} ${o}`,`padding ${i} ${o}`].join(`,`)},[`${n}-title-content`]:{transition:`color ${i}`},[`${n}-item a`]:{"&::before":{position:`absolute`,inset:0,backgroundColor:`transparent`,content:`""`}},[`${n}-item-divider`]:{overflow:`hidden`,lineHeight:0,borderColor:u,borderStyle:_,borderWidth:0,borderTopWidth:d,marginBlock:d,padding:0,"&-dashed":{borderStyle:`dashed`}}}),dS(e)),{[`${n}-item-group`]:{[`${n}-item-group-list`]:{margin:0,padding:0,[`${n}-item, ${n}-submenu-title`]:{paddingInline:`${r*2}px ${l}px`}}},"&-submenu":{"&-popup":{position:`absolute`,zIndex:f,background:`transparent`,borderRadius:p,boxShadow:`none`,transformOrigin:`0 0`,"&::before":{position:`absolute`,inset:`${v}px 0 0`,zIndex:-1,width:`100%`,height:`100%`,opacity:0,content:`""`}},"&-placement-rightTop::before":{top:0,insetInlineStart:v},[`> ${n}`]:Z(Z(Z({borderRadius:p},dS(e)),fS(e)),{[`${n}-item, ${n}-submenu > ${n}-submenu-title`]:{borderRadius:m},[`${n}-submenu-title::after`]:{transition:`transform ${i} ${o}`}})}}),fS(e)),{[`&-inline-collapsed ${n}-submenu-arrow,
+ &-inline ${n}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${g})`},"&::after":{transform:`rotate(45deg) translateX(-${g})`}},[`${n}-submenu-open${n}-submenu-inline > ${n}-submenu-title > ${n}-submenu-arrow`]:{transform:`translateY(-${h*.2}px)`,"&::after":{transform:`rotate(-45deg) translateX(-${g})`},"&::before":{transform:`rotate(45deg) translateX(${g})`}}})},{[`${t}-layout-header`]:{[n]:{lineHeight:`inherit`}}}]},mS=((e,t)=>S(`Menu`,(e,n)=>{let{overrideComponentToken:r}=n;if(t?.value===!1)return[];let{colorBgElevated:i,colorPrimary:a,colorError:o,colorErrorHover:s,colorTextLightSolid:c}=e,{controlHeightLG:l,fontSize:u}=e,d=u/7*5,f=B(e,{menuItemHeight:l,menuItemPaddingInline:e.margin,menuArrowSize:d,menuHorizontalHeight:l*1.15,menuArrowOffset:`${d*.25}px`,menuPanelMaskInset:-7,menuSubMenuBg:i}),p=new Oe(c).setAlpha(.65).toRgbString(),m=B(f,{colorItemText:p,colorItemTextHover:c,colorGroupTitle:p,colorItemTextSelected:c,colorItemBg:`#001529`,colorSubItemBg:`#000c17`,colorItemBgActive:`transparent`,colorItemBgSelected:a,colorActiveBarWidth:0,colorActiveBarHeight:0,colorActiveBarBorderSize:0,colorItemTextDisabled:new Oe(c).setAlpha(.25).toRgbString(),colorDangerItemText:o,colorDangerItemTextHover:s,colorDangerItemTextSelected:c,colorDangerItemBgActive:o,colorDangerItemBgSelected:o,menuSubMenuBg:`#001529`,colorItemTextSelectedHorizontal:c,colorItemBgSelectedHorizontal:a},Z({},r));return[pS(f),aS(f),uS(f),cS(f,`light`),cS(m,`dark`),oS(f),q_(f),M_(f,`slide-up`),M_(f,`slide-down`),K_(f,`zoom-big`)]},e=>{let{colorPrimary:t,colorError:n,colorTextDisabled:r,colorErrorBg:i,colorText:a,colorTextDescription:o,colorBgContainer:s,colorFillAlter:c,colorFillContent:l,lineWidth:u,lineWidthBold:d,controlItemBgActive:f,colorBgTextHover:p}=e;return{dropdownWidth:160,zIndexPopup:e.zIndexPopupBase+50,radiusItem:e.borderRadiusLG,radiusSubMenuItem:e.borderRadiusSM,colorItemText:a,colorItemTextHover:a,colorItemTextHoverHorizontal:t,colorGroupTitle:o,colorItemTextSelected:t,colorItemTextSelectedHorizontal:t,colorItemBg:s,colorItemBgHover:p,colorItemBgActive:l,colorSubItemBg:c,colorItemBgSelected:f,colorItemBgSelectedHorizontal:`transparent`,colorActiveBarWidth:0,colorActiveBarHeight:d,colorActiveBarBorderSize:u,colorItemTextDisabled:r,colorDangerItemText:n,colorDangerItemTextHover:n,colorDangerItemTextSelected:n,colorDangerItemBgActive:i,colorDangerItemBgSelected:i,itemMarginInline:e.marginXXS}})(e)),hS=()=>({id:String,prefixCls:String,items:Array,disabled:Boolean,inlineCollapsed:Boolean,disabledOverflow:Boolean,forceSubMenuRender:Boolean,openKeys:Array,selectedKeys:Array,activeKey:String,selectable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},tabindex:{type:[Number,String]},motion:Object,role:String,theme:{type:String,default:`light`},mode:{type:String,default:`vertical`},inlineIndent:{type:Number,default:24},subMenuOpenDelay:{type:Number,default:0},subMenuCloseDelay:{type:Number,default:.1},builtinPlacements:{type:Object},triggerSubMenuAction:{type:String,default:`hover`},getPopupContainer:Function,expandIcon:Function,onOpenChange:Function,onSelect:Function,onDeselect:Function,onClick:[Function,Array],onFocus:Function,onBlur:Function,onMousedown:Function,"onUpdate:openKeys":Function,"onUpdate:selectedKeys":Function,"onUpdate:activeKey":Function}),gS=[],_S=m({compatConfig:{MODE:3},name:`AMenu`,inheritAttrs:!1,props:hS(),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i}=t,{direction:a,getPrefixCls:o}=X(`menu`,e),s=fx(),c=J(()=>o(`menu`,e.prefixCls||s?.prefixCls?.value)),[l,u]=mS(c,J(()=>!s)),d=q(new Map),f=b(kx,H(void 0)),p=J(()=>f.value===void 0?e.inlineCollapsed:f.value),{itemsNodes:m}=iS(e),h=q(!1);V(()=>{h.value=!0}),E(()=>{si(!(e.inlineCollapsed===!0&&e.mode!==`inline`),`Menu`,"`inlineCollapsed` should only be used when `mode` is inline."),si(!(f.value!==void 0&&e.inlineCollapsed===!0),`Menu`,"`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.")});let g=H([]),_=H([]),v=H({});G(d,()=>{let e={};for(let t of d.value.values())e[t.key]=t;v.value=e},{flush:`post`}),E(()=>{if(e.activeKey!==void 0){let t=[],n=e.activeKey?v.value[e.activeKey]:void 0;t=n&&e.activeKey!==void 0?t_([].concat(Ue(n.parentKeys),e.activeKey)):[],vx(g.value,t)||(g.value=t)}}),G(()=>e.selectedKeys,e=>{e&&(_.value=e.slice())},{immediate:!0,deep:!0});let y=H([]);G([v,_],()=>{let e=[];_.value.forEach(t=>{let n=v.value[t];n&&(e=e.concat(Ue(n.parentKeys)))}),e=t_(e),vx(y.value,e)||(y.value=e)},{immediate:!0});let x=t=>{if(e.selectable){let{key:n}=t,i=_.value.includes(n),a;a=e.multiple?i?_.value.filter(e=>e!==n):[..._.value,n]:[n];let o=Z(Z({},t),{selectedKeys:a});vx(a,_.value)||(e.selectedKeys===void 0&&(_.value=a),r(`update:selectedKeys`,a),i&&e.multiple?r(`deselect`,o):r(`select`,o))}O.value!==`inline`&&!e.multiple&&S.value.length&&j(gS)},S=H([]);G(()=>e.openKeys,function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:S.value;vx(S.value,e)||(S.value=e.slice())},{immediate:!0,deep:!0});let C,w=t=>{clearTimeout(C),C=setTimeout(()=>{e.activeKey===void 0&&(g.value=t),r(`update:activeKey`,t[t.length-1])})},T=J(()=>!!e.disabled),D=J(()=>a.value===`rtl`),O=H(`vertical`),k=q(!1);E(()=>{(e.mode===`inline`||e.mode===`vertical`)&&p.value?(O.value=`vertical`,k.value=p.value):(O.value=e.mode,k.value=!1),s?.mode?.value&&(O.value=s.mode.value)});let A=J(()=>O.value===`inline`),j=e=>{S.value=e,r(`update:openKeys`,e),r(`openChange`,e)},M=H(S.value),N=q(!1);G(S,()=>{A.value&&(M.value=S.value)},{immediate:!0}),G(A,()=>{if(!N.value){N.value=!0;return}A.value?S.value=M.value:j(gS)},{immediate:!0});let P=J(()=>({[`${c.value}`]:!0,[`${c.value}-root`]:!0,[`${c.value}-${O.value}`]:!0,[`${c.value}-inline-collapsed`]:k.value,[`${c.value}-rtl`]:D.value,[`${c.value}-${e.theme}`]:!0})),F=J(()=>o()),I=J(()=>({horizontal:{name:`${F.value}-slide-up`},inline:$x(`${F.value}-motion-collapse`),other:{name:`${F.value}-zoom-big`}}));Ex(!0);let L=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=[],n=d.value;return e.forEach(e=>{let{key:r,childrenEventKeys:i}=n.get(e);t.push(r,...L(Ue(i)))}),t},R=e=>{var t;r(`click`,e),x(e),(t=s?.onClick)==null||t.call(s)},ee=(e,t)=>{let n=v.value[e]?.childrenEventKeys||[],r=S.value.filter(t=>t!==e);if(t)r.push(e);else if(O.value!==`inline`){let e=L(Ue(n));r=t_(r.filter(t=>!e.includes(t)))}vx(S,r)||j(r)},te=(e,t)=>{d.value.set(e,t),d.value=new Map(d.value)},z=e=>{d.value.delete(e),d.value=new Map(d.value)},ne=H(0),re=J(()=>e.expandIcon||n.expandIcon||s?.expandIcon?.value?t=>{let r=e.expandIcon||n.expandIcon;return r=typeof r==`function`?r(t):r,$a(r,{class:`${c.value}-submenu-expand-icon`},!1)}:null);bx({prefixCls:c,activeKeys:g,openKeys:S,selectedKeys:_,changeActiveKeys:w,disabled:T,rtl:D,mode:O,inlineIndent:J(()=>e.inlineIndent),subMenuCloseDelay:J(()=>e.subMenuCloseDelay),subMenuOpenDelay:J(()=>e.subMenuOpenDelay),builtinPlacements:J(()=>e.builtinPlacements),triggerSubMenuAction:J(()=>e.triggerSubMenuAction),getPopupContainer:J(()=>e.getPopupContainer),inlineCollapsed:k,theme:J(()=>e.theme),siderCollapsed:f,defaultMotions:J(()=>h.value?I.value:null),motion:J(()=>h.value?e.motion:null),overflowDisabled:q(void 0),onOpenChange:ee,onItemClick:R,registerMenuInfo:te,unRegisterMenuInfo:z,selectedSubMenuKeys:y,expandIcon:re,forceSubMenuRender:J(()=>e.forceSubMenuRender),rootClassName:u});let ie=()=>m.value||fe(n.default?.call(n));return()=>{let t=ie(),r=ne.value>=t.length-1||O.value!==`horizontal`||e.disabledOverflow,a=t=>O.value!==`horizontal`||e.disabledOverflow?t:t.map((e,t)=>U(Ox,{key:e.key,overflowDisabled:t>ne.value},{default:()=>e})),o=n.overflowedIndicator?.call(n)||U($b,null,null);return l(U(Ju,Y(Y({},i),{},{onMousedown:e.onMousedown,prefixCls:`${c.value}-overflow`,component:`ul`,itemComponent:Bx,class:[P.value,i.class,u.value],role:`menu`,id:e.id,data:a(t),renderRawItem:e=>e,renderRawRest:e=>{let n=e.length,i=n?t.slice(-n):null;return U(rt,null,[U(Yx,{eventKey:jx,key:jx,title:o,disabled:r,internalPopupClose:n===0},{default:()=>i}),U(Ix,null,{default:()=>[U(Yx,{eventKey:jx,key:jx,title:o,disabled:r,internalPopupClose:n===0},{default:()=>i})]})])},maxCount:O.value!==`horizontal`||e.disabledOverflow?Ju.INVALIDATE:Ju.RESPONSIVE,ssr:`full`,"data-menu-list":!0,onVisibleChange:e=>{ne.value=e}}),{default:()=>[U(Nt,{to:`body`},{default:()=>[U(`div`,{style:{display:`none`},"aria-hidden":!0},[U(Ix,null,{default:()=>[a(ie())]})])]})]}))}}});_S.install=function(e){return e.component(_S.name,_S),e.component(Bx.name,Bx),e.component(Yx.name,Yx),e.component(tS.name,tS),e.component(eS.name,eS),e},_S.Item=Bx,_S.Divider=tS,_S.SubMenu=Yx,_S.ItemGroup=eS;var vS=_S,yS=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:Z(Z({},cn(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:Z({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},he(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
+ > ${n} + span,
+ > ${n} + a
+ `]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,padding:`0 ${e.paddingXXS}px`,marginInline:-e.marginXXS,[`> ${n}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover,a:{color:e.breadcrumbLinkColorHover}},a:{"&:hover":{backgroundColor:`transparent`}}},[`&${e.componentCls}-rtl`]:{direction:`rtl`}})}},bS=S(`Breadcrumb`,e=>[yS(B(e,{breadcrumbBaseColor:e.colorTextDescription,breadcrumbFontSize:e.fontSize,breadcrumbIconFontSize:e.fontSize,breadcrumbLinkColor:e.colorTextDescription,breadcrumbLinkColorHover:e.colorText,breadcrumbLastItemColor:e.colorText,breadcrumbSeparatorMargin:e.marginXS,breadcrumbSeparatorColor:e.colorTextDescription}))]),xS=()=>({prefixCls:String,routes:{type:Array},params:g.any,separator:g.any,itemRender:{type:Function}});function SS(e,t){if(!e.breadcrumbName)return null;let n=Object.keys(t).join(`|`);return e.breadcrumbName.replace(RegExp(`:(${n})`,`g`),(e,n)=>t[n]||e)}function CS(e){let{route:t,params:n,routes:r,paths:i}=e,a=r.indexOf(t)===r.length-1,o=SS(t,n);return a?U(`span`,null,[o]):U(`a`,{href:`#/${i.join(`/`)}`},[o])}var wS=m({compatConfig:{MODE:3},name:`ABreadcrumb`,inheritAttrs:!1,props:xS(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:a,direction:o}=X(`breadcrumb`,e),[s,c]=bS(a),l=(e,t)=>(e=(e||``).replace(/^\//,``),Object.keys(t).forEach(n=>{e=e.replace(`:${n}`,t[n])}),e),u=(e,t,n)=>{let r=[...e],i=l(t||``,n);return i&&r.push(i),r},d=e=>{let{routes:t=[],params:n={},separator:r,itemRender:i=CS}=e,a=[];return t.map(e=>{let o=l(e.path,n);o&&a.push(o);let s=[...a],c=null;e.children&&e.children.length&&(c=U(vS,{items:e.children.map(e=>({key:e.path||e.breadcrumbName,label:i({route:e,params:n,routes:t,paths:u(s,e.path,n)})}))},null));let d={separator:r};return c&&(d.overlay=c),U(gx,Y(Y({},d),{},{key:o||e.breadcrumbName}),{default:()=>[i({route:e,params:n,routes:t,paths:s})]})})};return()=>{let t,{routes:l,params:u={}}=e,f=fe(un(n,e)),p=un(n,e,`separator`)??`/`,m=e.itemRender||n.itemRender||CS;l&&l.length>0?t=d({routes:l,params:u,separator:p,itemRender:m}):f.length&&(t=f.map((e,t)=>(i(typeof e.type==`object`&&(e.type.__ANT_BREADCRUMB_ITEM||e.type.__ANT_BREADCRUMB_SEPARATOR),`Breadcrumb`,`Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children`),ct(e,{separator:p,key:t}))));let h={[a.value]:!0,[`${a.value}-rtl`]:o.value===`rtl`,[`${r.class}`]:!!r.class,[c.value]:!0};return s(U(`nav`,Y(Y({},r),{},{class:h}),[U(`ol`,null,[t])]))}}}),TS=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i{let{separator:e,class:t}=r,a=TS(r,[`separator`,`class`]),o=fe(n.default?.call(n));return U(`span`,Y({class:[`${i.value}-separator`,t]},a),[o.length>0?o:`/`])}}});wS.Item=gx,wS.Separator=ES,wS.install=function(e){return e.component(wS.name,wS),e.component(gx.name,gx),e.component(ES.name,ES),e};var DS=wS,OS=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekday=r()})(e,(function(){return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,n=this.$W,r=(n{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_localeData=r()})(e,(function(){return function(e,t,n){var r=t.prototype,i=function(e){return e&&(e.indexOf?e:e.s)},a=function(e,t,n,r,a){var o=e.name?e:e.$locale(),s=i(o[t]),c=i(o[n]),l=s||c.map((function(e){return e.slice(0,r)}));if(!a)return l;var u=o.weekStart;return l.map((function(e,t){return l[(t+(u||0))%7]}))},o=function(){return n.Ls[n.locale()]},s=function(e,t){return e.formats[t]||function(e){return e.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}(e.formats[t.toUpperCase()])},c=function(){var e=this;return{months:function(t){return t?t.format(`MMMM`):a(e,`months`)},monthsShort:function(t){return t?t.format(`MMM`):a(e,`monthsShort`,`months`,3)},firstDayOfWeek:function(){return e.$locale().weekStart||0},weekdays:function(t){return t?t.format(`dddd`):a(e,`weekdays`)},weekdaysMin:function(t){return t?t.format(`dd`):a(e,`weekdaysMin`,`weekdays`,2)},weekdaysShort:function(t){return t?t.format(`ddd`):a(e,`weekdaysShort`,`weekdays`,3)},longDateFormat:function(t){return s(e.$locale(),t)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return c.bind(this)()},n.localeData=function(){var e=o();return{firstDayOfWeek:function(){return e.weekStart||0},weekdays:function(){return n.weekdays()},weekdaysShort:function(){return n.weekdaysShort()},weekdaysMin:function(){return n.weekdaysMin()},months:function(){return n.months()},monthsShort:function(){return n.monthsShort()},longDateFormat:function(t){return s(e,t)},meridiem:e.meridiem,ordinal:e.ordinal}},n.months=function(){return a(o(),`months`)},n.monthsShort=function(){return a(o(),`monthsShort`,`months`,3)},n.weekdays=function(e){return a(o(),`weekdays`,null,null,e)},n.weekdaysShort=function(e){return a(o(),`weekdaysShort`,`weekdays`,3,e)},n.weekdaysMin=function(e){return a(o(),`weekdaysMin`,`weekdays`,2,e)}}}))})),AS=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekOfYear=r()})(e,(function(){var e=`week`,t=`year`;return function(n,r,i){var a=r.prototype;a.week=function(n){if(n===void 0&&(n=null),n!==null)return this.add(7*(n-this.week()),`day`);var r=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var a=i(this).startOf(t).add(1,t).date(r),o=i(this).endOf(e);if(a.isBefore(o))return 1}var s=i(this).startOf(t).date(r).startOf(e).subtract(1,`millisecond`),c=this.diff(s,e,!0);return c<0?i(this).startOf(`week`).week():Math.ceil(c)},a.weeks=function(e){return e===void 0&&(e=null),this.week(e)}}}))})),jS=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekYear=r()})(e,(function(){return function(e,t){t.prototype.weekYear=function(){var e=this.month(),t=this.week(),n=this.year();return t===1&&e===11?n+1:e===0&&t>=52?n-1:n}}}))})),MS=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_quarterOfYear=r()})(e,(function(){var e=`month`,t=`quarter`;return function(n,r){var i=r.prototype;i.quarter=function(e){return this.$utils().u(e)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(e-1))};var a=i.add;i.add=function(n,r){return n=Number(n),this.$utils().p(r)===t?this.add(3*n,e):a.bind(this)(n,r)};var o=i.startOf;i.startOf=function(n,r){var i=this.$utils(),a=!!i.u(r)||r;if(i.p(n)===t){var s=this.quarter()-1;return a?this.month(3*s).startOf(e).startOf(`day`):this.month(3*s+2).endOf(e).endOf(`day`)}return o.bind(this)(n,r)}}}))})),NS=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_advancedFormat=r()})(e,(function(){return function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var i=this.$utils(),a=(e||`YYYY-MM-DDTHH:mm:ssZ`).replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case`Q`:return Math.ceil((t.$M+1)/3);case`Do`:return n.ordinal(t.$D);case`gggg`:return t.weekYear();case`GGGG`:return t.isoWeekYear();case`wo`:return n.ordinal(t.week(),`W`);case`w`:case`ww`:return i.s(t.week(),e===`w`?1:2,`0`);case`W`:case`WW`:return i.s(t.isoWeek(),e===`W`?1:2,`0`);case`k`:case`kk`:return i.s(String(t.$H===0?24:t.$H),e===`k`?1:2,`0`);case`X`:return Math.floor(t.$d.getTime()/1e3);case`x`:return t.$d.getTime();case`z`:return`[`+t.offsetName()+`]`;case`zzz`:return`[`+t.offsetName(`long`)+`]`;default:return e}}));return r.bind(this)(a)}}}))})),PS=t(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_customParseFormat=r()})(e,(function(){var e={LTS:`h:mm:ss A`,LT:`h:mm A`,L:`MM/DD/YYYY`,LL:`MMMM D, YYYY`,LLL:`MMMM D, YYYY h:mm A`,LLLL:`dddd, MMMM D, YYYY h:mm A`},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)},c=function(e){return function(t){this[e]=+t}},l=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||={}).offset=function(e){if(!e||e===`Z`)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return n===0?0:t[0]===`+`?-n:n}(e)}],u=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?`pm`:`PM`);return n},f={A:[a,function(e){this.afternoon=d(e,!1)}],a:[a,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*e}],SS:[r,function(e){this.milliseconds=10*e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,c(`seconds`)],ss:[i,c(`seconds`)],m:[i,c(`minutes`)],mm:[i,c(`minutes`)],H:[i,c(`hours`)],h:[i,c(`hours`)],HH:[i,c(`hours`)],hh:[i,c(`hours`)],D:[i,c(`day`)],DD:[r,c(`day`)],Do:[a,function(e){var t=o.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,``)===e&&(this.day=r)}],w:[i,c(`week`)],ww:[r,c(`week`)],M:[i,c(`month`)],MM:[r,c(`month`)],MMM:[a,function(e){var t=u(`months`),n=(u(`monthsShort`)||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw Error();this.month=n%12||n}],MMMM:[a,function(e){var t=u(`months`).indexOf(e)+1;if(t<1)throw Error();this.month=t%12||t}],Y:[/[+-]?\d+/,c(`year`)],YY:[r,function(e){this.year=s(e)}],YYYY:[/\d{4}/,c(`year`)],Z:l,ZZ:l};function p(n){for(var r=n,i=o&&o.formats,a=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var a=r&&r.toUpperCase();return n||i[r]||e[r]||i[a].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),s=a.length,c=0;c-1)return new Date((t===`X`?1e3:1)*e);var i=p(t)(e),a=i.year,o=i.month,s=i.day,c=i.hours,l=i.minutes,u=i.seconds,d=i.milliseconds,f=i.zone,m=i.week,h=new Date,g=s||(a||o?1:h.getDate()),_=a||h.getFullYear(),v=0;a&&!o||(v=o>0?o-1:h.getMonth());var y,b=c||0,x=l||0,S=u||0,C=d||0;return f?new Date(Date.UTC(_,v,g,b,x,S,C+60*f.offset*1e3)):n?new Date(Date.UTC(_,v,g,b,x,S,C)):(y=new Date(_,v,g,b,x,S,C),m&&(y=r(y).week(m).toDate()),y)}catch{return new Date(``)}}(t,s,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(s)&&(this.$d=new Date(``)),o={}}else if(s instanceof Array)for(var f=s.length,m=1;m<=f;m+=1){a[1]=s[m-1];var h=n.apply(this,a);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}m===f&&(this.$d=new Date(``))}else i.call(this,e)}}}))})),FS=e(r()),IS=e(OS()),LS=e(kS()),RS=e(AS()),zS=e(jS()),BS=e(MS()),VS=e(NS()),HS=e(PS());FS.default.extend(HS.default),FS.default.extend(VS.default),FS.default.extend(IS.default),FS.default.extend(LS.default),FS.default.extend(RS.default),FS.default.extend(zS.default),FS.default.extend(BS.default),FS.default.extend((e,t)=>{let n=t.prototype,r=n.format;n.format=function(e){let t=(e||``).replace(`Wo`,`wo`);return r.bind(this)(t)}});var US={bn_BD:`bn-bd`,by_BY:`be`,en_GB:`en-gb`,en_US:`en`,fr_BE:`fr`,fr_CA:`fr-ca`,hy_AM:`hy-am`,kmr_IQ:`ku`,nl_BE:`nl-be`,pt_BR:`pt-br`,zh_CN:`zh-cn`,zh_HK:`zh-hk`,zh_TW:`zh-tw`},WS=e=>US[e]||e.split(`_`)[0],GS=()=>{hr(!1,`Not match any format. Please help to fire a issue about this.`)},KS=/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|k{1,2}|S/g;function qS(e,t,n){let r=[...new Set(e.split(n))],i=0;for(let e=0;et)return a;i+=n.length}}var JS=(e,t)=>{if(!e)return null;if(FS.default.isDayjs(e))return e;let n=t.matchAll(KS),r=(0,FS.default)(e,t);if(n===null)return r;for(let t of n){let n=t[0],i=t.index;if(n===`Q`){let t=qS(e,i,e.slice(i-1,i)).match(/\d+/)[0];r=r.quarter(parseInt(t))}if(n.toLowerCase()===`wo`){let t=qS(e,i,e.slice(i-1,i)).match(/\d+/)[0];r=r.week(parseInt(t))}n.toLowerCase()===`ww`&&(r=r.week(parseInt(e.slice(i,i+n.length)))),n.toLowerCase()===`w`&&(r=r.week(parseInt(e.slice(i,i+n.length+1))))}return r},YS={getNow:()=>(0,FS.default)(),getFixedDate:e=>(0,FS.default)(e,[`YYYY-M-DD`,`YYYY-MM-DD`]),getEndDate:e=>e.endOf(`month`),getWeekDay:e=>{let t=e.locale(`en`);return t.weekday()+t.localeData().firstDayOfWeek()},getYear:e=>e.year(),getMonth:e=>e.month(),getDate:e=>e.date(),getHour:e=>e.hour(),getMinute:e=>e.minute(),getSecond:e=>e.second(),addYear:(e,t)=>e.add(t,`year`),addMonth:(e,t)=>e.add(t,`month`),addDate:(e,t)=>e.add(t,`day`),setYear:(e,t)=>e.year(t),setMonth:(e,t)=>e.month(t),setDate:(e,t)=>e.date(t),setHour:(e,t)=>e.hour(t),setMinute:(e,t)=>e.minute(t),setSecond:(e,t)=>e.second(t),isAfter:(e,t)=>e.isAfter(t),isValidate:e=>e.isValid(),locale:{getWeekFirstDay:e=>(0,FS.default)().locale(WS(e)).localeData().firstDayOfWeek(),getWeekFirstDate:(e,t)=>t.locale(WS(e)).weekday(0),getWeek:(e,t)=>t.locale(WS(e)).week(),getShortWeekDays:e=>(0,FS.default)().locale(WS(e)).localeData().weekdaysMin(),getShortMonths:e=>(0,FS.default)().locale(WS(e)).localeData().monthsShort(),format:(e,t,n)=>t.locale(WS(e)).format(n),parse:(e,t,n)=>{let r=WS(e);for(let e=0;eArray.isArray(e)?e.map(e=>JS(e,t)):JS(e,t),toString:(e,t)=>Array.isArray(e)?e.map(e=>FS.default.isDayjs(e)?e.format(t):e):FS.default.isDayjs(e)?e.format(t):e};function XS(e){let t=Ce();return Z(Z({},e),t)}var ZS=Symbol(`PanelContextProps`),QS=e=>{ge(ZS,e)},$S=()=>b(ZS,{}),eC={visibility:`hidden`};function tC(e,t){let{slots:n}=t,{prefixCls:r,prevIcon:i=`‹`,nextIcon:a=`›`,superPrevIcon:o=`«`,superNextIcon:s=`»`,onSuperPrev:c,onSuperNext:l,onPrev:u,onNext:d}=XS(e),{hideNextBtn:f,hidePrevBtn:p}=$S();return U(`div`,{class:r},[c&&U(`button`,{type:`button`,onClick:c,tabindex:-1,class:`${r}-super-prev-btn`,style:p.value?eC:{}},[o]),u&&U(`button`,{type:`button`,onClick:u,tabindex:-1,class:`${r}-prev-btn`,style:p.value?eC:{}},[i]),U(`div`,{class:`${r}-view`},[n.default?.call(n)]),d&&U(`button`,{type:`button`,onClick:d,tabindex:-1,class:`${r}-next-btn`,style:f.value?eC:{}},[a]),l&&U(`button`,{type:`button`,onClick:l,tabindex:-1,class:`${r}-super-next-btn`,style:f.value?eC:{}},[s])])}tC.displayName=`Header`,tC.inheritAttrs=!1;function nC(e){let t=XS(e),{prefixCls:n,generateConfig:r,viewDate:i,onPrevDecades:a,onNextDecades:o}=t,{hideHeader:s}=$S();if(s)return null;let c=`${n}-header`,l=r.getYear(i),u=Math.floor(l/100)*100,d=u+100-1;return U(tC,Y(Y({},t),{},{prefixCls:c,onSuperPrev:a,onSuperNext:o}),{default:()=>[u,an(`-`),d]})}nC.displayName=`DecadeHeader`,nC.inheritAttrs=!1;function rC(e,t,n,r,i){let a=e.setHour(t,n);return a=e.setMinute(a,r),a=e.setSecond(a,i),a}function iC(e,t,n){if(!n)return t;let r=t;return r=e.setHour(r,e.getHour(n)),r=e.setMinute(r,e.getMinute(n)),r=e.setSecond(r,e.getSecond(n)),r}function aC(e,t,n,r,i,a){let o=Math.floor(e/r)*r;if(o{e.stopPropagation(),x||r(g)},onMouseenter:()=>{!x&&_&&_(g)},onMouseleave:()=>{!x&&v&&v(g)}},[f?f(g):U(`div`,{class:`${b}-inner`},[d(g)])]))}x.push(U(`tr`,{key:e,class:c&&c(a)},[t]))}return U(`div`,{class:`${t}-body`},[U(`table`,{class:`${t}-content`},[g&&U(`thead`,null,[U(`tr`,null,[g])]),U(`tbody`,null,[x])])])}sC.displayName=`PanelBody`,sC.inheritAttrs=!1;var cC=4;function lC(e){let t=XS(e),{prefixCls:n,viewDate:r,generateConfig:i}=t,a=`${n}-cell`,o=i.getYear(r),s=Math.floor(o/10)*10,c=Math.floor(o/100)*100,l=c+100-1,u=i.setYear(r,c-Math.ceil((3*cC*10-100)/2));return U(sC,Y(Y({},t),{},{rowNum:cC,colNum:3,baseDate:u,getCellText:e=>{let t=i.getYear(e);return`${t}-${t+9}`},getCellClassName:e=>{let t=i.getYear(e),n=t+9;return{[`${a}-in-view`]:c<=t&&n<=l,[`${a}-selected`]:t===s}},getCellDate:(e,t)=>i.addYear(e,t*10)}),null)}lC.displayName=`DecadeBody`,lC.inheritAttrs=!1;var uC=new Map;function dC(e,t){let n;function r(){ao(e)?t():n=Qn(()=>{r()})}return r(),()=>{Qn.cancel(n)}}function fC(e,t,n){if(uC.get(e)&&Qn.cancel(uC.get(e)),n<=0){uC.set(e,Qn(()=>{e.scrollTop=t}));return}let r=(t-e.scrollTop)/n*10;uC.set(e,Qn(()=>{e.scrollTop+=r,e.scrollTop!==t&&fC(e,t,n-10)}))}function pC(e,t){let{onLeftRight:n,onCtrlLeftRight:r,onUpDown:i,onPageUpDown:a,onEnter:o}=t,{which:s,ctrlKey:c,metaKey:l}=e;switch(s){case $.LEFT:if(c||l){if(r)return r(-1),!0}else if(n)return n(-1),!0;break;case $.RIGHT:if(c||l){if(r)return r(1),!0}else if(n)return n(1),!0;break;case $.UP:if(i)return i(-1),!0;break;case $.DOWN:if(i)return i(1),!0;break;case $.PAGE_UP:if(a)return a(-1),!0;break;case $.PAGE_DOWN:if(a)return a(1),!0;break;case $.ENTER:if(o)return o(),!0;break}return!1}function mC(e,t,n,r){let i=e;if(!i)switch(t){case`time`:i=r?`hh:mm:ss a`:`HH:mm:ss`;break;case`week`:i=`gggg-wo`;break;case`month`:i=`YYYY-MM`;break;case`quarter`:i=`YYYY-[Q]Q`;break;case`year`:i=`YYYY`;break;default:i=n?`YYYY-MM-DD HH:mm:ss`:`YYYY-MM-DD`}return i}function hC(e,t,n){let r=e===`time`?8:10,i=typeof t==`function`?t(n.getNow()).length:t.length;return Math.max(r,i)+2}var gC=null,_C=new Set;function vC(e){return!gC&&typeof window<`u`&&window.addEventListener&&(gC=e=>{[..._C].forEach(t=>{t(e)})},window.addEventListener(`mousedown`,gC)),_C.add(e),()=>{_C.delete(e),_C.size===0&&(window.removeEventListener(`mousedown`,gC),gC=null)}}function yC(e){let t=e.target;return e.composed&&t.shadowRoot&&e.composedPath?.call(e)[0]||t}var bC={year:e=>e===`month`||e===`date`?`year`:e,month:e=>e===`date`?`month`:e,quarter:e=>e===`month`||e===`date`?`quarter`:e,week:e=>e===`date`?`week`:e,time:null,date:null};function xC(e,t){return e.some(e=>e&&e.contains(t))}function SC(e){let t=XS(e),{prefixCls:n,onViewDateChange:r,generateConfig:i,viewDate:a,operationRef:o,onSelect:s,onPanelChange:c}=t,l=`${n}-decade-panel`;o.value={onKeydown:e=>pC(e,{onLeftRight:e=>{s(i.addYear(a,e*10),`key`)},onCtrlLeftRight:e=>{s(i.addYear(a,e*100),`key`)},onUpDown:e=>{s(i.addYear(a,e*10*3),`key`)},onEnter:()=>{c(`year`,a)}})};let u=e=>{let t=i.addYear(a,e*100);r(t),c(null,t)};return U(`div`,{class:l},[U(nC,Y(Y({},t),{},{prefixCls:n,onPrevDecades:()=>{u(-1)},onNextDecades:()=>{u(1)}}),null),U(lC,Y(Y({},t),{},{prefixCls:n,onSelect:e=>{s(e,`mouse`),c(`year`,e)}}),null)])}SC.displayName=`DecadePanel`,SC.inheritAttrs=!1;function CC(e,t){if(!e&&!t)return!0;if(!e||!t)return!1}function wC(e,t,n){let r=CC(t,n);return typeof r==`boolean`?r:Math.floor(e.getYear(t)/10)===Math.floor(e.getYear(n)/10)}function TC(e,t,n){let r=CC(t,n);return typeof r==`boolean`?r:e.getYear(t)===e.getYear(n)}function EC(e,t){return Math.floor(e.getMonth(t)/3)+1}function DC(e,t,n){let r=CC(t,n);return typeof r==`boolean`?r:TC(e,t,n)&&EC(e,t)===EC(e,n)}function OC(e,t,n){let r=CC(t,n);return typeof r==`boolean`?r:TC(e,t,n)&&e.getMonth(t)===e.getMonth(n)}function kC(e,t,n){let r=CC(t,n);return typeof r==`boolean`?r:e.getYear(t)===e.getYear(n)&&e.getMonth(t)===e.getMonth(n)&&e.getDate(t)===e.getDate(n)}function AC(e,t,n){let r=CC(t,n);return typeof r==`boolean`?r:e.getHour(t)===e.getHour(n)&&e.getMinute(t)===e.getMinute(n)&&e.getSecond(t)===e.getSecond(n)}function jC(e,t,n,r){let i=CC(n,r);return typeof i==`boolean`?i:e.locale.getWeek(t,n)===e.locale.getWeek(t,r)}function MC(e,t,n){return kC(e,t,n)&&AC(e,t,n)}function NC(e,t,n,r){return!t||!n||!r?!1:!kC(e,t,r)&&!kC(e,n,r)&&e.isAfter(r,t)&&e.isAfter(n,r)}function PC(e,t,n){let r=t.locale.getWeekFirstDay(e),i=t.setDate(n,1),a=t.getWeekDay(i),o=t.addDate(i,r-a);return t.getMonth(o)===t.getMonth(n)&&t.getDate(o)>1&&(o=t.addDate(o,-7)),o}function FC(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;switch(t){case`year`:return n.addYear(e,r*10);case`quarter`:case`month`:return n.addYear(e,r);default:return n.addMonth(e,r)}}function IC(e,t){let{generateConfig:n,locale:r,format:i}=t;return typeof i==`function`?i(e):n.locale.format(r.locale,e,i)}function LC(e,t){let{generateConfig:n,locale:r,formatList:i}=t;return!e||typeof i[0]==`function`?null:n.locale.parse(r.locale,e,i)}function RC(e){let{cellDate:t,mode:n,disabledDate:r,generateConfig:i}=e;if(!r)return!1;let a=(e,n,a)=>{let o=n;for(;o<=a;){let n;switch(e){case`date`:if(n=i.setDate(t,o),!r(n))return!1;break;case`month`:if(n=i.setMonth(t,o),!RC({cellDate:n,mode:`month`,generateConfig:i,disabledDate:r}))return!1;break;case`year`:if(n=i.setYear(t,o),!RC({cellDate:n,mode:`year`,generateConfig:i,disabledDate:r}))return!1;break}o+=1}return!0};switch(n){case`date`:case`week`:return r(t);case`month`:return a(`date`,1,i.getDate(i.getEndDate(t)));case`quarter`:{let e=Math.floor(i.getMonth(t)/3)*3;return a(`month`,e,e+2)}case`year`:return a(`month`,0,11);case`decade`:{let e=i.getYear(t),n=Math.floor(e/10)*10;return a(`year`,n,n+10-1)}}}function zC(e){let t=XS(e),{hideHeader:n}=$S();if(n.value)return null;let{prefixCls:r,generateConfig:i,locale:a,value:o,format:s}=t;return U(tC,{prefixCls:`${r}-header`},{default:()=>[o?IC(o,{locale:a,format:s,generateConfig:i}):`\xA0`]})}zC.displayName=`TimeHeader`,zC.inheritAttrs=!1;var BC=m({name:`TimeUnitColumn`,props:[`prefixCls`,`units`,`onSelect`,`value`,`active`,`hideDisabledOptions`],setup(e){let{open:t}=$S(),n=q(null),r=H(new Map),i=H();return G(()=>e.value,()=>{let i=r.value.get(e.value);i&&t.value!==!1&&fC(n.value,i.offsetTop,120)}),mt(()=>{var e;(e=i.value)==null||e.call(i)}),G(t,()=>{var a;(a=i.value)==null||a.call(i),ue(()=>{if(t.value){let t=r.value.get(e.value);t&&(i.value=dC(t,()=>{fC(n.value,t.offsetTop,0)}))}})},{immediate:!0,flush:`post`}),()=>{let{prefixCls:t,units:i,onSelect:a,value:o,active:s,hideDisabledOptions:c}=e,l=`${t}-cell`;return U(`ul`,{class:K(`${t}-column`,{[`${t}-column-active`]:s}),ref:n,style:{position:`relative`}},[i.map(e=>c&&e.disabled?null:U(`li`,{key:e.value,ref:t=>{r.value.set(e.value,t)},class:K(l,{[`${l}-disabled`]:e.disabled,[`${l}-selected`]:o===e.value}),onClick:()=>{e.disabled||a(e.value)}},[U(`div`,{class:`${l}-inner`},[e.label])]))])}}});function VC(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`0`,r=String(e);for(;r.length{(n.startsWith(`data-`)||n.startsWith(`aria-`)||n===`role`||n===`name`)&&!n.startsWith(`data-__`)&&(t[n]=e[n])}),t}function GC(e,t){return e?e[t]:null}function KC(e,t,n){let r=[GC(e,0),GC(e,1)];return r[n]=typeof t==`function`?t(r[n]):t,!r[0]&&!r[1]?null:r}function qC(e,t,n,r){let i=[];for(let a=e;a<=t;a+=n)i.push({label:VC(a,2),value:a,disabled:(r||[]).includes(a)});return i}var JC=m({compatConfig:{MODE:3},name:`TimeBody`,inheritAttrs:!1,props:[`generateConfig`,`prefixCls`,`operationRef`,`activeColumnIndex`,`value`,`showHour`,`showMinute`,`showSecond`,`use12Hours`,`hourStep`,`minuteStep`,`secondStep`,`disabledHours`,`disabledMinutes`,`disabledSeconds`,`disabledTime`,`hideDisabledOptions`,`onSelect`],setup(e){let t=J(()=>e.value?e.generateConfig.getHour(e.value):-1),n=J(()=>e.use12Hours?t.value>=12:!1),r=J(()=>e.use12Hours?t.value%12:t.value),i=J(()=>e.value?e.generateConfig.getMinute(e.value):-1),a=J(()=>e.value?e.generateConfig.getSecond(e.value):-1),o=H(e.generateConfig.getNow()),s=H(),c=H(),l=H();ie(()=>{o.value=e.generateConfig.getNow()}),E(()=>{if(e.disabledTime){let t=e.disabledTime(o);[s.value,c.value,l.value]=[t.disabledHours,t.disabledMinutes,t.disabledSeconds]}else[s.value,c.value,l.value]=[e.disabledHours,e.disabledMinutes,e.disabledSeconds]});let u=(t,n,r,i)=>{let a=e.value||e.generateConfig.getNow(),o=Math.max(0,n),s=Math.max(0,r),c=Math.max(0,i);return a=rC(e.generateConfig,a,!e.use12Hours||!t?o:o+12,s,c),a},d=J(()=>qC(0,23,e.hourStep??1,s.value&&s.value())),f=J(()=>{if(!e.use12Hours)return[!1,!1];let t=[!0,!0];return d.value.forEach(e=>{let{disabled:n,value:r}=e;n||(r>=12?t[1]=!1:t[0]=!1)}),t}),p=J(()=>e.use12Hours?d.value.filter(n.value?e=>e.value>=12:e=>e.value<12).map(e=>{let t=e.value%12,n=t===0?`12`:VC(t,2);return Z(Z({},e),{label:n,value:t})}):d.value),m=J(()=>qC(0,59,e.minuteStep??1,c.value&&c.value(t.value))),h=J(()=>qC(0,59,e.secondStep??1,l.value&&l.value(t.value,i.value)));return()=>{let{prefixCls:t,operationRef:o,activeColumnIndex:s,showHour:c,showMinute:l,showSecond:d,use12Hours:g,hideDisabledOptions:_,onSelect:v}=e,y=[],b=`${t}-content`,x=`${t}-time-panel`;o.value={onUpDown:e=>{let t=y[s];if(t){let n=t.units.findIndex(e=>e.value===t.value),r=t.units.length;for(let i=1;i{v(u(n.value,e,i.value,a.value),`mouse`)}),S(l,U(BC,{key:`minute`},null),i.value,m.value,e=>{v(u(n.value,r.value,e,a.value),`mouse`)}),S(d,U(BC,{key:`second`},null),a.value,h.value,e=>{v(u(n.value,r.value,i.value,e),`mouse`)});let C=-1;return typeof n.value==`boolean`&&(C=+!!n.value),S(g===!0,U(BC,{key:`12hours`},null),C,[{label:`AM`,value:0,disabled:f.value[0]},{label:`PM`,value:1,disabled:f.value[1]}],e=>{v(u(!!e,r.value,i.value,a.value),`mouse`)}),U(`div`,{class:b},[y.map(e=>{let{node:t}=e;return t})])}}}),YC=e=>e.filter(e=>e!==!1).length;function XC(e){let t=XS(e),{generateConfig:n,format:r=`HH:mm:ss`,prefixCls:i,active:a,operationRef:o,showHour:s,showMinute:c,showSecond:l,use12Hours:u=!1,onSelect:d,value:f}=t,p=`${i}-time-panel`,m=H(),h=H(-1),g=YC([s,c,l,u]);return o.value={onKeydown:e=>pC(e,{onLeftRight:e=>{h.value=(h.value+e+g)%g},onUpDown:e=>{h.value===-1?h.value=0:m.value&&m.value.onUpDown(e)},onEnter:()=>{d(f||n.getNow(),`key`),h.value=-1}}),onBlur:()=>{h.value=-1}},U(`div`,{class:K(p,{[`${p}-active`]:a})},[U(zC,Y(Y({},t),{},{format:r,prefixCls:i}),null),U(JC,Y(Y({},t),{},{prefixCls:i,activeColumnIndex:h.value,operationRef:m}),null)])}XC.displayName=`TimePanel`,XC.inheritAttrs=!1;function ZC(e){let{cellPrefixCls:t,generateConfig:n,rangedValue:r,hoverRangedValue:i,isInView:a,isSameCell:o,offsetCell:s,today:c,value:l}=e;function u(e){let u=s(e,-1),d=s(e,1),f=GC(r,0),p=GC(r,1),m=GC(i,0),h=GC(i,1),g=NC(n,m,h,e);function _(e){return o(f,e)}function v(e){return o(p,e)}let y=o(m,e),b=o(h,e),x=(g||b)&&(!a(u)||v(u)),S=(g||y)&&(!a(d)||_(d));return{[`${t}-in-view`]:a(e),[`${t}-in-range`]:NC(n,f,p,e),[`${t}-range-start`]:_(e),[`${t}-range-end`]:v(e),[`${t}-range-start-single`]:_(e)&&!p,[`${t}-range-end-single`]:v(e)&&!f,[`${t}-range-start-near-hover`]:_(e)&&(o(u,m)||NC(n,m,h,u)),[`${t}-range-end-near-hover`]:v(e)&&(o(d,h)||NC(n,m,h,d)),[`${t}-range-hover`]:g,[`${t}-range-hover-start`]:y,[`${t}-range-hover-end`]:b,[`${t}-range-hover-edge-start`]:x,[`${t}-range-hover-edge-end`]:S,[`${t}-range-hover-edge-start-near-range`]:x&&o(u,p),[`${t}-range-hover-edge-end-near-range`]:S&&o(d,f),[`${t}-today`]:o(c,e),[`${t}-selected`]:o(l,e)}}return u}var QC=Symbol(`RangeContextProps`),$C=e=>{ge(QC,e)},ew=()=>b(QC,{rangedValue:H(),hoverRangedValue:H(),inRange:H(),panelPosition:H()}),tw=m({compatConfig:{MODE:3},name:`PanelContextProvider`,inheritAttrs:!1,props:{value:{type:Object,default:()=>({})}},setup(e,t){let{slots:n}=t,r={rangedValue:H(e.value.rangedValue),hoverRangedValue:H(e.value.hoverRangedValue),inRange:H(e.value.inRange),panelPosition:H(e.value.panelPosition)};return $C(r),G(()=>e.value,()=>{Object.keys(e.value).forEach(t=>{r[t]&&(r[t].value=e.value[t])})}),()=>n.default?.call(n)}});function nw(e){let t=XS(e),{prefixCls:n,generateConfig:r,prefixColumn:i,locale:a,rowCount:o,viewDate:s,value:c,dateRender:l}=t,{rangedValue:u,hoverRangedValue:d}=ew(),f=PC(a.locale,r,s),p=`${n}-cell`,m=r.locale.getWeekFirstDay(a.locale),h=r.getNow(),g=[],_=a.shortWeekDays||(r.locale.getShortWeekDays?r.locale.getShortWeekDays(a.locale):[]);i&&g.push(U(`th`,{key:`empty`,"aria-label":`empty cell`},null));for(let e=0;e<7;e+=1)g.push(U(`th`,{key:e},[_[(e+m)%7]]));let v=ZC({cellPrefixCls:p,today:h,value:c,generateConfig:r,rangedValue:i?null:u.value,hoverRangedValue:i?null:d.value,isSameCell:(e,t)=>kC(r,e,t),isInView:e=>OC(r,e,s),offsetCell:(e,t)=>r.addDate(e,t)}),y=l?e=>l({current:e,today:h}):void 0;return U(sC,Y(Y({},t),{},{rowNum:o,colNum:7,baseDate:f,getCellNode:y,getCellText:r.getDate,getCellClassName:v,getCellDate:r.addDate,titleCell:e=>IC(e,{locale:a,format:`YYYY-MM-DD`,generateConfig:r}),headerCells:g}),null)}nw.displayName=`DateBody`,nw.inheritAttrs=!1,nw.props=[`prefixCls`,`generateConfig`,`value?`,`viewDate`,`locale`,`rowCount`,`onSelect`,`dateRender?`,`disabledDate?`,`prefixColumn?`,`rowClassName?`];function rw(e){let t=XS(e),{prefixCls:n,generateConfig:r,locale:i,viewDate:a,onNextMonth:o,onPrevMonth:s,onNextYear:c,onPrevYear:l,onYearClick:u,onMonthClick:d}=t,{hideHeader:f}=$S();if(f.value)return null;let p=`${n}-header`,m=i.shortMonths||(r.locale.getShortMonths?r.locale.getShortMonths(i.locale):[]),h=r.getMonth(a),g=U(`button`,{type:`button`,key:`year`,onClick:u,tabindex:-1,class:`${n}-year-btn`},[IC(a,{locale:i,format:i.yearFormat,generateConfig:r})]),_=U(`button`,{type:`button`,key:`month`,onClick:d,tabindex:-1,class:`${n}-month-btn`},[i.monthFormat?IC(a,{locale:i,format:i.monthFormat,generateConfig:r}):m[h]]),v=i.monthBeforeYear?[_,g]:[g,_];return U(tC,Y(Y({},t),{},{prefixCls:p,onSuperPrev:l,onPrev:s,onNext:o,onSuperNext:c}),{default:()=>[v]})}rw.displayName=`DateHeader`,rw.inheritAttrs=!1;var iw=6;function aw(e){let t=XS(e),{prefixCls:n,panelName:r=`date`,keyboardConfig:i,active:a,operationRef:o,generateConfig:s,value:c,viewDate:l,onViewDateChange:u,onPanelChange:d,onSelect:f}=t,p=`${n}-${r}-panel`;o.value={onKeydown:e=>pC(e,Z({onLeftRight:e=>{f(s.addDate(c||l,e),`key`)},onCtrlLeftRight:e=>{f(s.addYear(c||l,e),`key`)},onUpDown:e=>{f(s.addDate(c||l,e*7),`key`)},onPageUpDown:e=>{f(s.addMonth(c||l,e),`key`)}},i))};let m=e=>{let t=s.addYear(l,e);u(t),d(null,t)},h=e=>{let t=s.addMonth(l,e);u(t),d(null,t)};return U(`div`,{class:K(p,{[`${p}-active`]:a})},[U(rw,Y(Y({},t),{},{prefixCls:n,value:c,viewDate:l,onPrevYear:()=>{m(-1)},onNextYear:()=>{m(1)},onPrevMonth:()=>{h(-1)},onNextMonth:()=>{h(1)},onMonthClick:()=>{d(`month`,l)},onYearClick:()=>{d(`year`,l)}}),null),U(nw,Y(Y({},t),{},{onSelect:e=>f(e,`mouse`),prefixCls:n,value:c,viewDate:l,rowCount:iw}),null)])}aw.displayName=`DatePanel`,aw.inheritAttrs=!1;var ow=HC(`date`,`time`);function sw(e){let t=XS(e),{prefixCls:n,operationRef:r,generateConfig:i,value:a,defaultValue:o,disabledTime:s,showTime:c,onSelect:l}=t,u=`${n}-datetime-panel`,d=H(null),f=H({}),p=H({}),m=typeof c==`object`?Z({},c):{};function h(e){return ow[ow.indexOf(d.value)+e]||null}let g=e=>{p.value.onBlur&&p.value.onBlur(e),d.value=null};r.value={onKeydown:e=>{if(e.which===$.TAB){let t=h(e.shiftKey?-1:1);return d.value=t,t&&e.preventDefault(),!0}if(d.value){let t=d.value===`date`?f:p;return t.value&&t.value.onKeydown&&t.value.onKeydown(e),!0}return[$.LEFT,$.RIGHT,$.UP,$.DOWN].includes(e.which)?(d.value=`date`,!0):!1},onBlur:g,onClose:g};let _=(e,t)=>{let n=e;t===`date`&&!a&&m.defaultValue?(n=i.setHour(n,i.getHour(m.defaultValue)),n=i.setMinute(n,i.getMinute(m.defaultValue)),n=i.setSecond(n,i.getSecond(m.defaultValue))):t===`time`&&!a&&o&&(n=i.setYear(n,i.getYear(o)),n=i.setMonth(n,i.getMonth(o)),n=i.setDate(n,i.getDate(o))),l&&l(n,`mouse`)},v=s?s(a||null):{};return U(`div`,{class:K(u,{[`${u}-active`]:d.value})},[U(aw,Y(Y({},t),{},{operationRef:f,active:d.value===`date`,onSelect:e=>{_(iC(i,e,!a&&typeof c==`object`?c.defaultValue:null),`date`)}}),null),U(XC,Y(Y(Y(Y({},t),{},{format:void 0},m),v),{},{disabledTime:null,defaultValue:void 0,operationRef:p,active:d.value===`time`,onSelect:e=>{_(e,`time`)}}),null)])}sw.displayName=`DatetimePanel`,sw.inheritAttrs=!1;function cw(e){let t=XS(e),{prefixCls:n,generateConfig:r,locale:i,value:a}=t,o=`${n}-cell`,s=e=>U(`td`,{key:`week`,class:K(o,`${o}-week`)},[r.locale.getWeek(i.locale,e)]),c=`${n}-week-panel-row`;return U(aw,Y(Y({},t),{},{panelName:`week`,prefixColumn:s,rowClassName:e=>K(c,{[`${c}-selected`]:jC(r,i.locale,a,e)}),keyboardConfig:{onLeftRight:null}}),null)}cw.displayName=`WeekPanel`,cw.inheritAttrs=!1;function lw(e){let t=XS(e),{prefixCls:n,generateConfig:r,locale:i,viewDate:a,onNextYear:o,onPrevYear:s,onYearClick:c}=t,{hideHeader:l}=$S();if(l.value)return null;let u=`${n}-header`;return U(tC,Y(Y({},t),{},{prefixCls:u,onSuperPrev:s,onSuperNext:o}),{default:()=>[U(`button`,{type:`button`,onClick:c,class:`${n}-year-btn`},[IC(a,{locale:i,format:i.yearFormat,generateConfig:r})])]})}lw.displayName=`MonthHeader`,lw.inheritAttrs=!1;var uw=4;function dw(e){let t=XS(e),{prefixCls:n,locale:r,value:i,viewDate:a,generateConfig:o,monthCellRender:s}=t,{rangedValue:c,hoverRangedValue:l}=ew(),u=ZC({cellPrefixCls:`${n}-cell`,value:i,generateConfig:o,rangedValue:c.value,hoverRangedValue:l.value,isSameCell:(e,t)=>OC(o,e,t),isInView:()=>!0,offsetCell:(e,t)=>o.addMonth(e,t)}),d=r.shortMonths||(o.locale.getShortMonths?o.locale.getShortMonths(r.locale):[]),f=o.setMonth(a,0),p=s?e=>s({current:e,locale:r}):void 0;return U(sC,Y(Y({},t),{},{rowNum:uw,colNum:3,baseDate:f,getCellNode:p,getCellText:e=>r.monthFormat?IC(e,{locale:r,format:r.monthFormat,generateConfig:o}):d[o.getMonth(e)],getCellClassName:u,getCellDate:o.addMonth,titleCell:e=>IC(e,{locale:r,format:`YYYY-MM`,generateConfig:o})}),null)}dw.displayName=`MonthBody`,dw.inheritAttrs=!1;function fw(e){let t=XS(e),{prefixCls:n,operationRef:r,onViewDateChange:i,generateConfig:a,value:o,viewDate:s,onPanelChange:c,onSelect:l}=t,u=`${n}-month-panel`;r.value={onKeydown:e=>pC(e,{onLeftRight:e=>{l(a.addMonth(o||s,e),`key`)},onCtrlLeftRight:e=>{l(a.addYear(o||s,e),`key`)},onUpDown:e=>{l(a.addMonth(o||s,e*3),`key`)},onEnter:()=>{c(`date`,o||s)}})};let d=e=>{let t=a.addYear(s,e);i(t),c(null,t)};return U(`div`,{class:u},[U(lw,Y(Y({},t),{},{prefixCls:n,onPrevYear:()=>{d(-1)},onNextYear:()=>{d(1)},onYearClick:()=>{c(`year`,s)}}),null),U(dw,Y(Y({},t),{},{prefixCls:n,onSelect:e=>{l(e,`mouse`),c(`date`,e)}}),null)])}fw.displayName=`MonthPanel`,fw.inheritAttrs=!1;function pw(e){let t=XS(e),{prefixCls:n,generateConfig:r,locale:i,viewDate:a,onNextYear:o,onPrevYear:s,onYearClick:c}=t,{hideHeader:l}=$S();if(l.value)return null;let u=`${n}-header`;return U(tC,Y(Y({},t),{},{prefixCls:u,onSuperPrev:s,onSuperNext:o}),{default:()=>[U(`button`,{type:`button`,onClick:c,class:`${n}-year-btn`},[IC(a,{locale:i,format:i.yearFormat,generateConfig:r})])]})}pw.displayName=`QuarterHeader`,pw.inheritAttrs=!1;var mw=1;function hw(e){let t=XS(e),{prefixCls:n,locale:r,value:i,viewDate:a,generateConfig:o}=t,{rangedValue:s,hoverRangedValue:c}=ew(),l=ZC({cellPrefixCls:`${n}-cell`,value:i,generateConfig:o,rangedValue:s.value,hoverRangedValue:c.value,isSameCell:(e,t)=>DC(o,e,t),isInView:()=>!0,offsetCell:(e,t)=>o.addMonth(e,t*3)}),u=o.setDate(o.setMonth(a,0),1);return U(sC,Y(Y({},t),{},{rowNum:mw,colNum:4,baseDate:u,getCellText:e=>IC(e,{locale:r,format:r.quarterFormat||`[Q]Q`,generateConfig:o}),getCellClassName:l,getCellDate:(e,t)=>o.addMonth(e,t*3),titleCell:e=>IC(e,{locale:r,format:`YYYY-[Q]Q`,generateConfig:o})}),null)}hw.displayName=`QuarterBody`,hw.inheritAttrs=!1;function gw(e){let t=XS(e),{prefixCls:n,operationRef:r,onViewDateChange:i,generateConfig:a,value:o,viewDate:s,onPanelChange:c,onSelect:l}=t,u=`${n}-quarter-panel`;r.value={onKeydown:e=>pC(e,{onLeftRight:e=>{l(a.addMonth(o||s,e*3),`key`)},onCtrlLeftRight:e=>{l(a.addYear(o||s,e),`key`)},onUpDown:e=>{l(a.addYear(o||s,e),`key`)}})};let d=e=>{let t=a.addYear(s,e);i(t),c(null,t)};return U(`div`,{class:u},[U(pw,Y(Y({},t),{},{prefixCls:n,onPrevYear:()=>{d(-1)},onNextYear:()=>{d(1)},onYearClick:()=>{c(`year`,s)}}),null),U(hw,Y(Y({},t),{},{prefixCls:n,onSelect:e=>{l(e,`mouse`)}}),null)])}gw.displayName=`QuarterPanel`,gw.inheritAttrs=!1;function _w(e){let t=XS(e),{prefixCls:n,generateConfig:r,viewDate:i,onPrevDecade:a,onNextDecade:o,onDecadeClick:s}=t,{hideHeader:c}=$S();if(c.value)return null;let l=`${n}-header`,u=r.getYear(i),d=Math.floor(u/10)*10,f=d+10-1;return U(tC,Y(Y({},t),{},{prefixCls:l,onSuperPrev:a,onSuperNext:o}),{default:()=>[U(`button`,{type:`button`,onClick:s,class:`${n}-decade-btn`},[d,an(`-`),f])]})}_w.displayName=`YearHeader`,_w.inheritAttrs=!1;var vw=4;function yw(e){let t=XS(e),{prefixCls:n,value:r,viewDate:i,locale:a,generateConfig:o}=t,{rangedValue:s,hoverRangedValue:c}=ew(),l=`${n}-cell`,u=o.getYear(i),d=Math.floor(u/10)*10,f=d+10-1,p=o.setYear(i,d-Math.ceil((3*vw-10)/2)),m=ZC({cellPrefixCls:l,value:r,generateConfig:o,rangedValue:s.value,hoverRangedValue:c.value,isSameCell:(e,t)=>TC(o,e,t),isInView:e=>{let t=o.getYear(e);return d<=t&&t<=f},offsetCell:(e,t)=>o.addYear(e,t)});return U(sC,Y(Y({},t),{},{rowNum:vw,colNum:3,baseDate:p,getCellText:o.getYear,getCellClassName:m,getCellDate:o.addYear,titleCell:e=>IC(e,{locale:a,format:`YYYY`,generateConfig:o})}),null)}yw.displayName=`YearBody`,yw.inheritAttrs=!1;function bw(e){let t=XS(e),{prefixCls:n,operationRef:r,onViewDateChange:i,generateConfig:a,value:o,viewDate:s,sourceMode:c,onSelect:l,onPanelChange:u}=t,d=`${n}-year-panel`;r.value={onKeydown:e=>pC(e,{onLeftRight:e=>{l(a.addYear(o||s,e),`key`)},onCtrlLeftRight:e=>{l(a.addYear(o||s,e*10),`key`)},onUpDown:e=>{l(a.addYear(o||s,e*3),`key`)},onEnter:()=>{u(c===`date`?`date`:`month`,o||s)}})};let f=e=>{let t=a.addYear(s,e*10);i(t),u(null,t)};return U(`div`,{class:d},[U(_w,Y(Y({},t),{},{prefixCls:n,onPrevDecade:()=>{f(-1)},onNextDecade:()=>{f(1)},onDecadeClick:()=>{u(`decade`,s)}}),null),U(yw,Y(Y({},t),{},{prefixCls:n,onSelect:e=>{u(c===`date`?`date`:`month`,e),l(e,`mouse`)}}),null)])}bw.displayName=`YearPanel`,bw.inheritAttrs=!1;function xw(e,t,n){return n?U(`div`,{class:`${e}-footer-extra`},[n(t)]):null}function Sw(e){let{prefixCls:t,components:n={},needConfirmButton:r,onNow:i,onOk:a,okDisabled:o,showNow:s,locale:c}=e,l,u;if(r){let e=n.button||`button`;i&&s!==!1&&(l=U(`li`,{class:`${t}-now`},[U(`a`,{class:`${t}-now-btn`,onClick:i},[c.now])])),u=r&&U(`li`,{class:`${t}-ok`},[U(e,{disabled:o,onClick:e=>{e.stopPropagation(),a&&a()}},{default:()=>[c.ok]})])}return!l&&!u?null:U(`ul`,{class:`${t}-ranges`},[l,u])}function Cw(){return m({name:`PickerPanel`,inheritAttrs:!1,props:{prefixCls:String,locale:Object,generateConfig:Object,value:Object,defaultValue:Object,pickerValue:Object,defaultPickerValue:Object,disabledDate:Function,mode:String,picker:{type:String,default:`date`},tabindex:{type:[Number,String],default:0},showNow:{type:Boolean,default:void 0},showTime:[Boolean,Object],showToday:Boolean,renderExtraFooter:Function,dateRender:Function,hideHeader:{type:Boolean,default:void 0},onSelect:Function,onChange:Function,onPanelChange:Function,onMousedown:Function,onPickerValueChange:Function,onOk:Function,components:Object,direction:String,hourStep:{type:Number,default:1},minuteStep:{type:Number,default:1},secondStep:{type:Number,default:1}},setup(e,t){let{attrs:n}=t,r=J(()=>e.picker===`date`&&!!e.showTime||e.picker===`time`),i=J(()=>24%e.hourStep==0),a=J(()=>60%e.minuteStep==0),o=J(()=>60%e.secondStep==0),s=$S(),{operationRef:c,onSelect:l,hideRanges:u,defaultOpenValue:d}=s,{inRange:f,panelPosition:p,rangedValue:m,hoverRangedValue:h}=ew(),g=H({}),[_,v]=af(null,{value:Et(e,`value`),defaultValue:e.defaultValue,postState:t=>!t&&d?.value&&e.picker===`time`?d.value:t}),[y,b]=af(null,{value:Et(e,`pickerValue`),defaultValue:e.defaultPickerValue||_.value,postState:t=>{let{generateConfig:n,showTime:r,defaultValue:i}=e,a=n.getNow();return t?!_.value&&e.showTime?typeof r==`object`?iC(n,Array.isArray(t)?t[0]:t,r.defaultValue||a):i?iC(n,Array.isArray(t)?t[0]:t,i):iC(n,Array.isArray(t)?t[0]:t,a):t:a}}),x=t=>{b(t),e.onPickerValueChange&&e.onPickerValueChange(t)},S=t=>{let n=bC[e.picker];return n?n(t):t},[C,w]=af(()=>e.picker===`time`?`time`:S(`date`),{value:Et(e,`mode`)});G(()=>e.picker,()=>{w(e.picker)});let T=H(C.value),E=e=>{T.value=e},D=(t,n)=>{let{onPanelChange:r,generateConfig:i}=e,a=S(t||C.value);E(C.value),w(a),r&&(C.value!==a||MC(i,y.value,y.value))&&r(n,a)},O=function(t,n){let r=arguments.length>2&&arguments[2]!==void 0&&arguments[2],{picker:i,generateConfig:a,onSelect:o,onChange:s,disabledDate:c}=e;(C.value===i||r)&&(v(t),o&&o(t),l&&l(t,n),s&&!MC(a,t,_.value)&&!c?.(t)&&s(t))},k=e=>g.value&&g.value.onKeydown?([$.LEFT,$.RIGHT,$.UP,$.DOWN,$.PAGE_UP,$.PAGE_DOWN,$.ENTER].includes(e.which)&&e.preventDefault(),g.value.onKeydown(e)):!1,A=e=>{g.value&&g.value.onBlur&&g.value.onBlur(e)},j=()=>{let{generateConfig:t,hourStep:n,minuteStep:r,secondStep:s}=e,c=t.getNow(),l=aC(t.getHour(c),t.getMinute(c),t.getSecond(c),i.value?n:1,a.value?r:1,o.value?s:1),u=rC(t,c,l[0],l[1],l[2]);O(u,`submit`)},M=J(()=>{let{prefixCls:t,direction:n}=e;return K(`${t}-panel`,{[`${t}-panel-has-range`]:m&&m.value&&m.value[0]&&m.value[1],[`${t}-panel-has-range-hover`]:h&&h.value&&h.value[0]&&h.value[1],[`${t}-panel-rtl`]:n===`rtl`})});return QS(Z(Z({},s),{mode:C,hideHeader:J(()=>e.hideHeader===void 0?s.hideHeader?.value:e.hideHeader),hidePrevBtn:J(()=>f.value&&p.value===`right`),hideNextBtn:J(()=>f.value&&p.value===`left`)})),G(()=>e.value,()=>{e.value&&b(e.value)}),()=>{let{prefixCls:t=`ant-picker`,locale:i,generateConfig:a,disabledDate:o,picker:s=`date`,tabindex:l=0,showNow:d,showTime:f,showToday:m,renderExtraFooter:h,onMousedown:v,onOk:b,components:S}=e;c&&p.value!==`right`&&(c.value={onKeydown:k,onClose:()=>{g.value&&g.value.onClose&&g.value.onClose()}});let w,E=Z(Z(Z({},n),e),{operationRef:g,prefixCls:t,viewDate:y.value,value:_.value,onViewDateChange:x,sourceMode:T.value,onPanelChange:D,disabledDate:o});switch(delete E.onChange,delete E.onSelect,C.value){case`decade`:w=U(SC,Y(Y({},E),{},{onSelect:(e,t)=>{x(e),O(e,t)}}),null);break;case`year`:w=U(bw,Y(Y({},E),{},{onSelect:(e,t)=>{x(e),O(e,t)}}),null);break;case`month`:w=U(fw,Y(Y({},E),{},{onSelect:(e,t)=>{x(e),O(e,t)}}),null);break;case`quarter`:w=U(gw,Y(Y({},E),{},{onSelect:(e,t)=>{x(e),O(e,t)}}),null);break;case`week`:w=U(cw,Y(Y({},E),{},{onSelect:(e,t)=>{x(e),O(e,t)}}),null);break;case`time`:delete E.showTime,w=U(XC,Y(Y(Y({},E),typeof f==`object`?f:null),{},{onSelect:(e,t)=>{x(e),O(e,t)}}),null);break;default:w=U(f?sw:aw,Y(Y({},E),{},{onSelect:(e,t)=>{x(e),O(e,t)}}),null)}let N,P;u?.value||(N=xw(t,C.value,h),P=Sw({prefixCls:t,components:S,needConfirmButton:r.value,okDisabled:!_.value||o&&o(_.value),locale:i,showNow:d,onNow:r.value&&j,onOk:()=>{_.value&&(O(_.value,`submit`,!0),b&&b(_.value))}}));let F;if(m&&C.value===`date`&&s===`date`&&!f){let e=a.getNow(),n=`${t}-today-btn`,r=o&&o(e);F=U(`a`,{class:K(n,r&&`${n}-disabled`),"aria-disabled":r,onClick:()=>{r||O(e,`mouse`,!0)}},[i.today])}return U(`div`,{tabindex:l,class:K(M.value,n.class),style:n.style,onKeydown:k,onBlur:A,onMousedown:v},[w,N||P||F?U(`div`,{class:`${t}-footer`},[N,P,F]):null])}}})}var ww=Cw(),Tw=(e=>U(ww,e)),Ew={bottomLeft:{points:[`tl`,`bl`],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomRight:{points:[`tr`,`br`],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:[`bl`,`tl`],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topRight:{points:[`br`,`tr`],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}};function Dw(e,t){let{slots:n}=t,{prefixCls:r,popupStyle:i,visible:a,dropdownClassName:o,dropdownAlign:s,transitionName:c,getPopupContainer:l,range:u,popupPlacement:d,direction:f}=XS(e),p=`${r}-dropdown`;return U(gu,{showAction:[],hideAction:[],popupPlacement:d===void 0?f===`rtl`?`bottomRight`:`bottomLeft`:d,builtinPlacements:Ew,prefixCls:p,popupTransitionName:c,popupAlign:s,popupVisible:a,popupClassName:K(o,{[`${p}-range`]:u,[`${p}-rtl`]:f===`rtl`}),popupStyle:i,getPopupContainer:l},{default:n.default,popup:n.popupElement})}var Ow=m({name:`PresetPanel`,props:{prefixCls:String,presets:{type:Array,default:()=>[]},onClick:Function,onHover:Function},setup(e){return()=>e.presets.length?U(`div`,{class:`${e.prefixCls}-presets`},[U(`ul`,null,[e.presets.map((t,n)=>{let{label:r,value:i}=t;return U(`li`,{key:n,onClick:t=>{t.stopPropagation(),e.onClick(i)},onMouseenter:()=>{var t;(t=e.onHover)==null||t.call(e,i)},onMouseleave:()=>{var t;(t=e.onHover)==null||t.call(e,null)}},[r])})])]):null}});function kw(e){let{open:t,value:n,isClickOutside:r,triggerOpen:i,forwardKeydown:a,onKeydown:o,blurToCancel:s,onSubmit:c,onCancel:l,onFocus:u,onBlur:d}=e,f=q(!1),p=q(!1),m=q(!1),h=q(!1),g=q(!1),_=J(()=>({onMousedown:()=>{f.value=!0,i(!0)},onKeydown:e=>{if(o(e,()=>{g.value=!0}),!g.value){switch(e.which){case $.ENTER:t.value?c()!==!1&&(f.value=!0):i(!0),e.preventDefault();return;case $.TAB:f.value&&t.value&&!e.shiftKey?(f.value=!1,e.preventDefault()):!f.value&&t.value&&!a(e)&&e.shiftKey&&(f.value=!0,e.preventDefault());return;case $.ESC:f.value=!0,l();return}!t.value&&![$.SHIFT].includes(e.which)?i(!0):f.value||a(e)}},onFocus:e=>{f.value=!0,p.value=!0,u&&u(e)},onBlur:e=>{if(m.value||!r(document.activeElement)){m.value=!1;return}s.value?setTimeout(()=>{let{activeElement:e}=document;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;r(e)&&l()},0):t.value&&(i(!1),h.value&&c()),p.value=!1,d&&d(e)}}));G(t,()=>{h.value=!1}),G(n,()=>{h.value=!0});let v=q();return V(()=>{v.value=vC(e=>{let n=yC(e);if(t.value){let e=r(n);e?(!p.value||e)&&i(!1):(m.value=!0,Qn(()=>{m.value=!1}))}})}),mt(()=>{v.value&&v.value()}),[_,{focused:p,typing:f}]}function Aw(e){let{valueTexts:t,onTextChange:n}=e,r=H(``);function i(e){r.value=e,n(e)}function a(){r.value=t.value[0]}return G(()=>[...t.value],function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];e.join(`||`)!==n.join(`||`)&&t.value.every(e=>e!==r.value)&&a()},{immediate:!0}),[r,i,a]}function jw(e,t){let{formatList:n,generateConfig:r,locale:i}=t,a=Rd(()=>{if(!e.value)return[[``],``];let t=``,a=[];for(let o=0;ot[0]!==e[0]||!vx(t[1],e[1]));return[J(()=>a.value[0]),J(()=>a.value[1])]}function Mw(e,t){let{formatList:n,generateConfig:r,locale:i}=t,a=H(null),o;function s(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(Qn.cancel(o),t){a.value=e;return}o=Qn(()=>{a.value=e})}let[,c]=jw(a,{formatList:n,generateConfig:r,locale:i});function l(e){s(e)}function u(){s(null,arguments.length>0&&arguments[0]!==void 0&&arguments[0])}return G(e,()=>{u(!0)}),mt(()=>{Qn.cancel(o)}),[c,l,u]}function Nw(e,t){return J(()=>e?.value?e.value:t?.value?(mr(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.keys(t.value).map(e=>{let n=t.value[e];return{label:e,value:typeof n==`function`?n():n}})):[])}function Pw(){return m({name:`Picker`,inheritAttrs:!1,props:`prefixCls.id.tabindex.dropdownClassName.dropdownAlign.popupStyle.transitionName.generateConfig.locale.inputReadOnly.allowClear.autofocus.showTime.showNow.showHour.showMinute.showSecond.picker.format.use12Hours.value.defaultValue.open.defaultOpen.defaultOpenValue.suffixIcon.presets.clearIcon.disabled.disabledDate.placeholder.getPopupContainer.panelRender.inputRender.onChange.onOpenChange.onPanelChange.onFocus.onBlur.onMousedown.onMouseup.onMouseenter.onMouseleave.onContextmenu.onClick.onKeydown.onSelect.direction.autocomplete.showToday.renderExtraFooter.dateRender.minuteStep.hourStep.secondStep.hideDisabledOptions`.split(`.`),setup(e,t){let{attrs:n,expose:r}=t,i=H(null),a=Nw(J(()=>e.presets)),o=J(()=>e.picker??`date`),s=J(()=>o.value===`date`&&!!e.showTime||o.value===`time`),c=J(()=>UC(mC(e.format,o.value,e.showTime,e.use12Hours))),l=H(null),u=H(null),d=H(null),[f,p]=af(null,{value:Et(e,`value`),defaultValue:e.defaultValue}),m=H(f.value),h=e=>{m.value=e},g=H(null),[_,v]=af(!1,{value:Et(e,`open`),defaultValue:e.defaultOpen,postState:t=>!e.disabled&&t,onChange:t=>{e.onOpenChange&&e.onOpenChange(t),!t&&g.value&&g.value.onClose&&g.value.onClose()}}),[y,b]=jw(m,{formatList:c,generateConfig:Et(e,`generateConfig`),locale:Et(e,`locale`)}),[x,S,C]=Aw({valueTexts:y,onTextChange:t=>{let n=LC(t,{locale:e.locale,formatList:c.value,generateConfig:e.generateConfig});n&&(!e.disabledDate||!e.disabledDate(n))&&h(n)}}),w=t=>{let{onChange:n,generateConfig:r,locale:i}=e;h(t),p(t),n&&!MC(r,f.value,t)&&n(t,t?IC(t,{generateConfig:r,locale:i,format:c.value[0]}):``)},T=t=>{e.disabled&&t||v(t)},E=e=>_.value&&g.value&&g.value.onKeydown?g.value.onKeydown(e):!1,D=function(){e.onMouseup&&e.onMouseup(...arguments),i.value&&(i.value.focus(),T(!0))},[O,{focused:k,typing:A}]=kw({blurToCancel:s,open:_,value:x,triggerOpen:T,forwardKeydown:E,isClickOutside:e=>!xC([l.value,u.value,d.value],e),onSubmit:()=>!m.value||e.disabledDate&&e.disabledDate(m.value)?!1:(w(m.value),T(!1),C(),!0),onCancel:()=>{T(!1),h(f.value),C()},onKeydown:(t,n)=>{var r;(r=e.onKeydown)==null||r.call(e,t,n)},onFocus:t=>{var n;(n=e.onFocus)==null||n.call(e,t)},onBlur:t=>{var n;(n=e.onBlur)==null||n.call(e,t)}});G([_,y],()=>{_.value||(h(f.value),!y.value.length||y.value[0]===``?S(``):b.value!==x.value&&C())}),G(o,()=>{_.value||C()}),G(f,()=>{h(f.value)});let[j,M,N]=Mw(x,{formatList:c,generateConfig:Et(e,`generateConfig`),locale:Et(e,`locale`)});return QS({operationRef:g,hideHeader:J(()=>o.value===`time`),onSelect:(e,t)=>{(t===`submit`||t!==`key`&&!s.value)&&(w(e),T(!1))},open:_,defaultOpenValue:Et(e,`defaultOpenValue`),onDateMouseenter:M,onDateMouseleave:N}),r({focus:()=>{i.value&&i.value.focus()},blur:()=>{i.value&&i.value.blur()}}),()=>{let{prefixCls:t=`rc-picker`,id:r,tabindex:o,dropdownClassName:s,dropdownAlign:p,popupStyle:g,transitionName:v,generateConfig:y,locale:b,inputReadOnly:C,allowClear:E,autofocus:M,picker:P=`date`,defaultOpenValue:F,suffixIcon:I,clearIcon:L,disabled:R,placeholder:ee,getPopupContainer:te,panelRender:z,onMousedown:ne,onMouseenter:re,onMouseleave:ie,onContextmenu:ae,onClick:oe,onSelect:se,direction:ce,autocomplete:le=`off`}=e,ue=Z(Z(Z({},e),n),{class:K({[`${t}-panel-focused`]:!A.value}),style:void 0,pickerValue:void 0,onPickerValueChange:void 0,onChange:null}),de=U(`div`,{class:`${t}-panel-layout`},[U(Ow,{prefixCls:t,presets:a.value,onClick:e=>{w(e),T(!1)}},null),U(Tw,Y(Y({},ue),{},{generateConfig:y,value:m.value,locale:b,tabindex:-1,onSelect:e=>{se?.(e),h(e)},direction:ce,onPanelChange:(t,n)=>{let{onPanelChange:r}=e;N(!0),r?.(t,n)}}),null)]);z&&(de=z(de));let B=U(`div`,{class:`${t}-panel-container`,ref:l,onMousedown:e=>{e.preventDefault()}},[de]),V;I&&(V=U(`span`,{class:`${t}-suffix`},[I]));let fe;E&&f.value&&!R&&(fe=U(`span`,{onMousedown:e=>{e.preventDefault(),e.stopPropagation()},onMouseup:e=>{e.preventDefault(),e.stopPropagation(),w(null),T(!1)},class:`${t}-clear`,role:`button`},[L||U(`span`,{class:`${t}-clear-btn`},null)]));let pe=Z(Z(Z(Z({id:r,tabindex:o,disabled:R,readonly:C||typeof c.value[0]==`function`||!A.value,value:j.value||x.value,onInput:e=>{S(e.target.value)},autofocus:M,placeholder:ee,ref:i,title:x.value},O.value),{size:hC(P,c.value[0],y)}),WC(e)),{autocomplete:le}),H=e.inputRender?e.inputRender(pe):U(`input`,pe,null),me=ce===`rtl`?`bottomRight`:`bottomLeft`;return U(`div`,{ref:d,class:K(t,n.class,{[`${t}-disabled`]:R,[`${t}-focused`]:k.value,[`${t}-rtl`]:ce===`rtl`}),style:n.style,onMousedown:ne,onMouseup:D,onMouseenter:re,onMouseleave:ie,onContextmenu:ae,onClick:oe},[U(`div`,{class:K(`${t}-input`,{[`${t}-input-placeholder`]:!!j.value}),ref:u},[H,V,fe]),U(Dw,{visible:_.value,popupStyle:g,prefixCls:t,dropdownClassName:s,dropdownAlign:p,getPopupContainer:te,transitionName:v,popupPlacement:me,direction:ce},{default:()=>[U(`div`,{style:{pointerEvents:`none`,position:`absolute`,top:0,bottom:0,left:0,right:0}},null)],popupElement:()=>B})])}}})}var Fw=Pw();function Iw(e,t){let{picker:n,locale:r,selectedValue:i,disabledDate:a,disabled:o,generateConfig:s}=e,c=J(()=>GC(i.value,0)),l=J(()=>GC(i.value,1));function u(e){return s.value.locale.getWeekFirstDate(r.value.locale,e)}function d(e){let t=s.value.getYear(e),n=s.value.getMonth(e);return t*100+n}function f(e){let t=s.value.getYear(e),n=EC(s.value,e);return t*10+n}return[e=>{if(a&&(a?.value)?.call(a,e))return!0;if(o[1]&&l)return!kC(s.value,e,l.value)&&s.value.isAfter(e,l.value);if(t.value[1]&&l.value)switch(n.value){case`quarter`:return f(e)>f(l.value);case`month`:return d(e)>d(l.value);case`week`:return u(e)>u(l.value);default:return!kC(s.value,e,l.value)&&s.value.isAfter(e,l.value)}return!1},e=>{if(a.value?.call(a,e))return!0;if(o[0]&&c)return!kC(s.value,e,l.value)&&s.value.isAfter(c.value,e);if(t.value[0]&&c.value)switch(n.value){case`quarter`:return f(e)wC(r,e,t));case`quarter`:case`month`:return a((e,t)=>TC(r,e,t));default:return a((e,t)=>OC(r,e,t))}}function Rw(e,t,n,r){let i=GC(e,0),a=GC(e,1);if(t===0)return i;if(i&&a)switch(Lw(i,a,n,r)){case`same`:return i;case`closing`:return i;default:return FC(a,n,r,-1)}return i}function zw(e){let{values:t,picker:n,defaultDates:r,generateConfig:i}=e,a=H([GC(r,0),GC(r,1)]),o=H(null),s=J(()=>GC(t.value,0)),c=J(()=>GC(t.value,1)),l=e=>a.value[e]?a.value[e]:GC(o.value,e)||Rw(t.value,e,n.value,i.value)||s.value||c.value||i.value.getNow(),u=H(null),d=H(null);E(()=>{u.value=l(0),d.value=l(1)});function f(e,n){if(e){let r=KC(o.value,e,n);a.value=KC(a.value,null,n)||[null,null];let i=(n+1)%2;GC(t.value,i)||(r=KC(r,e,i)),o.value=r}else(s.value||c.value)&&(o.value=null)}return[u,d,f]}function Bw(e){return F()?(je(e),!0):!1}function Vw(e){return typeof e==`function`?e():Ue(e)}function Hw(e){let t=Vw(e);return t?.$el??t}function Uw(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;tn()?V(e):t?e():ue(e)}function Ww(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n=q(),r=()=>n.value=!!e();return r(),Uw(r,t),n}var Gw=typeof window<`u`;Gw&&(window==null?void 0:window.navigator)?.userAgent&&/iP(ad|hone|od)/.test(window.navigator.userAgent);var Kw=Gw?window:void 0;Gw&&window.document,Gw&&window.navigator,Gw&&window.location;var qw=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i2&&arguments[2]!==void 0?arguments[2]:{},{window:r=Kw}=n,i=qw(n,[`window`]),a,o=Ww(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=G(()=>Hw(e),e=>{s(),o.value&&r&&e&&(a=new ResizeObserver(t),a.observe(e,i))},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return Bw(l),{isSupported:o,stop:l}}function Yw(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{width:0,height:0},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},{box:r=`content-box`}=n,i=q(t.width),a=q(t.height);return Jw(e,e=>{let[t]=e,n=r===`border-box`?t.borderBoxSize:r===`content-box`?t.contentBoxSize:t.devicePixelContentBoxSize;n?(i.value=n.reduce((e,t)=>{let{inlineSize:n}=t;return e+n},0),a.value=n.reduce((e,t)=>{let{blockSize:n}=t;return e+n},0)):(i.value=t.contentRect.width,a.value=t.contentRect.height)},n),G(()=>Hw(e),e=>{i.value=e?t.width:0,a.value=e?t.height:0}),{width:i,height:a}}function Xw(e,t){return e&&e[0]&&e[1]&&t.isAfter(e[0],e[1])?[e[1],e[0]]:e}function Zw(e,t,n,r){return!!(e||r&&r[t]||n[(t+1)%2])}function Qw(){return m({name:`RangerPicker`,inheritAttrs:!1,props:`prefixCls.id.popupStyle.dropdownClassName.transitionName.dropdownAlign.getPopupContainer.generateConfig.locale.placeholder.autofocus.disabled.format.picker.showTime.showNow.showHour.showMinute.showSecond.use12Hours.separator.value.defaultValue.defaultPickerValue.open.defaultOpen.disabledDate.disabledTime.dateRender.panelRender.ranges.allowEmpty.allowClear.suffixIcon.clearIcon.pickerRef.inputReadOnly.mode.renderExtraFooter.onChange.onOpenChange.onPanelChange.onCalendarChange.onFocus.onBlur.onMousedown.onMouseup.onMouseenter.onMouseleave.onClick.onOk.onKeydown.components.order.direction.activePickerIndex.autocomplete.minuteStep.hourStep.secondStep.hideDisabledOptions.disabledMinutes.presets.prevIcon.nextIcon.superPrevIcon.superNextIcon`.split(`.`),setup(e,t){let{attrs:n,expose:r}=t,i=J(()=>e.picker===`date`&&!!e.showTime||e.picker===`time`),a=Nw(J(()=>e.presets),J(()=>e.ranges)),o=H({}),s=H(null),c=H(null),l=H(null),u=H(null),d=H(null),f=H(null),p=H(null),m=H(null),h=J(()=>UC(mC(e.format,e.picker,e.showTime,e.use12Hours))),[g,_]=af(0,{value:Et(e,`activePickerIndex`)}),v=H(null),y=J(()=>{let{disabled:t}=e;return Array.isArray(t)?t:[t||!1,t||!1]}),[b,x]=af(null,{value:Et(e,`value`),defaultValue:e.defaultValue,postState:t=>e.picker===`time`&&!e.order?t:Xw(t,e.generateConfig)}),[S,C,w]=zw({values:b,picker:Et(e,`picker`),defaultDates:e.defaultPickerValue,generateConfig:Et(e,`generateConfig`)}),[T,E]=af(b.value,{postState:t=>{let n=t;if(y.value[0]&&y.value[1])return n;for(let t=0;t<2;t+=1)y.value[t]&&!GC(n,t)&&!GC(e.allowEmpty,t)&&(n=KC(n,e.generateConfig.getNow(),t));return n}}),[D,O]=af([e.picker,e.picker],{value:Et(e,`mode`)});G(()=>e.picker,()=>{O([e.picker,e.picker])});let k=(t,n)=>{var r;O(t),(r=e.onPanelChange)==null||r.call(e,n,t)},[A,j]=Iw({picker:Et(e,`picker`),selectedValue:T,locale:Et(e,`locale`),disabled:y,disabledDate:Et(e,`disabledDate`),generateConfig:Et(e,`generateConfig`)},o),[M,N]=af(!1,{value:Et(e,`open`),defaultValue:e.defaultOpen,postState:e=>!y.value[g.value]&&e,onChange:t=>{var n;(n=e.onOpenChange)==null||n.call(e,t),!t&&v.value&&v.value.onClose&&v.value.onClose()}}),P=J(()=>M.value&&g.value===0),F=J(()=>M.value&&g.value===1),I=H(0),L=H(0),R=H(0),{width:ee}=Yw(s);G([M,ee],()=>{!M.value&&s.value&&(R.value=ee.value)});let{width:te}=Yw(c),{width:z}=Yw(m),{width:ne}=Yw(l),{width:re}=Yw(d);G([g,M,te,z,ne,re,()=>e.direction],()=>{L.value=0,g.value?l.value&&d.value&&(L.value=ne.value+re.value,te.value&&z.value&&L.value>te.value-z.value-(e.direction===`rtl`||m.value.offsetLeft>L.value?0:m.value.offsetLeft)&&(I.value=L.value)):g.value===0&&(I.value=0)},{immediate:!0});let ie=H();function ae(e,t){if(e)clearTimeout(ie.value),o.value[t]=!0,_(t),N(e),M.value||w(null,t);else if(g.value===t){N(e);let t=o.value;ie.value=setTimeout(()=>{t===o.value&&(o.value={})})}}function oe(e){ae(!0,e),setTimeout(()=>{let t=[f,p][e];t.value&&t.value.focus()},0)}function se(t,n){let r=t,i=GC(r,0),a=GC(r,1),{generateConfig:s,locale:c,picker:l,order:u,onCalendarChange:d,allowEmpty:f,onChange:p,showTime:m}=e;i&&a&&s.isAfter(i,a)&&(l===`week`&&!jC(s,c.locale,i,a)||l===`quarter`&&!DC(s,i,a)||l!==`week`&&l!==`quarter`&&l!==`time`&&!(m?MC(s,i,a):kC(s,i,a))?(n===0?(r=[i,null],a=null):(i=null,r=[null,a]),o.value={[n]:!0}):(l!==`time`||u!==!1)&&(r=Xw(r,s))),E(r);let _=r&&r[0]?IC(r[0],{generateConfig:s,locale:c,format:h.value[0]}):``,v=r&&r[1]?IC(r[1],{generateConfig:s,locale:c,format:h.value[0]}):``;d&&d(r,[_,v],{range:n===0?`start`:`end`});let S=Zw(i,0,y.value,f),C=Zw(a,1,y.value,f);(r===null||S&&C)&&(x(r),p&&(!MC(s,GC(b.value,0),i)||!MC(s,GC(b.value,1),a))&&p(r,[_,v]));let w=null;n===0&&!y.value[1]?w=1:n===1&&!y.value[0]&&(w=0),w!==null&&w!==g.value&&(!o.value[w]||!GC(r,w))&&GC(r,n)?oe(w):ae(!1,n)}let ce=e=>M&&v.value&&v.value.onKeydown?v.value.onKeydown(e):!1,le={formatList:h,generateConfig:Et(e,`generateConfig`),locale:Et(e,`locale`)},[ue,de]=jw(J(()=>GC(T.value,0)),le),[B,V]=jw(J(()=>GC(T.value,1)),le),fe=(t,n)=>{let r=LC(t,{locale:e.locale,formatList:h.value,generateConfig:e.generateConfig});r&&!(n===0?A:j)(r)&&(E(KC(T.value,r,n)),w(r,n))},[pe,me,he]=Aw({valueTexts:ue,onTextChange:e=>fe(e,0)}),[ge,_e,ve]=Aw({valueTexts:B,onTextChange:e=>fe(e,1)}),[ye,be]=of(null),[xe,W]=of(null),[Se,Ce,we]=Mw(pe,le),[Te,Ee,De]=Mw(ge,le),Oe=e=>{W(KC(T.value,e,g.value)),g.value===0?Ce(e):Ee(e)},ke=()=>{W(KC(T.value,null,g.value)),g.value===0?we():De()},Ae=(t,n)=>({forwardKeydown:ce,onBlur:t=>{var n;(n=e.onBlur)==null||n.call(e,t)},isClickOutside:e=>!xC([c.value,l.value,u.value,s.value],e),onFocus:n=>{var r;_(t),(r=e.onFocus)==null||r.call(e,n)},triggerOpen:e=>{ae(e,t)},onSubmit:()=>{if(!T.value||e.disabledDate&&e.disabledDate(T.value[t]))return!1;se(T.value,t),n()},onCancel:()=>{ae(!1,t),E(b.value),n()}}),[je,{focused:Me,typing:Ne}]=kw(Z(Z({},Ae(0,he)),{blurToCancel:i,open:P,value:pe,onKeydown:(t,n)=>{var r;(r=e.onKeydown)==null||r.call(e,t,n)}})),[Pe,{focused:Fe,typing:Ie}]=kw(Z(Z({},Ae(1,ve)),{blurToCancel:i,open:F,value:ge,onKeydown:(t,n)=>{var r;(r=e.onKeydown)==null||r.call(e,t,n)}})),Le=t=>{var n;(n=e.onClick)==null||n.call(e,t),!M.value&&!f.value.contains(t.target)&&!p.value.contains(t.target)&&(y.value[0]?y.value[1]||oe(1):oe(0))},Re=t=>{var n;(n=e.onMousedown)==null||n.call(e,t),M.value&&(Me.value||Fe.value)&&!f.value.contains(t.target)&&!p.value.contains(t.target)&&t.preventDefault()},ze=J(()=>b.value?.[0]?IC(b.value[0],{locale:e.locale,format:`YYYYMMDDHHmmss`,generateConfig:e.generateConfig}):``),Be=J(()=>b.value?.[1]?IC(b.value[1],{locale:e.locale,format:`YYYYMMDDHHmmss`,generateConfig:e.generateConfig}):``);G([M,ue,B],()=>{M.value||(E(b.value),!ue.value.length||ue.value[0]===``?me(``):de.value!==pe.value&&he(),!B.value.length||B.value[0]===``?_e(``):V.value!==ge.value&&ve())}),G([ze,Be],()=>{E(b.value)}),r({focus:()=>{f.value&&f.value.focus()},blur:()=>{f.value&&f.value.blur(),p.value&&p.value.blur()}});let Ve=J(()=>M.value&&xe.value&&xe.value[0]&&xe.value[1]&&e.generateConfig.isAfter(xe.value[1],xe.value[0])?xe.value:null);function He(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{generateConfig:r,showTime:i,dateRender:a,direction:o,disabledTime:s,prefixCls:c,locale:l}=e,u=i;if(i&&typeof i==`object`&&i.defaultValue){let e=i.defaultValue;u=Z(Z({},i),{defaultValue:GC(e,g.value)||void 0})}let d=null;return a&&(d=e=>{let{current:t,today:n}=e;return a({current:t,today:n,info:{range:g.value?`end`:`start`}})}),U(tw,{value:{inRange:!0,panelPosition:t,rangedValue:ye.value||T.value,hoverRangedValue:Ve.value}},{default:()=>[U(Tw,Y(Y(Y({},e),n),{},{dateRender:d,showTime:u,mode:D.value[g.value],generateConfig:r,style:void 0,direction:o,disabledDate:g.value===0?A:j,disabledTime:e=>s?s(e,g.value===0?`start`:`end`):!1,class:K({[`${c}-panel-focused`]:g.value===0?!Ne.value:!Ie.value}),value:GC(T.value,g.value),locale:l,tabIndex:-1,onPanelChange:(e,n)=>{g.value===0&&we(!0),g.value===1&&De(!0),k(KC(D.value,n,g.value),KC(T.value,e,g.value));let i=e;t===`right`&&D.value[g.value]===n&&(i=FC(i,n,r,-1)),w(i,g.value)},onOk:null,onSelect:void 0,onChange:void 0,defaultValue:g.value===0?GC(T.value,1):GC(T.value,0)}),null)]})}return QS({operationRef:v,hideHeader:J(()=>e.picker===`time`),onDateMouseenter:Oe,onDateMouseleave:ke,hideRanges:J(()=>!0),onSelect:(e,t)=>{let n=KC(T.value,e,g.value);t===`submit`||t!==`key`&&!i.value?(se(n,g.value),g.value===0?we():De()):E(n)},open:M}),()=>{let{prefixCls:t=`rc-picker`,id:r,popupStyle:o,dropdownClassName:_,transitionName:v,dropdownAlign:x,getPopupContainer:E,generateConfig:O,locale:k,placeholder:A,autofocus:j,picker:N=`date`,showTime:P,separator:F=`~`,disabledDate:ee,panelRender:te,allowClear:z,suffixIcon:ne,clearIcon:re,inputReadOnly:ie,renderExtraFooter:oe,onMouseenter:ce,onMouseleave:le,onMouseup:ue,onOk:de,components:B,direction:V,autocomplete:fe=`off`}=e,H=V===`rtl`?{right:`${L.value}px`}:{left:`${L.value}px`};function he(){let e,n=xw(t,D.value[g.value],oe),r=Sw({prefixCls:t,components:B,needConfirmButton:i.value,okDisabled:!GC(T.value,g.value)||ee&&ee(T.value[g.value]),locale:k,onOk:()=>{GC(T.value,g.value)&&(se(T.value,g.value),de&&de(T.value))}});if(N!==`time`&&!P){let t=g.value===0?S.value:C.value,n=FC(t,N,O),r=D.value[g.value]===N,i=He(r?`left`:!1,{pickerValue:t,onPickerValueChange:e=>{w(e,g.value)}}),a=He(`right`,{pickerValue:n,onPickerValueChange:e=>{w(FC(e,N,O,-1),g.value)}});e=V===`rtl`?U(rt,null,[a,r&&i]):U(rt,null,[i,r&&a])}else e=He();let o=U(`div`,{class:`${t}-panel-layout`},[U(Ow,{prefixCls:t,presets:a.value,onClick:e=>{se(e,null),ae(!1,g.value)},onHover:e=>{be(e)}},null),U(`div`,null,[U(`div`,{class:`${t}-panels`},[e]),(n||r)&&U(`div`,{class:`${t}-footer`},[n,r])])]);return te&&(o=te(o)),U(`div`,{class:`${t}-panel-container`,style:{marginLeft:`${I.value}px`},ref:c,onMousedown:e=>{e.preventDefault()}},[o])}let ve=U(`div`,{class:K(`${t}-range-wrapper`,`${t}-${N}-range-wrapper`),style:{minWidth:`${R.value}px`}},[U(`div`,{ref:m,class:`${t}-range-arrow`,style:H},null),he()]),ye;ne&&(ye=U(`span`,{class:`${t}-suffix`},[ne]));let xe;z&&(GC(b.value,0)&&!y.value[0]||GC(b.value,1)&&!y.value[1])&&(xe=U(`span`,{onMousedown:e=>{e.preventDefault(),e.stopPropagation()},onMouseup:e=>{e.preventDefault(),e.stopPropagation();let t=b.value;y.value[0]||(t=KC(t,null,0)),y.value[1]||(t=KC(t,null,1)),se(t,null),ae(!1,g.value)},class:`${t}-clear`},[re||U(`span`,{class:`${t}-clear-btn`},null)]));let W={size:hC(N,h.value[0],O)},Ce=0,we=0;l.value&&u.value&&d.value&&(g.value===0?we=l.value.offsetWidth:(Ce=L.value,we=u.value.offsetWidth));let Ee=V===`rtl`?{right:`${Ce}px`}:{left:`${Ce}px`};return U(`div`,Y({ref:s,class:K(t,`${t}-range`,n.class,{[`${t}-disabled`]:y.value[0]&&y.value[1],[`${t}-focused`]:g.value===0?Me.value:Fe.value,[`${t}-rtl`]:V===`rtl`}),style:n.style,onClick:Le,onMouseenter:ce,onMouseleave:le,onMousedown:Re,onMouseup:ue},WC(e)),[U(`div`,{class:K(`${t}-input`,{[`${t}-input-active`]:g.value===0,[`${t}-input-placeholder`]:!!Se.value}),ref:l},[U(`input`,Y(Y(Y({id:r,disabled:y.value[0],readonly:ie||typeof h.value[0]==`function`||!Ne.value,value:Se.value||pe.value,onInput:e=>{me(e.target.value)},autofocus:j,placeholder:GC(A,0)||``,ref:f},je.value),W),{},{autocomplete:fe}),null)]),U(`div`,{class:`${t}-range-separator`,ref:d},[F]),U(`div`,{class:K(`${t}-input`,{[`${t}-input-active`]:g.value===1,[`${t}-input-placeholder`]:!!Te.value}),ref:u},[U(`input`,Y(Y(Y({disabled:y.value[1],readonly:ie||typeof h.value[0]==`function`||!Ie.value,value:Te.value||ge.value,onInput:e=>{_e(e.target.value)},placeholder:GC(A,1)||``,ref:p},Pe.value),W),{},{autocomplete:fe}),null)]),U(`div`,{class:`${t}-active-bar`,style:Z(Z({},Ee),{width:`${we}px`,position:`absolute`})},null),ye,xe,U(Dw,{visible:M.value,popupStyle:o,prefixCls:t,dropdownClassName:_,dropdownAlign:x,getPopupContainer:E,transitionName:v,range:!0,direction:V},{default:()=>[U(`div`,{style:{pointerEvents:`none`,position:`absolute`,top:0,bottom:0,left:0,right:0}},null)],popupElement:()=>ve})])}}})}var $w=Qw(),eT=Fw,tT=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);ie.checked,()=>{a.value=e.checked}),i({focus(){var e;(e=o.value)==null||e.focus()},blur(){var e;(e=o.value)==null||e.blur()}});let s=H(),c=t=>{if(e.disabled)return;e.checked===void 0&&(a.value=t.target.checked),t.shiftKey=s.value;let n={target:Z(Z({},e),{checked:t.target.checked}),stopPropagation(){t.stopPropagation()},preventDefault(){t.preventDefault()},nativeEvent:t};e.checked!==void 0&&(o.value.checked=!!e.checked),r(`change`,n),s.value=!1},l=e=>{r(`click`,e),s.value=e.shiftKey};return()=>{let{prefixCls:t,name:r,id:i,type:s,disabled:u,readonly:d,tabindex:f,autofocus:p,value:m,required:h}=e,g=tT(e,[`prefixCls`,`name`,`id`,`type`,`disabled`,`readonly`,`tabindex`,`autofocus`,`value`,`required`]),{class:_,onFocus:v,onBlur:y,onKeydown:b,onKeypress:x,onKeyup:S}=n,C=Z(Z({},g),n),w=Object.keys(C).reduce((e,t)=>((t.startsWith(`data-`)||t.startsWith(`aria-`)||t===`role`)&&(e[t]=C[t]),e),{}),T=K(t,_,{[`${t}-checked`]:a.value,[`${t}-disabled`]:u}),E=Z(Z({name:r,id:i,type:s,readonly:d,disabled:u,tabindex:f,class:`${t}-input`,checked:!!a.value,autofocus:p,value:m},w),{onChange:c,onClick:l,onFocus:v,onBlur:y,onKeydown:b,onKeypress:x,onKeyup:S,required:h});return U(`span`,{class:T},[U(`input`,Y({ref:o},E),null),U(`span`,{class:`${t}-inner`},null)])}}}),rT=Symbol(`radioGroupContextKey`),iT=e=>{ge(rT,e)},aT=()=>b(rT,void 0),oT=Symbol(`radioOptionTypeContextKey`),sT=e=>{ge(oT,e)},cT=()=>b(oT,void 0),lT=new L(`antRadioEffect`,{"0%":{transform:`scale(1)`,opacity:.5},"100%":{transform:`scale(1.6)`,opacity:0}}),uT=e=>{let{componentCls:t,antCls:n}=e,r=`${t}-group`;return{[r]:Z(Z({},cn(e)),{display:`inline-block`,fontSize:0,[`&${r}-rtl`]:{direction:`rtl`},[`${n}-badge ${n}-badge-count`]:{zIndex:1},[`> ${n}-badge:not(:first-child) > ${n}-button-wrapper`]:{borderInlineStart:`none`}})}},dT=e=>{let{componentCls:t,radioWrapperMarginRight:n,radioCheckedColor:r,radioSize:i,motionDurationSlow:a,motionDurationMid:o,motionEaseInOut:s,motionEaseInOutCirc:c,radioButtonBg:l,colorBorder:u,lineWidth:d,radioDotSize:f,colorBgContainerDisabled:p,colorTextDisabled:m,paddingXS:h,radioDotDisabledColor:g,lineType:_,radioDotDisabledSize:v,wireframe:y,colorWhite:b}=e,x=`${t}-inner`;return{[`${t}-wrapper`]:Z(Z({},cn(e)),{position:`relative`,display:`inline-flex`,alignItems:`baseline`,marginInlineStart:0,marginInlineEnd:n,cursor:`pointer`,[`&${t}-wrapper-rtl`]:{direction:`rtl`},"&-disabled":{cursor:`not-allowed`,color:e.colorTextDisabled},"&::after":{display:`inline-block`,width:0,overflow:`hidden`,content:`"\\a0"`},[`${t}-checked::after`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,width:`100%`,height:`100%`,border:`${d}px ${_} ${r}`,borderRadius:`50%`,visibility:`hidden`,animationName:lT,animationDuration:a,animationTimingFunction:s,animationFillMode:`both`,content:`""`},[t]:Z(Z({},cn(e)),{position:`relative`,display:`inline-block`,outline:`none`,cursor:`pointer`,alignSelf:`center`}),[`${t}-wrapper:hover &,
+ &:hover ${x}`]:{borderColor:r},[`${t}-input:focus-visible + ${x}`]:Z({},te(e)),[`${t}:hover::after, ${t}-wrapper:hover &::after`]:{visibility:`visible`},[`${t}-inner`]:{"&::after":{boxSizing:`border-box`,position:`absolute`,insetBlockStart:`50%`,insetInlineStart:`50%`,display:`block`,width:i,height:i,marginBlockStart:i/-2,marginInlineStart:i/-2,backgroundColor:y?r:b,borderBlockStart:0,borderInlineStart:0,borderRadius:i,transform:`scale(0)`,opacity:0,transition:`all ${a} ${c}`,content:`""`},boxSizing:`border-box`,position:`relative`,insetBlockStart:0,insetInlineStart:0,display:`block`,width:i,height:i,backgroundColor:l,borderColor:u,borderStyle:`solid`,borderWidth:d,borderRadius:`50%`,transition:`all ${o}`},[`${t}-input`]:{position:`absolute`,insetBlockStart:0,insetInlineEnd:0,insetBlockEnd:0,insetInlineStart:0,zIndex:1,cursor:`pointer`,opacity:0},[`${t}-checked`]:{[x]:{borderColor:r,backgroundColor:y?l:r,"&::after":{transform:`scale(${f/i})`,opacity:1,transition:`all ${a} ${c}`}}},[`${t}-disabled`]:{cursor:`not-allowed`,[x]:{backgroundColor:p,borderColor:u,cursor:`not-allowed`,"&::after":{backgroundColor:g}},[`${t}-input`]:{cursor:`not-allowed`},[`${t}-disabled + span`]:{color:m,cursor:`not-allowed`},[`&${t}-checked`]:{[x]:{"&::after":{transform:`scale(${v/i})`}}}},[`span${t} + *`]:{paddingInlineStart:h,paddingInlineEnd:h}})}},fT=e=>{let{radioButtonColor:t,controlHeight:n,componentCls:r,lineWidth:i,lineType:a,colorBorder:o,motionDurationSlow:s,motionDurationMid:c,radioButtonPaddingHorizontal:l,fontSize:u,radioButtonBg:d,fontSizeLG:f,controlHeightLG:p,controlHeightSM:m,paddingXS:h,borderRadius:g,borderRadiusSM:_,borderRadiusLG:v,radioCheckedColor:y,radioButtonCheckedBg:b,radioButtonHoverColor:x,radioButtonActiveColor:S,radioSolidCheckedColor:C,colorTextDisabled:w,colorBgContainerDisabled:T,radioDisabledButtonCheckedColor:E,radioDisabledButtonCheckedBg:D}=e;return{[`${r}-button-wrapper`]:{position:`relative`,display:`inline-block`,height:n,margin:0,paddingInline:l,paddingBlock:0,color:t,fontSize:u,lineHeight:`${n-i*2}px`,background:d,border:`${i}px ${a} ${o}`,borderBlockStartWidth:i+.02,borderInlineStartWidth:0,borderInlineEndWidth:i,cursor:`pointer`,transition:[`color ${c}`,`background ${c}`,`border-color ${c}`,`box-shadow ${c}`].join(`,`),a:{color:t},[`> ${r}-button`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:`100%`,height:`100%`},"&:not(:first-child)":{"&::before":{position:`absolute`,insetBlockStart:-i,insetInlineStart:-i,display:`block`,boxSizing:`content-box`,width:1,height:`100%`,paddingBlock:i,paddingInline:0,backgroundColor:o,transition:`background-color ${s}`,content:`""`}},"&:first-child":{borderInlineStart:`${i}px ${a} ${o}`,borderStartStartRadius:g,borderEndStartRadius:g},"&:last-child":{borderStartEndRadius:g,borderEndEndRadius:g},"&:first-child:last-child":{borderRadius:g},[`${r}-group-large &`]:{height:p,fontSize:f,lineHeight:`${p-i*2}px`,"&:first-child":{borderStartStartRadius:v,borderEndStartRadius:v},"&:last-child":{borderStartEndRadius:v,borderEndEndRadius:v}},[`${r}-group-small &`]:{height:m,paddingInline:h-i,paddingBlock:0,lineHeight:`${m-i*2}px`,"&:first-child":{borderStartStartRadius:_,borderEndStartRadius:_},"&:last-child":{borderStartEndRadius:_,borderEndEndRadius:_}},"&:hover":{position:`relative`,color:y},"&:has(:focus-visible)":Z({},te(e)),[`${r}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:`none`},[`&-checked:not(${r}-button-wrapper-disabled)`]:{zIndex:1,color:y,background:b,borderColor:y,"&::before":{backgroundColor:y},"&:first-child":{borderColor:y},"&:hover":{color:x,borderColor:x,"&::before":{backgroundColor:x}},"&:active":{color:S,borderColor:S,"&::before":{backgroundColor:S}}},[`${r}-group-solid &-checked:not(${r}-button-wrapper-disabled)`]:{color:C,background:y,borderColor:y,"&:hover":{color:C,background:x,borderColor:x},"&:active":{color:C,background:S,borderColor:S}},"&-disabled":{color:w,backgroundColor:T,borderColor:o,cursor:`not-allowed`,"&:first-child, &:hover":{color:w,backgroundColor:T,borderColor:o}},[`&-disabled${r}-button-wrapper-checked`]:{color:E,backgroundColor:D,borderColor:o,boxShadow:`none`}}}},pT=S(`Radio`,e=>{let{padding:t,lineWidth:n,controlItemBgActiveDisabled:r,colorTextDisabled:i,colorBgContainer:a,fontSizeLG:o,controlOutline:s,colorPrimaryHover:c,colorPrimaryActive:l,colorText:u,colorPrimary:d,marginXS:f,controlOutlineWidth:p,colorTextLightSolid:m,wireframe:h}=e,g=`0 0 0 ${p}px ${s}`,_=g,v=o,y=v-8,b=B(e,{radioFocusShadow:g,radioButtonFocusShadow:_,radioSize:v,radioDotSize:h?y:v-(4+n)*2,radioDotDisabledSize:y,radioCheckedColor:d,radioDotDisabledColor:i,radioSolidCheckedColor:m,radioButtonBg:a,radioButtonCheckedBg:a,radioButtonColor:u,radioButtonHoverColor:c,radioButtonActiveColor:l,radioButtonPaddingHorizontal:t-n,radioDisabledButtonCheckedBg:r,radioDisabledButtonCheckedColor:i,radioWrapperMarginRight:f});return[uT(b),dT(b),fT(b)]}),mT=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i({prefixCls:String,checked:Q(),disabled:Q(),isGroup:Q(),value:g.any,name:String,id:String,autofocus:Q(),onChange:h(),onFocus:h(),onBlur:h(),onClick:h(),"onUpdate:checked":h(),"onUpdate:value":h()}),gT=m({compatConfig:{MODE:3},name:`ARadio`,inheritAttrs:!1,props:hT(),setup(e,t){let{emit:n,expose:r,slots:i,attrs:a}=t,o=Nf(),s=Ff.useInject(),c=cT(),l=aT(),u=lt(),d=J(()=>h.value??u.value),f=H(),{prefixCls:p,direction:m,disabled:h}=X(`radio`,e),g=J(()=>l?.optionType.value===`button`||c===`button`?`${p.value}-button`:p.value),_=lt(),[v,y]=pT(p);r({focus:()=>{f.value.focus()},blur:()=>{f.value.blur()}});let b=e=>{let t=e.target.checked;n(`update:checked`,t),n(`update:value`,t),n(`change`,e),o.onFieldChange()},x=e=>{n(`change`,e),l&&l.onChange&&l.onChange(e)};return()=>{let t=l,{prefixCls:n,id:r=o.id.value}=e,c=mT(e,[`prefixCls`,`id`]),u=Z(Z({prefixCls:g.value,id:r},Pr(c,[`onUpdate:checked`,`onUpdate:value`])),{disabled:h.value??_.value});t?(u.name=t.name.value,u.onChange=x,u.checked=e.value===t.value.value,u.disabled=d.value||t.disabled.value):u.onChange=b;let p=K({[`${g.value}-wrapper`]:!0,[`${g.value}-wrapper-checked`]:u.checked,[`${g.value}-wrapper-disabled`]:u.disabled,[`${g.value}-wrapper-rtl`]:m.value===`rtl`,[`${g.value}-wrapper-in-form-item`]:s.isFormItemInput},a.class,y.value);return v(U(`label`,Y(Y({},a),{},{class:p}),[U(nT,Y(Y({},u),{},{type:`radio`,ref:f}),null),i.default&&U(`span`,null,[i.default()])]))}}}),_T=m({compatConfig:{MODE:3},name:`ARadioGroup`,inheritAttrs:!1,props:{prefixCls:String,value:g.any,size:x(),options:qe(),disabled:Q(),name:String,buttonStyle:x(`outline`),id:String,optionType:x(`default`),onChange:h(),"onUpdate:value":h()},setup(e,t){let{slots:n,emit:r,attrs:i}=t,a=Nf(),{prefixCls:o,direction:s,size:c}=X(`radio`,e),[l,u]=pT(o),d=H(e.value),f=H(!1);return G(()=>e.value,e=>{d.value=e,f.value=!1}),iT({onChange:t=>{let n=d.value,{value:i}=t.target;`value`in e||(d.value=i),!f.value&&i!==n&&(f.value=!0,r(`update:value`,i),r(`change`,t),a.onFieldChange()),ue(()=>{f.value=!1})},value:d,disabled:J(()=>e.disabled),name:J(()=>e.name),optionType:J(()=>e.optionType)}),()=>{let{options:t,buttonStyle:r,id:f=a.id.value}=e,p=`${o.value}-group`,m=K(p,`${p}-${r}`,{[`${p}-${c.value}`]:c.value,[`${p}-rtl`]:s.value===`rtl`},i.class,u.value),h=null;return h=t&&t.length>0?t.map(t=>{if(typeof t==`string`||typeof t==`number`)return U(gT,{key:t,prefixCls:o.value,disabled:e.disabled,value:t,checked:d.value===t},{default:()=>[t]});let{value:n,disabled:r,label:i}=t;return U(gT,{key:`radio-group-value-options-${n}`,prefixCls:o.value,disabled:r||e.disabled,value:n,checked:d.value===n},{default:()=>[i]})}):n.default?.call(n),l(U(`div`,Y(Y({},i),{},{class:m,id:f}),[h]))}}}),vT=m({compatConfig:{MODE:3},name:`ARadioButton`,inheritAttrs:!1,props:hT(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=X(`radio`,e);return sT(`button`),()=>U(gT,Y(Y(Y({},r),e),{},{prefixCls:i.value}),{default:()=>[n.default?.call(n)]})}});gT.Group=_T,gT.Button=vT,gT.install=function(e){return e.component(gT.name,gT),e.component(gT.Group.name,gT.Group),e.component(gT.Button.name,gT.Button),e};var yT=gT,bT=10,xT=20;function ST(e){let{fullscreen:t,validRange:n,generateConfig:r,locale:i,prefixCls:a,value:o,onChange:s,divRef:c}=e,l=r.getYear(o||r.getNow()),u=l-bT,d=u+xT;n&&(u=r.getYear(n[0]),d=r.getYear(n[1])+1);let f=i&&i.year===`年`?`年`:``,p=[];for(let e=u;e{let t=r.setYear(o,e);if(n){let[e,i]=n,a=r.getYear(t),o=r.getMonth(t);a===r.getYear(i)&&o>r.getMonth(i)&&(t=r.setMonth(t,r.getMonth(i))),a===r.getYear(e)&&oc.value},null)}ST.inheritAttrs=!1;function CT(e){let{prefixCls:t,fullscreen:n,validRange:r,value:i,generateConfig:a,locale:o,onChange:s,divRef:c}=e,l=a.getMonth(i||a.getNow()),u=0,d=11;if(r){let[e,t]=r,n=a.getYear(i);a.getYear(t)===n&&(d=a.getMonth(t)),a.getYear(e)===n&&(u=a.getMonth(e))}let f=o.shortMonths||a.locale.getShortMonths(o.locale),p=[];for(let e=u;e<=d;e+=1)p.push({label:f[e],value:e});return U(pv,{size:n?void 0:`small`,class:`${t}-month-select`,value:l,options:p,onChange:e=>{s(a.setMonth(i,e))},getPopupContainer:()=>c.value},null)}CT.inheritAttrs=!1;function wT(e){let{prefixCls:t,locale:n,mode:r,fullscreen:i,onModeChange:a}=e;return U(_T,{onChange:e=>{let{target:{value:t}}=e;a(t)},value:r,size:i?void 0:`small`,class:`${t}-mode-switch`},{default:()=>[U(vT,{value:`month`},{default:()=>[n.month]}),U(vT,{value:`year`},{default:()=>[n.year]})]})}wT.inheritAttrs=!1;var TT=m({name:`CalendarHeader`,inheritAttrs:!1,props:[`mode`,`prefixCls`,`value`,`validRange`,`generateConfig`,`locale`,`mode`,`fullscreen`],setup(e,t){let{attrs:n}=t,r=H(null),i=Ff.useInject();return Ff.useProvide(i,{isFormItemInput:!1}),()=>{let t=Z(Z({},e),n),{prefixCls:i,fullscreen:a,mode:o,onChange:s,onModeChange:c}=t,l=Z(Z({},t),{fullscreen:a,divRef:r});return U(`div`,{class:`${i}-header`,ref:r},[U(ST,Y(Y({},l),{},{onChange:e=>{s(e,`year`)}}),null),o===`month`&&U(CT,Y(Y({},l),{},{onChange:e=>{s(e,`month`)}}),null),U(wT,Y(Y({},l),{},{onModeChange:c}),null)])}}}),ET=e=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:e,userSelect:`none`},"&:placeholder-shown":{textOverflow:`ellipsis`}}),DT=e=>({borderColor:e.inputBorderHoverColor,borderInlineEndWidth:e.lineWidth}),OT=e=>({borderColor:e.inputBorderHoverColor,boxShadow:`0 0 0 ${e.controlOutlineWidth}px ${e.controlOutline}`,borderInlineEndWidth:e.lineWidth,outline:0}),kT=e=>({color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:`none`,cursor:`not-allowed`,opacity:1,"&:hover":Z({},DT(B(e,{inputBorderHoverColor:e.colorBorder})))}),AT=e=>{let{inputPaddingVerticalLG:t,fontSizeLG:n,lineHeightLG:r,borderRadiusLG:i,inputPaddingHorizontalLG:a}=e;return{padding:`${t}px ${a}px`,fontSize:n,lineHeight:r,borderRadius:i}},jT=e=>({padding:`${e.inputPaddingVerticalSM}px ${e.controlPaddingHorizontalSM-1}px`,borderRadius:e.borderRadiusSM}),MT=(e,t)=>{let{componentCls:n,colorError:r,colorWarning:i,colorErrorOutline:a,colorWarningOutline:o,colorErrorBorderHover:s,colorWarningBorderHover:c}=e;return{[`&-status-error:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:r,"&:hover":{borderColor:s},"&:focus, &-focused":Z({},OT(B(e,{inputBorderActiveColor:r,inputBorderHoverColor:r,controlOutline:a}))),[`${n}-prefix`]:{color:r}},[`&-status-warning:not(${t}-disabled):not(${t}-borderless)${t}`]:{borderColor:i,"&:hover":{borderColor:c},"&:focus, &-focused":Z({},OT(B(e,{inputBorderActiveColor:i,inputBorderHoverColor:i,controlOutline:o}))),[`${n}-prefix`]:{color:i}}}},NT=e=>Z(Z({position:`relative`,display:`inline-block`,width:`100%`,minWidth:0,padding:`${e.inputPaddingVertical}px ${e.inputPaddingHorizontal}px`,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,backgroundColor:e.colorBgContainer,backgroundImage:`none`,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:e.colorBorder,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},ET(e.colorTextPlaceholder)),{"&:hover":Z({},DT(e)),"&:focus, &-focused":Z({},OT(e)),"&-disabled, &[disabled]":Z({},kT(e)),"&-borderless":{"&, &:hover, &:focus, &-focused, &-disabled, &[disabled]":{backgroundColor:`transparent`,border:`none`,boxShadow:`none`}},"textarea&":{maxWidth:`100%`,height:`auto`,minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:`bottom`,transition:`all ${e.motionDurationSlow}, height 0s`,resize:`vertical`},"&-lg":Z({},AT(e)),"&-sm":Z({},jT(e)),"&-rtl":{direction:`rtl`},"&-textarea-rtl":{direction:`rtl`}}),PT=e=>{let{componentCls:t,antCls:n}=e;return{position:`relative`,display:`table`,width:`100%`,borderCollapse:`separate`,borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:e.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${t}, &-lg > ${t}-group-addon`]:Z({},AT(e)),[`&-sm ${t}, &-sm > ${t}-group-addon`]:Z({},jT(e)),[`> ${t}`]:{display:`table-cell`,"&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${t}-group`]:{"&-addon, &-wrap":{display:`table-cell`,width:1,whiteSpace:`nowrap`,verticalAlign:`middle`,"&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:`block !important`},"&-addon":{position:`relative`,padding:`0 ${e.inputPaddingHorizontal}px`,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,textAlign:`center`,backgroundColor:e.colorFillAlter,border:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${n}-select`]:{margin:`-${e.inputPaddingVertical+1}px -${e.inputPaddingHorizontal}px`,[`&${n}-select-single:not(${n}-select-customize-input)`]:{[`${n}-select-selector`]:{backgroundColor:`inherit`,border:`${e.lineWidth}px ${e.lineType} transparent`,boxShadow:`none`}},"&-open, &-focused":{[`${n}-select-selector`]:{color:e.colorPrimary}}},[`${n}-cascader-picker`]:{margin:`-9px -${e.inputPaddingHorizontal}px`,backgroundColor:`transparent`,[`${n}-cascader-input`]:{textAlign:`start`,border:0,boxShadow:`none`}}},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}},[`${t}`]:{float:`inline-start`,width:`100%`,marginBottom:0,textAlign:`inherit`,"&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${t}-search-with-button &`]:{zIndex:0}}},[`> ${t}:first-child, ${t}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}-affix-wrapper`]:{[`&:not(:first-child) ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}:last-child, ${t}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${n}-select ${n}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${t}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${t}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${t}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${t}-group-compact`]:Z(Z({display:`block`},j()),{[`${t}-group-addon, ${t}-group-wrap, > ${t}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:e.lineWidth,"&:hover":{zIndex:1},"&:focus":{zIndex:1}}},"& > *":{display:`inline-block`,float:`none`,verticalAlign:`top`,borderRadius:0},[`& > ${t}-affix-wrapper`]:{display:`inline-flex`},[`& > ${n}-picker-range`]:{display:`inline-flex`},"& > *:not(:last-child)":{marginInlineEnd:-e.lineWidth,borderInlineEndWidth:e.lineWidth},[`${t}`]:{float:`none`},[`& > ${n}-select > ${n}-select-selector,
+ & > ${n}-select-auto-complete ${t},
+ & > ${n}-cascader-picker ${t},
+ & > ${t}-group-wrapper ${t}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,"&:hover":{zIndex:1},"&:focus":{zIndex:1}},[`& > ${n}-select-focused`]:{zIndex:1},[`& > ${n}-select > ${n}-select-arrow`]:{zIndex:1},[`& > *:first-child,
+ & > ${n}-select:first-child > ${n}-select-selector,
+ & > ${n}-select-auto-complete:first-child ${t},
+ & > ${n}-cascader-picker:first-child ${t}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child,
+ & > ${n}-select:last-child > ${n}-select-selector,
+ & > ${n}-cascader-picker:last-child ${t},
+ & > ${n}-cascader-picker-focused:last-child ${t}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${n}-select-auto-complete ${t}`]:{verticalAlign:`top`},[`${t}-group-wrapper + ${t}-group-wrapper`]:{marginInlineStart:-e.lineWidth,[`${t}-affix-wrapper`]:{borderRadius:0}},[`${t}-group-wrapper:not(:last-child)`]:{[`&${t}-search > ${t}-group`]:{[`& > ${t}-group-addon > ${t}-search-button`]:{borderRadius:0},[`& > ${t}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}}),[`&&-sm ${n}-btn`]:{fontSize:e.fontSizeSM,height:e.controlHeightSM,lineHeight:`normal`},[`&&-lg ${n}-btn`]:{fontSize:e.fontSizeLG,height:e.controlHeightLG,lineHeight:`normal`},[`&&-lg ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightLG}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightLG-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightLG}px`}},[`&&-sm ${n}-select-single ${n}-select-selector`]:{height:`${e.controlHeightSM}px`,[`${n}-select-selection-item, ${n}-select-selection-placeholder`]:{lineHeight:`${e.controlHeightSM-2}px`},[`${n}-select-selection-search-input`]:{height:`${e.controlHeightSM}px`}}}},FT=e=>{let{componentCls:t,controlHeightSM:n,lineWidth:r}=e,i=(n-r*2-16)/2;return{[t]:Z(Z(Z(Z({},cn(e)),NT(e)),MT(e,t)),{'&[type="color"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:n,paddingTop:i,paddingBottom:i}}})}},IT=e=>{let{componentCls:t}=e;return{[`${t}-clear-icon`]:{margin:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:`pointer`,transition:`color ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextTertiary},"&:active":{color:e.colorText},"&-hidden":{visibility:`hidden`},"&-has-suffix":{margin:`0 ${e.inputAffixPadding}px`}},"&-textarea-with-clear-btn":{padding:`0 !important`,border:`0 !important`,[`${t}-clear-icon`]:{position:`absolute`,insetBlockStart:e.paddingXS,insetInlineEnd:e.paddingXS,zIndex:1}}}},LT=e=>{let{componentCls:t,inputAffixPadding:n,colorTextDescription:r,motionDurationSlow:i,colorIcon:a,colorIconHover:o,iconCls:s}=e;return{[`${t}-affix-wrapper`]:Z(Z(Z(Z(Z({},NT(e)),{display:`inline-flex`,[`&:not(${t}-affix-wrapper-disabled):hover`]:Z(Z({},DT(e)),{zIndex:1,[`${t}-search-with-button &`]:{zIndex:0}}),"&-focused, &:focus":{zIndex:1},"&-disabled":{[`${t}[disabled]`]:{background:`transparent`}},[`> input${t}`]:{padding:0,fontSize:`inherit`,border:`none`,borderRadius:0,outline:`none`,"&:focus":{boxShadow:`none !important`}},"&::before":{width:0,visibility:`hidden`,content:`"\\a0"`},[`${t}`]:{"&-prefix, &-suffix":{display:`flex`,flex:`none`,alignItems:`center`,"> *:not(:last-child)":{marginInlineEnd:e.paddingXS}},"&-show-count-suffix":{color:r},"&-show-count-has-suffix":{marginInlineEnd:e.paddingXXS},"&-prefix":{marginInlineEnd:n},"&-suffix":{marginInlineStart:n}}}),IT(e)),{[`${s}${t}-password-icon`]:{color:a,cursor:`pointer`,transition:`all ${i}`,"&:hover":{color:o}}}),MT(e,`${t}-affix-wrapper`))}},RT=e=>{let{componentCls:t,colorError:n,colorSuccess:r,borderRadiusLG:i,borderRadiusSM:a}=e;return{[`${t}-group`]:Z(Z(Z({},cn(e)),PT(e)),{"&-rtl":{direction:`rtl`},"&-wrapper":{display:`inline-block`,width:`100%`,textAlign:`start`,verticalAlign:`top`,"&-rtl":{direction:`rtl`},"&-lg":{[`${t}-group-addon`]:{borderRadius:i}},"&-sm":{[`${t}-group-addon`]:{borderRadius:a}},"&-status-error":{[`${t}-group-addon`]:{color:n,borderColor:n}},"&-status-warning":{[`${t}-group-addon:last-child`]:{color:r,borderColor:r}}}})}},zT=e=>{let{componentCls:t,antCls:n}=e,r=`${t}-search`;return{[r]:{[`${t}`]:{"&:hover, &:focus":{borderColor:e.colorPrimaryHover,[`+ ${t}-group-addon ${r}-button:not(${n}-btn-primary)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{borderRadius:0},[`${t}-lg`]:{lineHeight:e.lineHeightLG-2e-4},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${r}-button`]:{paddingTop:0,paddingBottom:0,borderStartStartRadius:0,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius,borderEndStartRadius:0},[`${r}-button:not(${n}-btn-primary)`]:{color:e.colorTextDescription,"&:hover":{color:e.colorPrimaryHover},"&:active":{color:e.colorPrimaryActive},[`&${n}-btn-loading::before`]:{insetInlineStart:0,insetInlineEnd:0,insetBlockStart:0,insetBlockEnd:0}}}},[`${r}-button`]:{height:e.controlHeight,"&:hover, &:focus":{zIndex:1}},[`&-large ${r}-button`]:{height:e.controlHeightLG},[`&-small ${r}-button`]:{height:e.controlHeightSM},"&-rtl":{direction:`rtl`},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:-e.lineWidth,borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button,
+ > ${t},
+ ${t}-affix-wrapper`]:{"&:hover,&:focus,&:active":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}};function BT(e){return B(e,{inputAffixPadding:e.paddingXXS,inputPaddingVertical:Math.max(Math.round((e.controlHeight-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,3),inputPaddingVerticalLG:Math.ceil((e.controlHeightLG-e.fontSizeLG*e.lineHeightLG)/2*10)/10-e.lineWidth,inputPaddingVerticalSM:Math.max(Math.round((e.controlHeightSM-e.fontSize*e.lineHeight)/2*10)/10-e.lineWidth,0),inputPaddingHorizontal:e.paddingSM-e.lineWidth,inputPaddingHorizontalSM:e.paddingXS-e.lineWidth,inputPaddingHorizontalLG:e.controlPaddingHorizontal-e.lineWidth,inputBorderHoverColor:e.colorPrimaryHover,inputBorderActiveColor:e.colorPrimaryHover})}var VT=e=>{let{componentCls:t,inputPaddingHorizontal:n,paddingLG:r}=e,i=`${t}-textarea`;return{[i]:{position:`relative`,[`${i}-suffix`]:{position:`absolute`,top:0,insetInlineEnd:n,bottom:0,zIndex:1,display:`inline-flex`,alignItems:`center`,margin:`auto`},"&-status-error,\n &-status-warning,\n &-status-success,\n &-status-validating":{[`&${i}-has-feedback`]:{[`${t}`]:{paddingInlineEnd:r}}},"&-show-count":{[`> ${t}`]:{height:`100%`},"&::after":{color:e.colorTextDescription,whiteSpace:`nowrap`,content:`attr(data-count)`,pointerEvents:`none`,float:`right`}},"&-rtl":{"&::after":{float:`left`}}}}},HT=S(`Input`,e=>{let t=BT(e);return[FT(t),VT(t),LT(t),RT(t),zT(t),iv(t)]}),UT=(e,t,n,r)=>{let{lineHeight:i}=e,a=Math.floor(n*i)+2,o=Math.max((t-a)/2,0);return{padding:`${o}px ${r}px ${Math.max(t-a-o,0)}px`}},WT=e=>{let{componentCls:t,pickerCellCls:n,pickerCellInnerCls:r,pickerPanelCellHeight:i,motionDurationSlow:a,borderRadiusSM:o,motionDurationMid:s,controlItemBgHover:c,lineWidth:l,lineType:u,colorPrimary:d,controlItemBgActive:f,colorTextLightSolid:p,controlHeightSM:m,pickerDateHoverRangeBorderColor:h,pickerCellBorderGap:g,pickerBasicCellHoverWithRangeColor:_,pickerPanelCellWidth:v,colorTextDisabled:y,colorBgContainerDisabled:b}=e;return{"&::before":{position:`absolute`,top:`50%`,insetInlineStart:0,insetInlineEnd:0,zIndex:1,height:i,transform:`translateY(-50%)`,transition:`all ${a}`,content:`""`},[r]:{position:`relative`,zIndex:2,display:`inline-block`,minWidth:i,height:i,lineHeight:`${i}px`,borderRadius:o,transition:`background ${s}, border ${s}`},[`&:hover:not(${n}-in-view),
+ &:hover:not(${n}-selected):not(${n}-range-start):not(${n}-range-end):not(${n}-range-hover-start):not(${n}-range-hover-end)`]:{[r]:{background:c}},[`&-in-view${n}-today ${r}`]:{"&::before":{position:`absolute`,top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:1,border:`${l}px ${u} ${d}`,borderRadius:o,content:`""`}},[`&-in-view${n}-in-range`]:{position:`relative`,"&::before":{background:f}},[`&-in-view${n}-selected ${r},
+ &-in-view${n}-range-start ${r},
+ &-in-view${n}-range-end ${r}`]:{color:p,background:d},[`&-in-view${n}-range-start:not(${n}-range-start-single),
+ &-in-view${n}-range-end:not(${n}-range-end-single)`]:{"&::before":{background:f}},[`&-in-view${n}-range-start::before`]:{insetInlineStart:`50%`},[`&-in-view${n}-range-end::before`]:{insetInlineEnd:`50%`},[`&-in-view${n}-range-hover-start:not(${n}-in-range):not(${n}-range-start):not(${n}-range-end),
+ &-in-view${n}-range-hover-end:not(${n}-in-range):not(${n}-range-start):not(${n}-range-end),
+ &-in-view${n}-range-hover-start${n}-range-start-single,
+ &-in-view${n}-range-hover-start${n}-range-start${n}-range-end${n}-range-end-near-hover,
+ &-in-view${n}-range-hover-end${n}-range-start${n}-range-end${n}-range-start-near-hover,
+ &-in-view${n}-range-hover-end${n}-range-end-single,
+ &-in-view${n}-range-hover:not(${n}-in-range)`]:{"&::after":{position:`absolute`,top:`50%`,zIndex:0,height:m,borderTop:`${l}px dashed ${h}`,borderBottom:`${l}px dashed ${h}`,transform:`translateY(-50%)`,transition:`all ${a}`,content:`""`}},"&-range-hover-start::after,\n &-range-hover-end::after,\n &-range-hover::after":{insetInlineEnd:0,insetInlineStart:g},[`&-in-view${n}-in-range${n}-range-hover::before,
+ &-in-view${n}-range-start${n}-range-hover::before,
+ &-in-view${n}-range-end${n}-range-hover::before,
+ &-in-view${n}-range-start:not(${n}-range-start-single)${n}-range-hover-start::before,
+ &-in-view${n}-range-end:not(${n}-range-end-single)${n}-range-hover-end::before,
+ ${t}-panel
+ > :not(${t}-date-panel)
+ &-in-view${n}-in-range${n}-range-hover-start::before,
+ ${t}-panel
+ > :not(${t}-date-panel)
+ &-in-view${n}-in-range${n}-range-hover-end::before`]:{background:_},[`&-in-view${n}-range-start:not(${n}-range-start-single):not(${n}-range-end) ${r}`]:{borderStartStartRadius:o,borderEndStartRadius:o,borderStartEndRadius:0,borderEndEndRadius:0},[`&-in-view${n}-range-end:not(${n}-range-end-single):not(${n}-range-start) ${r}`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:o,borderEndEndRadius:o},[`&-range-hover${n}-range-end::after`]:{insetInlineStart:`50%`},[`tr > &-in-view${n}-range-hover:first-child::after,
+ tr > &-in-view${n}-range-hover-end:first-child::after,
+ &-in-view${n}-start${n}-range-hover-edge-start${n}-range-hover-edge-start-near-range::after,
+ &-in-view${n}-range-hover-edge-start:not(${n}-range-hover-edge-start-near-range)::after,
+ &-in-view${n}-range-hover-start::after`]:{insetInlineStart:(v-i)/2,borderInlineStart:`${l}px dashed ${h}`,borderStartStartRadius:l,borderEndStartRadius:l},[`tr > &-in-view${n}-range-hover:last-child::after,
+ tr > &-in-view${n}-range-hover-start:last-child::after,
+ &-in-view${n}-end${n}-range-hover-edge-end${n}-range-hover-edge-end-near-range::after,
+ &-in-view${n}-range-hover-edge-end:not(${n}-range-hover-edge-end-near-range)::after,
+ &-in-view${n}-range-hover-end::after`]:{insetInlineEnd:(v-i)/2,borderInlineEnd:`${l}px dashed ${h}`,borderStartEndRadius:l,borderEndEndRadius:l},"&-disabled":{color:y,pointerEvents:`none`,[r]:{background:`transparent`},"&::before":{background:b}},[`&-disabled${n}-today ${r}::before`]:{borderColor:y}}},GT=e=>{let{componentCls:t,pickerCellInnerCls:n,pickerYearMonthCellWidth:r,pickerControlIconSize:i,pickerPanelCellWidth:a,paddingSM:o,paddingXS:s,paddingXXS:c,colorBgContainer:l,lineWidth:u,lineType:d,borderRadiusLG:f,colorPrimary:p,colorTextHeading:m,colorSplit:h,pickerControlIconBorderWidth:g,colorIcon:_,pickerTextHeight:v,motionDurationMid:y,colorIconHover:b,fontWeightStrong:x,pickerPanelCellHeight:S,pickerCellPaddingVertical:C,colorTextDisabled:w,colorText:T,fontSize:E,pickerBasicCellHoverWithRangeColor:D,motionDurationSlow:O,pickerPanelWithoutTimeCellHeight:k,pickerQuarterPanelContentHeight:A,colorLink:j,colorLinkActive:M,colorLinkHover:N,pickerDateHoverRangeBorderColor:P,borderRadiusSM:F,colorTextLightSolid:I,borderRadius:L,controlItemBgHover:R,pickerTimePanelColumnHeight:ee,pickerTimePanelColumnWidth:te,pickerTimePanelCellHeight:z,controlItemBgActive:ne,marginXXS:re}=e,ie=a*7+o*2+4,ae=(ie-s*2)/3-r-o;return{[t]:{"&-panel":{display:`inline-flex`,flexDirection:`column`,textAlign:`center`,background:l,border:`${u}px ${d} ${h}`,borderRadius:f,outline:`none`,"&-focused":{borderColor:p},"&-rtl":{direction:`rtl`,[`${t}-prev-icon,
+ ${t}-super-prev-icon`]:{transform:`rotate(45deg)`},[`${t}-next-icon,
+ ${t}-super-next-icon`]:{transform:`rotate(-135deg)`}}},"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel":{display:`flex`,flexDirection:`column`,width:ie},"&-header":{display:`flex`,padding:`0 ${s}px`,color:m,borderBottom:`${u}px ${d} ${h}`,"> *":{flex:`none`},button:{padding:0,color:_,lineHeight:`${v}px`,background:`transparent`,border:0,cursor:`pointer`,transition:`color ${y}`},"> button":{minWidth:`1.6em`,fontSize:E,"&:hover":{color:b}},"&-view":{flex:`auto`,fontWeight:x,lineHeight:`${v}px`,button:{color:`inherit`,fontWeight:`inherit`,verticalAlign:`top`,"&:not(:first-child)":{marginInlineStart:s},"&:hover":{color:p}}}},"&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon":{position:`relative`,display:`inline-block`,width:i,height:i,"&::before":{position:`absolute`,top:0,insetInlineStart:0,display:`inline-block`,width:i,height:i,border:`0 solid currentcolor`,borderBlockStartWidth:g,borderBlockEndWidth:0,borderInlineStartWidth:g,borderInlineEndWidth:0,content:`""`}},"&-super-prev-icon,\n &-super-next-icon":{"&::after":{position:`absolute`,top:Math.ceil(i/2),insetInlineStart:Math.ceil(i/2),display:`inline-block`,width:i,height:i,border:`0 solid currentcolor`,borderBlockStartWidth:g,borderBlockEndWidth:0,borderInlineStartWidth:g,borderInlineEndWidth:0,content:`""`}},"&-prev-icon,\n &-super-prev-icon":{transform:`rotate(-45deg)`},"&-next-icon,\n &-super-next-icon":{transform:`rotate(135deg)`},"&-content":{width:`100%`,tableLayout:`fixed`,borderCollapse:`collapse`,"th, td":{position:`relative`,minWidth:S,fontWeight:`normal`},th:{height:S+C*2,color:T,verticalAlign:`middle`}},"&-cell":Z({padding:`${C}px 0`,color:w,cursor:`pointer`,"&-in-view":{color:T}},WT(e)),[`&-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-start ${n},
+ &-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-end ${n}`]:{"&::after":{position:`absolute`,top:0,bottom:0,zIndex:-1,background:D,transition:`all ${O}`,content:`""`}},[`&-date-panel
+ ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-start
+ ${n}::after`]:{insetInlineEnd:-(a-S)/2,insetInlineStart:0},[`&-date-panel ${t}-cell-in-view${t}-cell-in-range${t}-cell-range-hover-end ${n}::after`]:{insetInlineEnd:0,insetInlineStart:-(a-S)/2},[`&-range-hover${t}-range-start::after`]:{insetInlineEnd:`50%`},"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${t}-content`]:{height:k*4},[n]:{padding:`0 ${s}px`}},"&-quarter-panel":{[`${t}-content`]:{height:A}},[`&-panel ${t}-footer`]:{borderTop:`${u}px ${d} ${h}`},"&-footer":{width:`min-content`,minWidth:`100%`,lineHeight:`${v-2*u}px`,textAlign:`center`,"&-extra":{padding:`0 ${o}`,lineHeight:`${v-2*u}px`,textAlign:`start`,"&:not(:last-child)":{borderBottom:`${u}px ${d} ${h}`}}},"&-now":{textAlign:`start`},"&-today-btn":{color:j,"&:hover":{color:N},"&:active":{color:M},[`&${t}-today-btn-disabled`]:{color:w,cursor:`not-allowed`}},"&-decade-panel":{[n]:{padding:`0 ${s/2}px`},[`${t}-cell::before`]:{display:`none`}},"&-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${t}-body`]:{padding:`0 ${s}px`},[n]:{width:r},[`${t}-cell-range-hover-start::after`]:{insetInlineStart:ae,borderInlineStart:`${u}px dashed ${P}`,borderStartStartRadius:F,borderBottomStartRadius:F,borderStartEndRadius:0,borderBottomEndRadius:0,[`${t}-panel-rtl &`]:{insetInlineEnd:ae,borderInlineEnd:`${u}px dashed ${P}`,borderStartStartRadius:0,borderBottomStartRadius:0,borderStartEndRadius:F,borderBottomEndRadius:F}},[`${t}-cell-range-hover-end::after`]:{insetInlineEnd:ae,borderInlineEnd:`${u}px dashed ${P}`,borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:L,borderEndEndRadius:L,[`${t}-panel-rtl &`]:{insetInlineStart:ae,borderInlineStart:`${u}px dashed ${P}`,borderStartStartRadius:L,borderEndStartRadius:L,borderStartEndRadius:0,borderEndEndRadius:0}}},"&-week-panel":{[`${t}-body`]:{padding:`${s}px ${o}px`},[`${t}-cell`]:{[`&:hover ${n},
+ &-selected ${n},
+ ${n}`]:{background:`transparent !important`}},"&-row":{td:{transition:`background ${y}`,"&:first-child":{borderStartStartRadius:F,borderEndStartRadius:F},"&:last-child":{borderStartEndRadius:F,borderEndEndRadius:F}},"&:hover td":{background:R},"&-selected td,\n &-selected:hover td":{background:p,[`&${t}-cell-week`]:{color:new Oe(I).setAlpha(.5).toHexString()},[`&${t}-cell-today ${n}::before`]:{borderColor:I},[n]:{color:I}}}},"&-date-panel":{[`${t}-body`]:{padding:`${s}px ${o}px`},[`${t}-content`]:{width:a*7,th:{width:a}}},"&-datetime-panel":{display:`flex`,[`${t}-time-panel`]:{borderInlineStart:`${u}px ${d} ${h}`},[`${t}-date-panel,
+ ${t}-time-panel`]:{transition:`opacity ${O}`},"&-active":{[`${t}-date-panel,
+ ${t}-time-panel`]:{opacity:.3,"&-active":{opacity:1}}}},"&-time-panel":{width:`auto`,minWidth:`auto`,direction:`ltr`,[`${t}-content`]:{display:`flex`,flex:`auto`,height:ee},"&-column":{flex:`1 0 auto`,width:te,margin:`${c}px 0`,padding:0,overflowY:`hidden`,textAlign:`start`,listStyle:`none`,transition:`background ${y}`,overflowX:`hidden`,"&::after":{display:`block`,height:ee-z,content:`""`},"&:not(:first-child)":{borderInlineStart:`${u}px ${d} ${h}`},"&-active":{background:new Oe(ne).setAlpha(.2).toHexString()},"&:hover":{overflowY:`auto`},"> li":{margin:0,padding:0,[`&${t}-time-panel-cell`]:{marginInline:re,[`${t}-time-panel-cell-inner`]:{display:`block`,width:te-2*re,height:z,margin:0,paddingBlock:0,paddingInlineEnd:0,paddingInlineStart:(te-z)/2,color:T,lineHeight:`${z}px`,borderRadius:F,cursor:`pointer`,transition:`background ${y}`,"&:hover":{background:R}},"&-selected":{[`${t}-time-panel-cell-inner`]:{background:ne}},"&-disabled":{[`${t}-time-panel-cell-inner`]:{color:w,background:`transparent`,cursor:`not-allowed`}}}}}},[`&-datetime-panel ${t}-time-panel-column:after`]:{height:ee-z+c*2}}}},KT=e=>{let{componentCls:t,colorBgContainer:n,colorError:r,colorErrorOutline:i,colorWarning:a,colorWarningOutline:o}=e;return{[t]:{[`&-status-error${t}`]:{"&, &:not([disabled]):hover":{backgroundColor:n,borderColor:r},"&-focused, &:focus":Z({},OT(B(e,{inputBorderActiveColor:r,inputBorderHoverColor:r,controlOutline:i}))),[`${t}-active-bar`]:{background:r}},[`&-status-warning${t}`]:{"&, &:not([disabled]):hover":{backgroundColor:n,borderColor:a},"&-focused, &:focus":Z({},OT(B(e,{inputBorderActiveColor:a,inputBorderHoverColor:a,controlOutline:o}))),[`${t}-active-bar`]:{background:a}}}}},qT=e=>{let{componentCls:t,antCls:n,boxShadowPopoverArrow:r,controlHeight:i,fontSize:a,inputPaddingHorizontal:o,colorBgContainer:s,lineWidth:c,lineType:l,colorBorder:u,borderRadius:d,motionDurationMid:f,colorBgContainerDisabled:p,colorTextDisabled:m,colorTextPlaceholder:h,controlHeightLG:g,fontSizeLG:_,controlHeightSM:v,inputPaddingHorizontalSM:y,paddingXS:b,marginXS:x,colorTextDescription:S,lineWidthBold:C,lineHeight:w,colorPrimary:T,motionDurationSlow:E,zIndexPopup:D,paddingXXS:O,paddingSM:k,pickerTextHeight:A,controlItemBgActive:j,colorPrimaryBorder:M,sizePopupArrow:N,borderRadiusXS:P,borderRadiusOuter:F,colorBgElevated:I,borderRadiusLG:L,boxShadowSecondary:R,borderRadiusSM:ee,colorSplit:te,controlItemBgHover:z,presetsWidth:ne,presetsMaxWidth:re}=e;return[{[t]:Z(Z(Z({},cn(e)),UT(e,i,a,o)),{position:`relative`,display:`inline-flex`,alignItems:`center`,background:s,lineHeight:1,border:`${c}px ${l} ${u}`,borderRadius:d,transition:`border ${f}, box-shadow ${f}`,"&:hover, &-focused":Z({},DT(e)),"&-focused":Z({},OT(e)),[`&${t}-disabled`]:{background:p,borderColor:u,cursor:`not-allowed`,[`${t}-suffix`]:{color:m}},[`&${t}-borderless`]:{backgroundColor:`transparent !important`,borderColor:`transparent !important`,boxShadow:`none !important`},[`${t}-input`]:{position:`relative`,display:`inline-flex`,alignItems:`center`,width:`100%`,"> input":Z(Z({},NT(e)),{flex:`auto`,minWidth:1,height:`auto`,padding:0,background:`transparent`,border:0,"&:focus":{boxShadow:`none`},"&[disabled]":{background:`transparent`}}),"&:hover":{[`${t}-clear`]:{opacity:1}},"&-placeholder":{"> input":{color:h}}},"&-large":Z(Z({},UT(e,g,_,o)),{[`${t}-input > input`]:{fontSize:_}}),"&-small":Z({},UT(e,v,a,y)),[`${t}-suffix`]:{display:`flex`,flex:`none`,alignSelf:`center`,marginInlineStart:b/2,color:m,lineHeight:1,pointerEvents:`none`,"> *":{verticalAlign:`top`,"&:not(:last-child)":{marginInlineEnd:x}}},[`${t}-clear`]:{position:`absolute`,top:`50%`,insetInlineEnd:0,color:m,lineHeight:1,background:s,transform:`translateY(-50%)`,cursor:`pointer`,opacity:0,transition:`opacity ${f}, color ${f}`,"> *":{verticalAlign:`top`},"&:hover":{color:S}},[`${t}-separator`]:{position:`relative`,display:`inline-block`,width:`1em`,height:_,color:m,fontSize:_,verticalAlign:`top`,cursor:`default`,[`${t}-focused &`]:{color:S},[`${t}-range-separator &`]:{[`${t}-disabled &`]:{cursor:`not-allowed`}}},"&-range":{position:`relative`,display:`inline-flex`,[`${t}-clear`]:{insetInlineEnd:o},"&:hover":{[`${t}-clear`]:{opacity:1}},[`${t}-active-bar`]:{bottom:-c,height:C,marginInlineStart:o,background:T,opacity:0,transition:`all ${E} ease-out`,pointerEvents:`none`},[`&${t}-focused`]:{[`${t}-active-bar`]:{opacity:1}},[`${t}-range-separator`]:{alignItems:`center`,padding:`0 ${b}px`,lineHeight:1},[`&${t}-small`]:{[`${t}-clear`]:{insetInlineEnd:y},[`${t}-active-bar`]:{marginInlineStart:y}}},"&-dropdown":Z(Z(Z({},cn(e)),GT(e)),{position:`absolute`,top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:D,[`&${t}-dropdown-hidden`]:{display:`none`},[`&${t}-dropdown-placement-bottomLeft`]:{[`${t}-range-arrow`]:{top:0,display:`block`,transform:`translateY(-100%)`}},[`&${t}-dropdown-placement-topLeft`]:{[`${t}-range-arrow`]:{bottom:0,display:`block`,transform:`translateY(100%) rotate(180deg)`}},[`&${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-topLeft,
+ &${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-topRight,
+ &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-topLeft,
+ &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-topRight`]:{animationName:T_},[`&${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-bottomLeft,
+ &${n}-slide-up-enter${n}-slide-up-enter-active${t}-dropdown-placement-bottomRight,
+ &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-bottomLeft,
+ &${n}-slide-up-appear${n}-slide-up-appear-active${t}-dropdown-placement-bottomRight`]:{animationName:C_},[`&${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-topLeft,
+ &${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-topRight`]:{animationName:E_},[`&${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-bottomLeft,
+ &${n}-slide-up-leave${n}-slide-up-leave-active${t}-dropdown-placement-bottomRight`]:{animationName:w_},[`${t}-panel > ${t}-time-panel`]:{paddingTop:O},[`${t}-ranges`]:{marginBottom:0,padding:`${O}px ${k}px`,overflow:`hidden`,lineHeight:`${A-2*c-b/2}px`,textAlign:`start`,listStyle:`none`,display:`flex`,justifyContent:`space-between`,"> li":{display:`inline-block`},[`${t}-preset > ${n}-tag-blue`]:{color:T,background:j,borderColor:M,cursor:`pointer`},[`${t}-ok`]:{marginInlineStart:`auto`}},[`${t}-range-wrapper`]:{display:`flex`,position:`relative`},[`${t}-range-arrow`]:Z({position:`absolute`,zIndex:1,display:`none`,marginInlineStart:o*1.5,transition:`left ${E} ease-out`},Mr(N,P,F,I,r)),[`${t}-panel-container`]:{overflow:`hidden`,verticalAlign:`top`,background:I,borderRadius:L,boxShadow:R,transition:`margin ${E}`,[`${t}-panel-layout`]:{display:`flex`,flexWrap:`nowrap`,alignItems:`stretch`},[`${t}-presets`]:{display:`flex`,flexDirection:`column`,minWidth:ne,maxWidth:re,ul:{height:0,flex:`auto`,listStyle:`none`,overflow:`auto`,margin:0,padding:b,borderInlineEnd:`${c}px ${l} ${te}`,li:Z(Z({},Te),{borderRadius:ee,paddingInline:b,paddingBlock:(v-Math.round(a*w))/2,cursor:`pointer`,transition:`all ${E}`,"+ li":{marginTop:x},"&:hover":{background:z}})}},[`${t}-panels`]:{display:`inline-flex`,flexWrap:`nowrap`,direction:`ltr`,[`${t}-panel`]:{borderWidth:`0 0 ${c}px`},"&:last-child":{[`${t}-panel`]:{borderWidth:0}}},[`${t}-panel`]:{verticalAlign:`top`,background:`transparent`,borderRadius:0,borderWidth:0,[`${t}-content,
+ table`]:{textAlign:`center`},"&-focused":{borderColor:u}}}}),"&-dropdown-range":{padding:`${N*2/3}px 0`,"&-hidden":{display:`none`}},"&-rtl":{direction:`rtl`,[`${t}-separator`]:{transform:`rotate(180deg)`},[`${t}-footer`]:{"&-extra":{direction:`rtl`}}}})},M_(e,`slide-up`),M_(e,`slide-down`),S_(e,`move-up`),S_(e,`move-down`)]},JT=e=>{let{componentCls:t,controlHeightLG:n,controlHeightSM:r,colorPrimary:i,paddingXXS:a}=e;return{pickerCellCls:`${t}-cell`,pickerCellInnerCls:`${t}-cell-inner`,pickerTextHeight:n,pickerPanelCellWidth:r*1.5,pickerPanelCellHeight:r,pickerDateHoverRangeBorderColor:new Oe(i).lighten(20).toHexString(),pickerBasicCellHoverWithRangeColor:new Oe(i).lighten(35).toHexString(),pickerPanelWithoutTimeCellHeight:n*1.65,pickerYearMonthCellWidth:n*1.5,pickerTimePanelColumnHeight:224,pickerTimePanelColumnWidth:n*1.4,pickerTimePanelCellHeight:28,pickerQuarterPanelContentHeight:n*1.4,pickerCellPaddingVertical:a,pickerCellBorderGap:2,pickerControlIconSize:7,pickerControlIconBorderWidth:1.5}},YT=S(`DatePicker`,e=>{let t=B(BT(e),JT(e));return[qT(t),KT(t),iv(e,{focusElCls:`${e.componentCls}-focused`})]},e=>({presetsWidth:120,presetsMaxWidth:200,zIndexPopup:e.zIndexPopupBase+50})),XT=e=>{let{calendarCls:t,componentCls:n,calendarFullBg:r,calendarFullPanelBg:i,calendarItemActiveBg:a}=e;return{[t]:Z(Z(Z({},GT(e)),cn(e)),{background:r,"&-rtl":{direction:`rtl`},[`${t}-header`]:{display:`flex`,justifyContent:`flex-end`,padding:`${e.paddingSM}px 0`,[`${t}-year-select`]:{minWidth:e.yearControlWidth},[`${t}-month-select`]:{minWidth:e.monthControlWidth,marginInlineStart:e.marginXS},[`${t}-mode-switch`]:{marginInlineStart:e.marginXS}}}),[`${t} ${n}-panel`]:{background:i,border:0,borderTop:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,borderRadius:0,[`${n}-month-panel, ${n}-date-panel`]:{width:`auto`},[`${n}-body`]:{padding:`${e.paddingXS}px 0`},[`${n}-content`]:{width:`100%`}},[`${t}-mini`]:{borderRadius:e.borderRadiusLG,[`${t}-header`]:{paddingInlineEnd:e.paddingXS,paddingInlineStart:e.paddingXS},[`${n}-panel`]:{borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},[`${n}-content`]:{height:e.miniContentHeight,th:{height:`auto`,padding:0,lineHeight:`${e.weekHeight}px`}},[`${n}-cell::before`]:{pointerEvents:`none`}},[`${t}${t}-full`]:{[`${n}-panel`]:{display:`block`,width:`100%`,textAlign:`end`,background:r,border:0,[`${n}-body`]:{"th, td":{padding:0},th:{height:`auto`,paddingInlineEnd:e.paddingSM,paddingBottom:e.paddingXXS,lineHeight:`${e.weekHeight}px`}}},[`${n}-cell`]:{"&::before":{display:`none`},"&:hover":{[`${t}-date`]:{background:e.controlItemBgHover}},[`${t}-date-today::before`]:{display:`none`},[`&-in-view${n}-cell-selected`]:{[`${t}-date, ${t}-date-today`]:{background:a}},"&-selected, &-selected:hover":{[`${t}-date, ${t}-date-today`]:{[`${t}-date-value`]:{color:e.colorPrimary}}}},[`${t}-date`]:{display:`block`,width:`auto`,height:`auto`,margin:`0 ${e.marginXS/2}px`,padding:`${e.paddingXS/2}px ${e.paddingXS}px 0`,border:0,borderTop:`${e.lineWidthBold}px ${e.lineType} ${e.colorSplit}`,borderRadius:0,transition:`background ${e.motionDurationSlow}`,"&-value":{lineHeight:`${e.dateValueHeight}px`,transition:`color ${e.motionDurationSlow}`},"&-content":{position:`static`,width:`auto`,height:e.dateContentHeight,overflowY:`auto`,color:e.colorText,lineHeight:e.lineHeight,textAlign:`start`},"&-today":{borderColor:e.colorPrimary,[`${t}-date-value`]:{color:e.colorText}}}},[`@media only screen and (max-width: ${e.screenXS}px) `]:{[`${t}`]:{[`${t}-header`]:{display:`block`,[`${t}-year-select`]:{width:`50%`},[`${t}-month-select`]:{width:`calc(50% - ${e.paddingXS}px)`},[`${t}-mode-switch`]:{width:`100%`,marginTop:e.marginXS,marginInlineStart:0,"> label":{width:`50%`,textAlign:`center`}}}}}}},ZT=S(`Calendar`,e=>{let t=`${e.componentCls}-calendar`;return[XT(B(BT(e),JT(e),{calendarCls:t,pickerCellInnerCls:`${e.componentCls}-cell-inner`,calendarFullBg:e.colorBgContainer,calendarFullPanelBg:e.colorBgContainer,calendarItemActiveBg:e.controlItemBgActive,dateValueHeight:e.controlHeightSM,weekHeight:e.controlHeightSM*.75,dateContentHeight:(e.fontSizeSM*e.lineHeightSM+e.marginXS)*3+e.lineWidth*2}))]},{yearControlWidth:80,monthControlWidth:70,miniContentHeight:256});function QT(e){function t(t,n){return t&&n&&e.getYear(t)===e.getYear(n)}function n(n,r){return t(n,r)&&e.getMonth(n)===e.getMonth(r)}function r(t,r){return n(t,r)&&e.getDate(t)===e.getDate(r)}let i=m({name:`ACalendar`,inheritAttrs:!1,props:{prefixCls:String,locale:{type:Object,default:void 0},validRange:{type:Array,default:void 0},disabledDate:{type:Function,default:void 0},dateFullCellRender:{type:Function,default:void 0},dateCellRender:{type:Function,default:void 0},monthFullCellRender:{type:Function,default:void 0},monthCellRender:{type:Function,default:void 0},headerRender:{type:Function,default:void 0},value:{type:[Object,String],default:void 0},defaultValue:{type:[Object,String],default:void 0},mode:{type:String,default:void 0},fullscreen:{type:Boolean,default:void 0},onChange:{type:Function,default:void 0},"onUpdate:value":{type:Function,default:void 0},onPanelChange:{type:Function,default:void 0},onSelect:{type:Function,default:void 0},valueFormat:{type:String,default:void 0}},slots:Object,setup(i,a){let{emit:o,slots:s,attrs:c}=a,l=i,{prefixCls:u,direction:d}=X(`picker`,l),[f,p]=ZT(u),m=J(()=>`${u.value}-calendar`),h=t=>l.valueFormat?e.toString(t,l.valueFormat):t,g=J(()=>l.value?l.valueFormat?e.toDate(l.value,l.valueFormat):l.value:l.value===``?void 0:l.value),[_,v]=af(()=>g.value||e.getNow(),{defaultValue:J(()=>l.defaultValue?l.valueFormat?e.toDate(l.defaultValue,l.valueFormat):l.defaultValue:l.defaultValue===``?void 0:l.defaultValue).value,value:g}),[y,b]=af(`month`,{value:Et(l,`mode`)}),x=J(()=>y.value===`year`?`month`:`date`),S=J(()=>t=>(l.validRange?e.isAfter(l.validRange[0],t)||e.isAfter(t,l.validRange[1]):!1)||!!l.disabledDate?.call(l,t)),C=(e,t)=>{o(`panelChange`,h(e),t)},w=e=>{if(v(e),!r(e,_.value)){(x.value===`date`&&!n(e,_.value)||x.value===`month`&&!t(e,_.value))&&C(e,y.value);let r=h(e);o(`update:value`,r),o(`change`,r)}},T=e=>{b(e),C(_.value,e)},E=(e,t)=>{w(e),o(`select`,h(e),{source:t})},[D]=Xt(`Calendar`,J(()=>{let{locale:e}=l,t=Z(Z({},it),e);return t.lang=Z(Z({},t.lang),(e||{}).lang),t}));return()=>{let t=e.getNow(),{dateFullCellRender:i=s?.dateFullCellRender,dateCellRender:a=s?.dateCellRender,monthFullCellRender:o=s?.monthFullCellRender,monthCellRender:h=s?.monthCellRender,headerRender:g=s?.headerRender,fullscreen:v=!0,validRange:b}=l,C=n=>{let{current:o}=n;return i?i({current:o}):U(`div`,{class:K(`${u.value}-cell-inner`,`${m.value}-date`,{[`${m.value}-date-today`]:r(t,o)})},[U(`div`,{class:`${m.value}-date-value`},[String(e.getDate(o)).padStart(2,`0`)]),U(`div`,{class:`${m.value}-date-content`},[a&&a({current:o})])])},w=(r,i)=>{let{current:a}=r;if(o)return o({current:a});let s=i.shortMonths||e.locale.getShortMonths(i.locale);return U(`div`,{class:K(`${u.value}-cell-inner`,`${m.value}-date`,{[`${m.value}-date-today`]:n(t,a)})},[U(`div`,{class:`${m.value}-date-value`},[s[e.getMonth(a)]]),U(`div`,{class:`${m.value}-date-content`},[h&&h({current:a})])])};return f(U(`div`,Y(Y({},c),{},{class:K(m.value,{[`${m.value}-full`]:v,[`${m.value}-mini`]:!v,[`${m.value}-rtl`]:d.value===`rtl`},c.class,p.value)}),[g?g({value:_.value,type:y.value,onChange:e=>{E(e,`customize`)},onTypeChange:T}):U(TT,{prefixCls:m.value,value:_.value,generateConfig:e,mode:y.value,fullscreen:v,locale:D.value.lang,validRange:b,onChange:E,onModeChange:T},null),U(Tw,{value:_.value,prefixCls:u.value,locale:D.value.lang,generateConfig:e,dateRender:C,monthCellRender:e=>w(e,D.value.lang),onSelect:e=>{E(e,x.value)},mode:x.value,picker:x.value,disabledDate:S.value,hideHeader:!0},null)]))}}});return i.install=function(e){return e.component(i.name,i),e},i}var $T=l(QT(YS));function eE(e){let t=q(),n=q(!1);function r(){var r=[...arguments];n.value||(Qn.cancel(t.value),t.value=Qn(()=>{e(...r)}))}return mt(()=>{n.value=!0,Qn.cancel(t.value)}),r}function tE(e){let t=q([]),n=q(typeof e==`function`?e():e),r=eE(()=>{let e=n.value;t.value.forEach(t=>{e=t(e)}),t.value=[],n.value=e});function i(e){t.value.push(e),r()}return[n,i]}var nE=m({compatConfig:{MODE:3},name:`TabNode`,props:{id:{type:String},prefixCls:{type:String},tab:{type:Object},active:{type:Boolean},closable:{type:Boolean},editable:{type:Object},onClick:{type:Function},onResize:{type:Function},renderWrapper:{type:Function},removeAriaLabel:{type:String},onFocus:{type:Function}},emits:[`click`,`resize`,`remove`,`focus`],setup(e,t){let{expose:n,attrs:r}=t,i=H();function a(t){e.tab?.disabled||e.onClick(t)}n({domRef:i});function o(t){t.preventDefault(),t.stopPropagation(),e.editable.onEdit(`remove`,{key:e.tab?.key,event:t})}let s=J(()=>e.editable&&e.closable!==!1&&!e.tab?.disabled);return()=>{let{prefixCls:t,id:n,active:c,tab:{key:l,tab:u,disabled:d,closeIcon:f},renderWrapper:p,removeAriaLabel:m,editable:h,onFocus:g}=e,_=`${t}-tab`,v=U(`div`,{key:l,ref:i,class:K(_,{[`${_}-with-remove`]:s.value,[`${_}-active`]:c,[`${_}-disabled`]:d}),style:r.style,onClick:a},[U(`div`,{role:`tab`,"aria-selected":c,id:n&&`${n}-tab-${l}`,class:`${_}-btn`,"aria-controls":n&&`${n}-panel-${l}`,"aria-disabled":d,tabindex:d?null:0,onClick:e=>{e.stopPropagation(),a(e)},onKeydown:e=>{[$.SPACE,$.ENTER].includes(e.which)&&(e.preventDefault(),a(e))},onFocus:g},[typeof u==`function`?u():u]),s.value&&U(`button`,{type:`button`,"aria-label":m||`remove`,tabindex:0,class:`${_}-remove`,onClick:e=>{e.stopPropagation(),o(e)}},[f?.()||h.removeIcon?.call(h)||`×`])]);return p?p(v):v}}}),rE={width:0,height:0,left:0,top:0};function iE(e,t){let n=H(new Map);return E(()=>{let r=new Map,i=e.value,a=t.value.get(i[0]?.key)||rE,o=a.left+a.width;for(let e=0;e{let{prefixCls:t,editable:n,locale:a}=e;return!n||n.showAdd===!1?null:U(`button`,{ref:i,type:`button`,class:`${t}-nav-add`,style:r.style,"aria-label":a?.addAriaLabel||`Add tab`,onClick:e=>{n.onEdit(`add`,{event:e})}},[n.addIcon?n.addIcon():`+`])}}}),oE=m({compatConfig:{MODE:3},name:`OperationNode`,inheritAttrs:!1,props:{prefixCls:{type:String},id:{type:String},tabs:{type:Object},rtl:{type:Boolean},tabBarGutter:{type:Number},activeKey:{type:[String,Number]},mobile:{type:Boolean},moreIcon:g.any,moreTransitionName:{type:String},editable:{type:Object},locale:{type:Object,default:void 0},removeAriaLabel:String,onTabClick:{type:Function},popupClassName:String,getPopupContainer:h()},emits:[`tabClick`],slots:Object,setup(e,t){let{attrs:n,slots:r}=t,[i,a]=of(!1),[o,s]=of(null),c=t=>{let n=e.tabs.filter(e=>!e.disabled),r=n.findIndex(e=>e.key===o.value)||0,i=n.length;for(let e=0;e{let{which:n}=t;if(!i.value){[$.DOWN,$.SPACE,$.ENTER].includes(n)&&(a(!0),t.preventDefault());return}switch(n){case $.UP:c(-1),t.preventDefault();break;case $.DOWN:c(1),t.preventDefault();break;case $.ESC:a(!1);break;case $.SPACE:case $.ENTER:o.value!==null&&e.onTabClick(o.value,t);break}},u=J(()=>`${e.id}-more-popup`),d=J(()=>o.value===null?null:`${u.value}-${o.value}`),f=(t,n)=>{t.preventDefault(),t.stopPropagation(),e.editable.onEdit(`remove`,{key:n,event:t})};return V(()=>{G(o,()=>{let e=document.getElementById(d.value);e&&e.scrollIntoView&&e.scrollIntoView(!1)},{flush:`post`,immediate:!0})}),G(i,()=>{i.value||s(null)}),px({}),()=>{let{prefixCls:t,id:s,tabs:c,locale:p,mobile:m,moreIcon:h=r.moreIcon?.call(r)||U($b,null,null),moreTransitionName:g,editable:_,tabBarGutter:v,rtl:y,onTabClick:b,popupClassName:x}=e;if(!c.length)return null;let S=`${t}-dropdown`,C=p?.dropdownAriaLabel,w={[y?`marginRight`:`marginLeft`]:v};c.length||(w.visibility=`hidden`,w.order=1);let T=K({[`${S}-rtl`]:y,[`${x}`]:!0}),E=m?null:U(Yy,{prefixCls:S,trigger:[`hover`],visible:i.value,transitionName:g,onVisibleChange:a,overlayClassName:T,mouseEnterDelay:.1,mouseLeaveDelay:.1,getPopupContainer:e.getPopupContainer},{overlay:()=>U(vS,{onClick:e=>{let{key:t,domEvent:n}=e;b(t,n),a(!1)},id:u.value,tabindex:-1,role:`listbox`,"aria-activedescendant":d.value,selectedKeys:[o.value],"aria-label":C===void 0?`expanded dropdown`:C},{default:()=>[c.map(t=>{let n=_&&t.closable!==!1&&!t.disabled;return U(Bx,{key:t.key,id:`${u.value}-${t.key}`,role:`option`,"aria-controls":s&&`${s}-panel-${t.key}`,disabled:t.disabled},{default:()=>[U(`span`,null,[typeof t.tab==`function`?t.tab():t.tab]),n&&U(`button`,{type:`button`,"aria-label":e.removeAriaLabel||`remove`,tabindex:0,class:`${S}-menu-item-remove`,onClick:e=>{e.stopPropagation(),f(e,t.key)}},[t.closeIcon?.call(t)||_.removeIcon?.call(_)||`×`])]})})]}),default:()=>U(`button`,{type:`button`,class:`${t}-nav-more`,style:w,tabindex:-1,"aria-hidden":`true`,"aria-haspopup":`listbox`,"aria-controls":u.value,id:`${s}-more`,"aria-expanded":i.value,onKeydown:l},[h])});return U(`div`,{class:K(`${t}-nav-operations`,n.class),style:n.style},[E,U(aE,{prefixCls:t,locale:p,editable:_},null)])}}}),sE=Symbol(`tabsContextKey`),cE=e=>{ge(sE,e)},lE=()=>b(sE,{tabs:H([]),prefixCls:H()});m({compatConfig:{MODE:3},name:`TabsContextProvider`,inheritAttrs:!1,props:{tabs:{type:Object,default:void 0},prefixCls:{type:String,default:void 0}},setup(e,t){let{slots:n}=t;return cE(zt(e)),()=>n.default?.call(n)}});var uE=.1,dE=.01,fE=20,pE=.995**fE;function mE(e,t){let[n,r]=of(),[i,a]=of(0),[o,s]=of(0),[c,l]=of(),u=H();function d(e){let{screenX:t,screenY:n}=e.touches[0];r({x:t,y:n}),clearInterval(u.value)}function f(e){if(!n.value)return;e.preventDefault();let{screenX:o,screenY:c}=e.touches[0],u=o-n.value.x,d=c-n.value.y;t(u,d),r({x:o,y:c});let f=Date.now();s(f-i.value),a(f),l({x:u,y:d})}function p(){if(!n.value)return;let e=c.value;if(r(null),l(null),e){let n=e.x/o.value,r=e.y/o.value;if(Math.max(Math.abs(n),Math.abs(r)){if(Math.abs(i)o?(i=n,m.value=`x`):(i=r,m.value=`y`),t(-i,-i)&&e.preventDefault()}let g=H({onTouchStart:d,onTouchMove:f,onTouchEnd:p,onWheel:h});function _(e){g.value.onTouchStart(e)}function v(e){g.value.onTouchMove(e)}function y(e){g.value.onTouchEnd(e)}function b(e){g.value.onWheel(e)}V(()=>{var t,n;document.addEventListener(`touchmove`,v,{passive:!1}),document.addEventListener(`touchend`,y,{passive:!1}),(t=e.value)==null||t.addEventListener(`touchstart`,_,{passive:!1}),(n=e.value)==null||n.addEventListener(`wheel`,b,{passive:!1})}),mt(()=>{document.removeEventListener(`touchmove`,v),document.removeEventListener(`touchend`,y)})}function hE(e,t){let n=H(e);function r(e){let r=typeof e==`function`?e(n.value):e;r!==n.value&&t(r,n.value),n.value=r}return[n,r]}var gE=()=>{let e=H(new Map);return ie(()=>{e.value=new Map}),[t=>n=>{e.value.set(t,n)},e]},_E={width:0,height:0,left:0,top:0,right:0},vE=()=>({id:{type:String},tabPosition:{type:String},activeKey:{type:[String,Number]},rtl:{type:Boolean},animated:nn(),editable:nn(),moreIcon:g.any,moreTransitionName:{type:String},mobile:{type:Boolean},tabBarGutter:{type:Number},renderTabBar:{type:Function},locale:nn(),popupClassName:String,getPopupContainer:h(),onTabClick:{type:Function},onTabScroll:{type:Function}}),yE=(e,t)=>{let{offsetWidth:n,offsetHeight:r,offsetTop:i,offsetLeft:a}=e,{width:o,height:s,x:c,y:l}=e.getBoundingClientRect();return Math.abs(o-n)<1?[o,s,c-t.x,l-t.y]:[n,r,a,i]},bE=m({compatConfig:{MODE:3},name:`TabNavList`,inheritAttrs:!1,props:vE(),slots:Object,emits:[`tabClick`,`tabScroll`],setup(e,t){let{attrs:n,slots:r}=t,{tabs:i,prefixCls:a}=lE(),o=q(),s=q(),c=q(),l=q(),[u,d]=gE(),f=J(()=>e.tabPosition===`top`||e.tabPosition===`bottom`),[p,m]=hE(0,(t,n)=>{f.value&&e.onTabScroll&&e.onTabScroll({direction:t>n?`left`:`right`})}),[h,g]=hE(0,(t,n)=>{!f.value&&e.onTabScroll&&e.onTabScroll({direction:t>n?`top`:`bottom`})}),[_,v]=of(0),[y,b]=of(0),[x,S]=of(null),[C,w]=of(null),[T,D]=of(0),[O,k]=of(0),[A,j]=tE(new Map),M=iE(i,A),N=J(()=>`${a.value}-nav-operations-hidden`),P=q(0),F=q(0);E(()=>{f.value?e.rtl?(P.value=0,F.value=Math.max(0,_.value-x.value)):(P.value=Math.min(0,x.value-_.value),F.value=0):(P.value=Math.min(0,C.value-y.value),F.value=0)});let I=e=>eF.value?F.value:e,L=q(),[R,ee]=of(),te=()=>{ee(Date.now())},z=()=>{clearTimeout(L.value)},ne=(e,t)=>{e(e=>I(e+t))};mE(o,(e,t)=>{if(f.value){if(x.value>=_.value)return!1;ne(m,e)}else{if(C.value>=y.value)return!1;ne(g,t)}return z(),te(),!0}),G(R,()=>{z(),R.value&&(L.value=setTimeout(()=>{ee(0)},100))});let re=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activeKey,n=M.value.get(t)||{width:0,height:0,left:0,right:0,top:0};if(f.value){let t=p.value;e.rtl?n.rightp.value+x.value&&(t=n.right+n.width-x.value):n.left<-p.value?t=-n.left:n.left+n.width>-p.value+x.value&&(t=-(n.left+n.width-x.value)),g(0),m(I(t))}else{let e=h.value;n.top<-h.value?e=-n.top:n.top+n.height>-h.value+C.value&&(e=-(n.top+n.height-C.value)),m(0),g(I(e))}},ie=q(0),ae=q(0);E(()=>{let t,n,r,a,o,s,c=M.value;[`top`,`bottom`].includes(e.tabPosition)?(t=`width`,a=x.value,o=_.value,s=T.value,n=e.rtl?`right`:`left`,r=Math.abs(p.value)):(t=`height`,a=C.value,o=_.value,s=O.value,n=`top`,r=-h.value);let l=a;o+s>a&&or+l){f=e-1;break}}let m=0;for(let e=d-1;e>=0;--e)if((c.get(u[e].key)||_E)[n]{j(()=>{let e=new Map,t=s.value?.getBoundingClientRect();return i.value.forEach(n=>{let{key:r}=n,i=d.value.get(r),a=i?.$el||i;if(a){let[n,i,o,s]=yE(a,t);e.set(r,{width:n,height:i,left:o,top:s})}}),e})};G(()=>i.value.map(e=>e.key).join(`%%`),()=>{oe()},{flush:`post`});let se=()=>{let e=o.value?.offsetWidth||0,t=o.value?.offsetHeight||0,n=l.value?.$el||{},r=n.offsetWidth||0,i=n.offsetHeight||0;S(e),w(t),D(r),k(i);let a=(s.value?.offsetWidth||0)-r,c=(s.value?.offsetHeight||0)-i;v(a),b(c),oe()},ce=J(()=>[...i.value.slice(0,ie.value),...i.value.slice(ae.value+1)]),[le,ue]=of(),de=J(()=>M.value.get(e.activeKey)),B=q(),V=()=>{Qn.cancel(B.value)};G([de,f,()=>e.rtl],()=>{let t={};de.value&&(f.value?(e.rtl?t.right=Tt(de.value.right):t.left=Tt(de.value.left),t.width=Tt(de.value.width)):(t.top=Tt(de.value.top),t.height=Tt(de.value.height))),V(),B.value=Qn(()=>{ue(t)})}),G([()=>e.activeKey,de,M,f],()=>{re()},{flush:`post`}),G([()=>e.rtl,()=>e.tabBarGutter,()=>e.activeKey,()=>i.value],()=>{se()},{flush:`post`});let fe=e=>{let{position:t,prefixCls:n,extra:r}=e;if(!r)return null;let i=r?.({position:t});return i?U(`div`,{class:`${n}-extra-content`},[i]):null};return mt(()=>{z(),V()}),()=>{let{id:t,animated:d,activeKey:m,rtl:g,editable:v,locale:b,tabPosition:S,tabBarGutter:w,onTabClick:T}=e,{class:E,style:D}=n,O=a.value,k=!!ce.value.length,A=`${O}-nav-wrap`,j,M,P,F;f.value?g?(M=p.value>0,j=p.value+x.value<_.value):(j=p.value<0,M=-p.value+x.value<_.value):(P=h.value<0,F=-h.value+C.value{let{key:i}=e;return U(nE,{id:t,prefixCls:O,key:i,tab:e,style:n===0?void 0:I,closable:e.closable,editable:v,active:i===m,removeAriaLabel:b?.removeAriaLabel,ref:u(i),onClick:e=>{T(i,e)},onFocus:()=>{re(i),te(),o.value&&(g||(o.value.scrollLeft=0),o.value.scrollTop=0)}},r)});return U(`div`,{role:`tablist`,class:K(`${O}-nav`,E),style:D,onKeydown:()=>{te()}},[U(fe,{position:`left`,prefixCls:O,extra:r.leftExtra},null),U(Kn,{onResize:se},{default:()=>[U(`div`,{class:K(A,{[`${A}-ping-left`]:j,[`${A}-ping-right`]:M,[`${A}-ping-top`]:P,[`${A}-ping-bottom`]:F}),ref:o},[U(Kn,{onResize:se},{default:()=>[U(`div`,{ref:s,class:`${O}-nav-list`,style:{transform:`translate(${p.value}px, ${h.value}px)`,transition:R.value?`none`:void 0}},[L,U(aE,{ref:l,prefixCls:O,locale:b,editable:v,style:Z(Z({},L.length===0?void 0:I),{visibility:k?`hidden`:null})},null),U(`div`,{class:K(`${O}-ink-bar`,{[`${O}-ink-bar-animated`]:d.inkBar}),style:le.value},null)])]})])]}),U(oE,Y(Y({},e),{},{removeAriaLabel:b?.removeAriaLabel,ref:c,prefixCls:O,tabs:ce.value,class:!k&&N.value}),Zg(r,[`moreIcon`])),U(fe,{position:`right`,prefixCls:O,extra:r.rightExtra},null),U(fe,{position:`right`,prefixCls:O,extra:r.tabBarExtraContent},null)])}}}),xE=m({compatConfig:{MODE:3},name:`TabPanelList`,inheritAttrs:!1,props:{activeKey:{type:[String,Number]},id:{type:String},rtl:{type:Boolean},animated:{type:Object,default:void 0},tabPosition:{type:String},destroyInactiveTabPane:{type:Boolean}},setup(e){let{tabs:t,prefixCls:n}=lE();return()=>{let{id:r,activeKey:i,animated:a,tabPosition:o,rtl:s,destroyInactiveTabPane:c}=e,l=a.tabPane,u=n.value,d=t.value.findIndex(e=>e.key===i);return U(`div`,{class:`${u}-content-holder`},[U(`div`,{class:[`${u}-content`,`${u}-content-${o}`,{[`${u}-content-animated`]:l}],style:d&&l?{[s?`marginRight`:`marginLeft`]:`-${d}00%`}:null},[t.value.map(e=>$a(e.node,{key:e.key,prefixCls:u,tabKey:e.key,id:r,animated:l,active:e.key===i,destroyInactiveTabPane:c}))])])}}}),SE=e=>{let{componentCls:t,motionDurationSlow:n}=e;return[{[t]:{[`${t}-switch`]:{"&-appear, &-enter":{transition:`none`,"&-start":{opacity:0},"&-active":{opacity:1,transition:`opacity ${n}`}},"&-leave":{position:`absolute`,transition:`none`,inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${n}`}}}}},[M_(e,`slide-up`),M_(e,`slide-down`)]]},CE=e=>{let{componentCls:t,tabsCardHorizontalPadding:n,tabsCardHeadBackground:r,tabsCardGutter:i,colorSplit:a}=e;return{[`${t}-card`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{margin:0,padding:n,background:r,border:`${e.lineWidth}px ${e.lineType} ${a}`,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`${t}-tab-active`]:{color:e.colorPrimary,background:e.colorBgContainer},[`${t}-ink-bar`]:{visibility:`hidden`}},[`&${t}-top, &${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginLeft:{_skip_check_:!0,value:`${i}px`}}}},[`&${t}-top`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`},[`${t}-tab-active`]:{borderBottomColor:e.colorBgContainer}}},[`&${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},[`${t}-tab-active`]:{borderTopColor:e.colorBgContainer}}},[`&${t}-left, &${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginTop:`${i}px`}}},[`&${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${e.borderRadiusLG}px 0 0 ${e.borderRadiusLG}px`}},[`${t}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:e.colorBgContainer}}}},[`&${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px 0`}},[`${t}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:e.colorBgContainer}}}}}}},wE=e=>{let{componentCls:t,tabsHoverColor:n,dropdownEdgeChildVerticalPadding:r}=e;return{[`${t}-dropdown`]:Z(Z({},cn(e)),{position:`absolute`,top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:e.zIndexPopup,display:`block`,"&-hidden":{display:`none`},[`${t}-dropdown-menu`]:{maxHeight:e.tabsDropdownHeight,margin:0,padding:`${r}px 0`,overflowX:`hidden`,overflowY:`auto`,textAlign:{_skip_check_:!0,value:`left`},listStyleType:`none`,backgroundColor:e.colorBgContainer,backgroundClip:`padding-box`,borderRadius:e.borderRadiusLG,outline:`none`,boxShadow:e.boxShadowSecondary,"&-item":Z(Z({},Te),{display:`flex`,alignItems:`center`,minWidth:e.tabsDropdownWidth,margin:0,padding:`${e.paddingXXS}px ${e.paddingSM}px`,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:`pointer`,transition:`all ${e.motionDurationSlow}`,"> span":{flex:1,whiteSpace:`nowrap`},"&-remove":{flex:`none`,marginLeft:{_skip_check_:!0,value:e.marginSM},color:e.colorTextDescription,fontSize:e.fontSizeSM,background:`transparent`,border:0,cursor:`pointer`,"&:hover":{color:n}},"&:hover":{background:e.controlItemBgHover},"&-disabled":{"&, &:hover":{color:e.colorTextDisabled,background:`transparent`,cursor:`not-allowed`}}})}})}},TE=e=>{let{componentCls:t,margin:n,colorSplit:r}=e;return{[`${t}-top, ${t}-bottom`]:{flexDirection:`column`,[`> ${t}-nav, > div > ${t}-nav`]:{margin:`0 0 ${n}px 0`,"&::before":{position:`absolute`,right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${e.lineWidth}px ${e.lineType} ${r}`,content:`''`},[`${t}-ink-bar`]:{height:e.lineWidthBold,"&-animated":{transition:`width ${e.motionDurationSlow}, left ${e.motionDurationSlow},
+ right ${e.motionDurationSlow}`}},[`${t}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:e.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowRight},[`&${t}-nav-wrap-ping-left::before`]:{opacity:1},[`&${t}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${t}-top`]:{[`> ${t}-nav,
+ > div > ${t}-nav`]:{"&::before":{bottom:0},[`${t}-ink-bar`]:{bottom:0}}},[`${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,marginTop:`${n}px`,marginBottom:0,"&::before":{top:0},[`${t}-ink-bar`]:{top:0}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0}},[`${t}-left, ${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{flexDirection:`column`,minWidth:e.controlHeight*1.25,[`${t}-tab`]:{padding:`${e.paddingXS}px ${e.paddingLG}px`,textAlign:`center`},[`${t}-tab + ${t}-tab`]:{margin:`${e.margin}px 0 0 0`},[`${t}-nav-wrap`]:{flexDirection:`column`,"&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:e.controlHeight},"&::before":{top:0,boxShadow:e.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:e.boxShadowTabsOverflowBottom},[`&${t}-nav-wrap-ping-top::before`]:{opacity:1},[`&${t}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${t}-ink-bar`]:{width:e.lineWidthBold,"&-animated":{transition:`height ${e.motionDurationSlow}, top ${e.motionDurationSlow}`}},[`${t}-nav-list, ${t}-nav-operations`]:{flex:`1 0 auto`,flexDirection:`column`}}},[`${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{marginLeft:{_skip_check_:!0,value:`-${e.lineWidth}px`},borderLeft:{_skip_check_:!0,value:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:e.paddingLG}}}},[`${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,[`${t}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:-e.lineWidth},borderRight:{_skip_check_:!0,value:`${e.lineWidth}px ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingRight:{_skip_check_:!0,value:e.paddingLG}}}}}},EE=e=>{let{componentCls:t,padding:n}=e;return{[t]:{"&-small":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXS}px 0`,fontSize:e.fontSize}}},"&-large":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${n}px 0`,fontSize:e.fontSizeLG}}}},[`${t}-card`]:{[`&${t}-small`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXXS*1.5}px ${n}px`}},[`&${t}-bottom`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`0 0 ${e.borderRadius}px ${e.borderRadius}px`}},[`&${t}-top`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`${e.borderRadius}px ${e.borderRadius}px 0 0`}},[`&${t}-right`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${e.borderRadius}px ${e.borderRadius}px 0`}}},[`&${t}-left`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${e.borderRadius}px 0 0 ${e.borderRadius}px`}}}},[`&${t}-large`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:`${e.paddingXS}px ${n}px ${e.paddingXXS*1.5}px`}}}}}},DE=e=>{let{componentCls:t,tabsActiveColor:n,tabsHoverColor:r,iconCls:i,tabsHorizontalGutter:a}=e,o=`${t}-tab`;return{[o]:{position:`relative`,display:`inline-flex`,alignItems:`center`,padding:`${e.paddingSM}px 0`,fontSize:`${e.fontSize}px`,background:`transparent`,border:0,outline:`none`,cursor:`pointer`,"&-btn, &-remove":Z({"&:focus:not(:focus-visible), &:active":{color:n}},he(e)),"&-btn":{outline:`none`,transition:`all 0.3s`},"&-remove":{flex:`none`,marginRight:{_skip_check_:!0,value:-e.marginXXS},marginLeft:{_skip_check_:!0,value:e.marginXS},color:e.colorTextDescription,fontSize:e.fontSizeSM,background:`transparent`,border:`none`,outline:`none`,cursor:`pointer`,transition:`all ${e.motionDurationSlow}`,"&:hover":{color:e.colorTextHeading}},"&:hover":{color:r},[`&${o}-active ${o}-btn`]:{color:e.colorPrimary,textShadow:e.tabsActiveTextShadow},[`&${o}-disabled`]:{color:e.colorTextDisabled,cursor:`not-allowed`},[`&${o}-disabled ${o}-btn, &${o}-disabled ${t}-remove`]:{"&:focus, &:active":{color:e.colorTextDisabled}},[`& ${o}-remove ${i}`]:{margin:0},[i]:{marginRight:{_skip_check_:!0,value:e.marginSM}}},[`${o} + ${o}`]:{margin:{_skip_check_:!0,value:`0 0 0 ${a}px`}}}},OE=e=>{let{componentCls:t,tabsHorizontalGutter:n,iconCls:r,tabsCardGutter:i}=e;return{[`${t}-rtl`]:{direction:`rtl`,[`${t}-nav`]:{[`${t}-tab`]:{margin:{_skip_check_:!0,value:`0 0 0 ${n}px`},[`${t}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[r]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:`${e.marginSM}px`}},[`${t}-tab-remove`]:{marginRight:{_skip_check_:!0,value:`${e.marginXS}px`},marginLeft:{_skip_check_:!0,value:`-${e.marginXXS}px`},[r]:{margin:0}}}},[`&${t}-left`]:{[`> ${t}-nav`]:{order:1},[`> ${t}-content-holder`]:{order:0}},[`&${t}-right`]:{[`> ${t}-nav`]:{order:0},[`> ${t}-content-holder`]:{order:1}},[`&${t}-card${t}-top, &${t}-card${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginRight:{_skip_check_:!0,value:`${i}px`},marginLeft:{_skip_check_:!0,value:0}}}}},[`${t}-dropdown-rtl`]:{direction:`rtl`},[`${t}-menu-item`]:{[`${t}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:`right`}}}}},kE=e=>{let{componentCls:t,tabsCardHorizontalPadding:n,tabsCardHeight:r,tabsCardGutter:i,tabsHoverColor:a,tabsActiveColor:o,colorSplit:s}=e;return{[t]:Z(Z(Z(Z({},cn(e)),{display:`flex`,[`> ${t}-nav, > div > ${t}-nav`]:{position:`relative`,display:`flex`,flex:`none`,alignItems:`center`,[`${t}-nav-wrap`]:{position:`relative`,display:`flex`,flex:`auto`,alignSelf:`stretch`,overflow:`hidden`,whiteSpace:`nowrap`,transform:`translate(0)`,"&::before, &::after":{position:`absolute`,zIndex:1,opacity:0,transition:`opacity ${e.motionDurationSlow}`,content:`''`,pointerEvents:`none`}},[`${t}-nav-list`]:{position:`relative`,display:`flex`,transition:`opacity ${e.motionDurationSlow}`},[`${t}-nav-operations`]:{display:`flex`,alignSelf:`stretch`},[`${t}-nav-operations-hidden`]:{position:`absolute`,visibility:`hidden`,pointerEvents:`none`},[`${t}-nav-more`]:{position:`relative`,padding:n,background:`transparent`,border:0,"&::after":{position:`absolute`,right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:e.controlHeightLG/8,transform:`translateY(100%)`,content:`''`}},[`${t}-nav-add`]:Z({minWidth:`${r}px`,marginLeft:{_skip_check_:!0,value:`${i}px`},padding:`0 ${e.paddingXS}px`,background:`transparent`,border:`${e.lineWidth}px ${e.lineType} ${s}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,outline:`none`,cursor:`pointer`,color:e.colorText,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`,"&:hover":{color:a},"&:active, &:focus:not(:focus-visible)":{color:o}},he(e))},[`${t}-extra-content`]:{flex:`none`},[`${t}-ink-bar`]:{position:`absolute`,background:e.colorPrimary,pointerEvents:`none`}}),DE(e)),{[`${t}-content`]:{position:`relative`,display:`flex`,width:`100%`,"&-animated":{transition:`margin 0.3s`}},[`${t}-content-holder`]:{flex:`auto`,minWidth:0,minHeight:0},[`${t}-tabpane`]:{outline:`none`,flex:`none`,width:`100%`}}),[`${t}-centered`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-nav-wrap`]:{[`&:not([class*='${t}-nav-wrap-ping'])`]:{justifyContent:`center`}}}}}},AE=S(`Tabs`,e=>{let t=e.controlHeightLG,n=B(e,{tabsHoverColor:e.colorPrimaryHover,tabsActiveColor:e.colorPrimaryActive,tabsCardHorizontalPadding:`${(t-Math.round(e.fontSize*e.lineHeight))/2-e.lineWidth}px ${e.padding}px`,tabsCardHeight:t,tabsCardGutter:e.marginXXS/2,tabsHorizontalGutter:32,tabsCardHeadBackground:e.colorFillAlter,dropdownEdgeChildVerticalPadding:e.paddingXXS,tabsActiveTextShadow:`0 0 0.25px currentcolor`,tabsDropdownHeight:200,tabsDropdownWidth:120});return[EE(n),OE(n),TE(n),wE(n),CE(n),kE(n),SE(n)]},e=>({zIndexPopup:e.zIndexPopupBase+50})),jE=0,ME=()=>({prefixCls:{type:String},id:{type:String},popupClassName:String,getPopupContainer:h(),activeKey:{type:[String,Number]},defaultActiveKey:{type:[String,Number]},direction:x(),animated:W([Boolean,Object]),renderTabBar:h(),tabBarGutter:{type:Number},tabBarStyle:nn(),tabPosition:x(),destroyInactiveTabPane:Q(),hideAdd:Boolean,type:x(),size:x(),centered:Boolean,onEdit:h(),onChange:h(),onTabClick:h(),onTabScroll:h(),"onUpdate:activeKey":h(),locale:nn(),onPrevClick:h(),onNextClick:h(),tabBarExtraContent:g.any});function NE(e){return e.map(e=>{if(Lt(e)){let t=Z({},e.props||{});for(let[e,n]of Object.entries(t))delete t[e],t[me(e)]=n;let n=e.children||{},r=e.key===void 0?void 0:e.key,{tab:i=n.tab,disabled:a,forceRender:o,closable:s,animated:c,active:l,destroyInactiveTabPane:u}=t;return Z(Z({key:r},t),{node:e,closeIcon:n.closeIcon,tab:i,disabled:a===``||a,forceRender:o===``||o,closable:s===``||s,animated:c===``||c,active:l===``||l,destroyInactiveTabPane:u===``||u})}return null}).filter(e=>e)}var PE=m({compatConfig:{MODE:3},name:`InternalTabs`,inheritAttrs:!1,props:Z(Z({},Gn(ME(),{tabPosition:`top`,animated:{inkBar:!0,tabPane:!1}})),{tabs:qe()}),slots:Object,setup(e,t){let{attrs:n,slots:r}=t;si(e.onPrevClick===void 0&&e.onNextClick===void 0,`Tabs`,"`onPrevClick / @prevClick` and `onNextClick / @nextClick` has been removed. Please use `onTabScroll / @tabScroll` instead."),si(e.tabBarExtraContent===void 0,`Tabs`,"`tabBarExtraContent` prop has been removed. Please use `rightExtra` slot instead."),si(r.tabBarExtraContent===void 0,`Tabs`,"`tabBarExtraContent` slot is deprecated. Please use `rightExtra` slot instead.");let{prefixCls:i,direction:a,size:o,rootPrefixCls:s,getPopupContainer:c}=X(`tabs`,e),[l,u]=AE(i),d=J(()=>a.value===`rtl`),f=J(()=>{let{animated:t,tabPosition:n}=e;return t===!1||[`left`,`right`].includes(n)?{inkBar:!1,tabPane:!1}:t===!0?{inkBar:!0,tabPane:!0}:Z({inkBar:!0,tabPane:!1},typeof t==`object`?t:{})}),[p,m]=of(!1);V(()=>{m(fd())});let[h,g]=af(()=>e.tabs[0]?.key,{value:J(()=>e.activeKey),defaultValue:e.defaultActiveKey}),[_,v]=of(()=>e.tabs.findIndex(e=>e.key===h.value));E(()=>{let t=e.tabs.findIndex(e=>e.key===h.value);t===-1&&(t=Math.max(0,Math.min(_.value,e.tabs.length-1)),g(e.tabs[t]?.key)),v(t)});let[y,b]=af(null,{value:J(()=>e.id)}),x=J(()=>p.value&&![`left`,`right`].includes(e.tabPosition)?`top`:e.tabPosition);V(()=>{e.id||(b(`rc-tabs-${jE}`),jE+=1)});let S=(t,n)=>{var r,i;(r=e.onTabClick)==null||r.call(e,t,n);let a=t!==h.value;g(t),a&&((i=e.onChange)==null||i.call(e,t))};return cE({tabs:J(()=>e.tabs),prefixCls:i}),()=>{let{id:t,type:a,tabBarGutter:m,tabBarStyle:g,locale:_,destroyInactiveTabPane:v,renderTabBar:b=r.renderTabBar,onTabScroll:C,hideAdd:w,centered:T}=e,E={id:y.value,activeKey:h.value,animated:f.value,tabPosition:x.value,rtl:d.value,mobile:p.value},D;a===`editable-card`&&(D={onEdit:(t,n)=>{let{key:r,event:i}=n;var a;(a=e.onEdit)==null||a.call(e,t===`add`?i:r,t)},removeIcon:()=>U(Re,null,null),addIcon:r.addIcon?r.addIcon:()=>U(dn,null,null),showAdd:w!==!0});let O,k=Z(Z({},E),{moreTransitionName:`${s.value}-slide-up`,editable:D,locale:_,tabBarGutter:m,onTabClick:S,onTabScroll:C,style:g,getPopupContainer:c.value,popupClassName:K(e.popupClassName,u.value)});O=b?b(Z(Z({},k),{DefaultTabBar:bE})):U(bE,k,Zg(r,[`moreIcon`,`leftExtra`,`rightExtra`,`tabBarExtraContent`]));let A=i.value;return l(U(`div`,Y(Y({},n),{},{id:t,class:K(A,`${A}-${x.value}`,{[u.value]:!0,[`${A}-${o.value}`]:o.value,[`${A}-card`]:[`card`,`editable-card`].includes(a),[`${A}-editable-card`]:a===`editable-card`,[`${A}-centered`]:T,[`${A}-mobile`]:p.value,[`${A}-editable`]:a===`editable-card`,[`${A}-rtl`]:d.value},n.class)}),[O,U(xE,Y(Y({destroyInactiveTabPane:v},E),{},{animated:f.value}),null)]))}}}),FE=m({compatConfig:{MODE:3},name:`ATabs`,inheritAttrs:!1,props:Gn(ME(),{tabPosition:`top`,animated:{inkBar:!0,tabPane:!1}}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i}=t,a=e=>{i(`update:activeKey`,e),i(`change`,e)};return()=>{let t=NE(fe(r.default?.call(r)));return U(PE,Y(Y(Y({},Pr(e,[`onUpdate:activeKey`])),n),{},{onChange:a,tabs:t}),r)}}}),IE=m({compatConfig:{MODE:3},name:`ATabPane`,inheritAttrs:!1,__ANT_TAB_PANE:!0,props:{tab:g.any,disabled:{type:Boolean},forceRender:{type:Boolean},closable:{type:Boolean},animated:{type:Boolean},active:{type:Boolean},destroyInactiveTabPane:{type:Boolean},prefixCls:{type:String},tabKey:{type:[String,Number]},id:{type:String}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,i=H(e.forceRender);G([()=>e.active,()=>e.destroyInactiveTabPane],()=>{e.active?i.value=!0:e.destroyInactiveTabPane&&(i.value=!1)},{immediate:!0});let a=J(()=>e.active?{}:e.animated?{visibility:`hidden`,height:0,overflowY:`hidden`}:{display:`none`});return()=>{let{prefixCls:t,forceRender:o,id:s,active:c,tabKey:l}=e;return U(`div`,{id:s&&`${s}-panel-${l}`,role:`tabpanel`,tabindex:c?0:-1,"aria-labelledby":s&&`${s}-tab-${l}`,"aria-hidden":!c,style:[a.value,n.style],class:[`${t}-tabpane`,c&&`${t}-tabpane-active`,n.class]},[(c||i.value||o)&&r.default?.call(r)])}}}),LE=FE;LE.TabPane=IE,LE.install=function(e){return e.component(LE.name,LE),e.component(IE.name,IE),e};var RE=LE,zE=e=>{let{antCls:t,componentCls:n,cardHeadHeight:r,cardPaddingBase:i,cardHeadTabsMarginBottom:a}=e;return Z(Z({display:`flex`,justifyContent:`center`,flexDirection:`column`,minHeight:r,marginBottom:-1,padding:`0 ${i}px`,color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,background:`transparent`,borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorderSecondary}`,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`},j()),{"&-wrapper":{width:`100%`,display:`flex`,alignItems:`center`},"&-title":Z(Z({display:`inline-block`,flex:1},Te),{[`
+ > ${n}-typography,
+ > ${n}-typography-edit-content
+ `]:{insetInlineStart:0,marginTop:0,marginBottom:0}}),[`${t}-tabs-top`]:{clear:`both`,marginBottom:a,color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,"&-bar":{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorBorderSecondary}`}}})},BE=e=>{let{cardPaddingBase:t,colorBorderSecondary:n,cardShadow:r,lineWidth:i}=e;return{width:`33.33%`,padding:t,border:0,borderRadius:0,boxShadow:`
+ ${i}px 0 0 0 ${n},
+ 0 ${i}px 0 0 ${n},
+ ${i}px ${i}px 0 0 ${n},
+ ${i}px 0 0 0 ${n} inset,
+ 0 ${i}px 0 0 ${n} inset;
+ `,transition:`all ${e.motionDurationMid}`,"&-hoverable:hover":{position:`relative`,zIndex:1,boxShadow:r}}},VE=e=>{let{componentCls:t,iconCls:n,cardActionsLiMargin:r,cardActionsIconSize:i,colorBorderSecondary:a}=e;return Z(Z({margin:0,padding:0,listStyle:`none`,background:e.colorBgContainer,borderTop:`${e.lineWidth}px ${e.lineType} ${a}`,display:`flex`,borderRadius:`0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px `},j()),{"& > li":{margin:r,color:e.colorTextDescription,textAlign:`center`,"> span":{position:`relative`,display:`block`,minWidth:e.cardActionsIconSize*2,fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:`pointer`,"&:hover":{color:e.colorPrimary,transition:`color ${e.motionDurationMid}`},[`a:not(${t}-btn), > ${n}`]:{display:`inline-block`,width:`100%`,color:e.colorTextDescription,lineHeight:`${e.fontSize*e.lineHeight}px`,transition:`color ${e.motionDurationMid}`,"&:hover":{color:e.colorPrimary}},[`> ${n}`]:{fontSize:i,lineHeight:`${i*e.lineHeight}px`}},"&:not(:last-child)":{borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${a}`}}})},HE=e=>Z(Z({margin:`-${e.marginXXS}px 0`,display:`flex`},j()),{"&-avatar":{paddingInlineEnd:e.padding},"&-detail":{overflow:`hidden`,flex:1,"> div:not(:last-child)":{marginBottom:e.marginXS}},"&-title":Z({color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG},Te),"&-description":{color:e.colorTextDescription}}),UE=e=>{let{componentCls:t,cardPaddingBase:n,colorFillAlter:r}=e;return{[`${t}-head`]:{padding:`0 ${n}px`,background:r,"&-title":{fontSize:e.fontSize}},[`${t}-body`]:{padding:`${e.padding}px ${n}px`}}},WE=e=>{let{componentCls:t}=e;return{overflow:`hidden`,[`${t}-body`]:{userSelect:`none`}}},GE=e=>{let{componentCls:t,cardShadow:n,cardHeadPadding:r,colorBorderSecondary:i,boxShadow:a,cardPaddingBase:o}=e;return{[t]:Z(Z({},cn(e)),{position:`relative`,background:e.colorBgContainer,borderRadius:e.borderRadiusLG,[`&:not(${t}-bordered)`]:{boxShadow:a},[`${t}-head`]:zE(e),[`${t}-extra`]:{marginInlineStart:`auto`,color:``,fontWeight:`normal`,fontSize:e.fontSize},[`${t}-body`]:Z({padding:o,borderRadius:` 0 0 ${e.borderRadiusLG}px ${e.borderRadiusLG}px`},j()),[`${t}-grid`]:BE(e),[`${t}-cover`]:{"> *":{display:`block`,width:`100%`},img:{borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`}},[`${t}-actions`]:VE(e),[`${t}-meta`]:HE(e)}),[`${t}-bordered`]:{border:`${e.lineWidth}px ${e.lineType} ${i}`,[`${t}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${t}-hoverable`]:{cursor:`pointer`,transition:`box-shadow ${e.motionDurationMid}, border-color ${e.motionDurationMid}`,"&:hover":{borderColor:`transparent`,boxShadow:n}},[`${t}-contain-grid`]:{[`${t}-body`]:{display:`flex`,flexWrap:`wrap`},[`&:not(${t}-loading) ${t}-body`]:{marginBlockStart:-e.lineWidth,marginInlineStart:-e.lineWidth,padding:0}},[`${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{paddingTop:r}}},[`${t}-type-inner`]:UE(e),[`${t}-loading`]:WE(e),[`${t}-rtl`]:{direction:`rtl`}}},KE=e=>{let{componentCls:t,cardPaddingSM:n,cardHeadHeightSM:r}=e;return{[`${t}-small`]:{[`> ${t}-head`]:{minHeight:r,padding:`0 ${n}px`,fontSize:e.fontSize,[`> ${t}-head-wrapper`]:{[`> ${t}-extra`]:{fontSize:e.fontSize}}},[`> ${t}-body`]:{padding:n}},[`${t}-small${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{minHeight:r,paddingTop:0,display:`flex`,alignItems:`center`}}}}},qE=S(`Card`,e=>{let t=B(e,{cardShadow:e.boxShadowCard,cardHeadHeight:e.fontSizeLG*e.lineHeightLG+e.padding*2,cardHeadHeightSM:e.fontSize*e.lineHeight+e.paddingXS*2,cardHeadPadding:e.padding,cardPaddingBase:e.paddingLG,cardHeadTabsMarginBottom:-e.padding-e.lineWidth,cardActionsLiMargin:`${e.paddingSM}px 0`,cardActionsIconSize:e.fontSize,cardPaddingSM:12});return[GE(t),KE(t)]}),JE=m({compatConfig:{MODE:3},name:`SkeletonTitle`,props:{prefixCls:String,width:{type:[Number,String]}},setup(e){return()=>{let{prefixCls:t,width:n}=e;return U(`h3`,{class:t,style:{width:typeof n==`number`?`${n}px`:n}},null)}}}),YE=m({compatConfig:{MODE:3},name:`SkeletonParagraph`,props:{prefixCls:String,width:{type:[Number,String,Array]},rows:Number},setup(e){let t=t=>{let{width:n,rows:r=2}=e;if(Array.isArray(n))return n[t];if(r-1===t)return n};return()=>{let{prefixCls:n,rows:r}=e,i=[...Array(r)].map((e,n)=>{let r=t(n);return U(`li`,{key:n,style:{width:typeof r==`number`?`${r}px`:r}},null)});return U(`ul`,{class:n},[i])}}}),XE=()=>({prefixCls:String,size:[String,Number],shape:String,active:{type:Boolean,default:void 0}}),ZE=e=>{let{prefixCls:t,size:n,shape:r}=e,i=K({[`${t}-lg`]:n===`large`,[`${t}-sm`]:n===`small`}),a=K({[`${t}-circle`]:r===`circle`,[`${t}-square`]:r===`square`,[`${t}-round`]:r===`round`}),o=typeof n==`number`?{width:`${n}px`,height:`${n}px`,lineHeight:`${n}px`}:{};return U(`span`,{class:K(t,i,a),style:o},null)};ZE.displayName=`SkeletonElement`;var QE=new L(`ant-skeleton-loading`,{"0%":{transform:`translateX(-37.5%)`},"100%":{transform:`translateX(37.5%)`}}),$E=e=>({height:e,lineHeight:`${e}px`}),eD=e=>Z({width:e},$E(e)),tD=e=>({position:`relative`,zIndex:0,overflow:`hidden`,background:`transparent`,"&::after":{position:`absolute`,top:0,insetInlineEnd:`-150%`,bottom:0,insetInlineStart:`-150%`,background:e.skeletonLoadingBackground,animationName:QE,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:`ease`,animationIterationCount:`infinite`,content:`""`}}),nD=e=>Z({width:e*5,minWidth:e*5},$E(e)),rD=e=>{let{skeletonAvatarCls:t,color:n,controlHeight:r,controlHeightLG:i,controlHeightSM:a}=e;return{[`${t}`]:Z({display:`inline-block`,verticalAlign:`top`,background:n},eD(r)),[`${t}${t}-circle`]:{borderRadius:`50%`},[`${t}${t}-lg`]:Z({},eD(i)),[`${t}${t}-sm`]:Z({},eD(a))}},iD=e=>{let{controlHeight:t,borderRadiusSM:n,skeletonInputCls:r,controlHeightLG:i,controlHeightSM:a,color:o}=e;return{[`${r}`]:Z({display:`inline-block`,verticalAlign:`top`,background:o,borderRadius:n},nD(t)),[`${r}-lg`]:Z({},nD(i)),[`${r}-sm`]:Z({},nD(a))}},aD=e=>Z({width:e},$E(e)),oD=e=>{let{skeletonImageCls:t,imageSizeBase:n,color:r,borderRadiusSM:i}=e;return{[`${t}`]:Z(Z({display:`flex`,alignItems:`center`,justifyContent:`center`,verticalAlign:`top`,background:r,borderRadius:i},aD(n*2)),{[`${t}-path`]:{fill:`#bfbfbf`},[`${t}-svg`]:Z(Z({},aD(n)),{maxWidth:n*4,maxHeight:n*4}),[`${t}-svg${t}-svg-circle`]:{borderRadius:`50%`}}),[`${t}${t}-circle`]:{borderRadius:`50%`}}},sD=(e,t,n)=>{let{skeletonButtonCls:r}=e;return{[`${n}${r}-circle`]:{width:t,minWidth:t,borderRadius:`50%`},[`${n}${r}-round`]:{borderRadius:t}}},cD=e=>Z({width:e*2,minWidth:e*2},$E(e)),lD=e=>{let{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:r,controlHeightLG:i,controlHeightSM:a,color:o}=e;return Z(Z(Z(Z(Z({[`${n}`]:Z({display:`inline-block`,verticalAlign:`top`,background:o,borderRadius:t,width:r*2,minWidth:r*2},cD(r))},sD(e,r,n)),{[`${n}-lg`]:Z({},cD(i))}),sD(e,i,`${n}-lg`)),{[`${n}-sm`]:Z({},cD(a))}),sD(e,a,`${n}-sm`))},uD=e=>{let{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:r,skeletonParagraphCls:i,skeletonButtonCls:a,skeletonInputCls:o,skeletonImageCls:s,controlHeight:c,controlHeightLG:l,controlHeightSM:u,color:d,padding:f,marginSM:p,borderRadius:m,skeletonTitleHeight:h,skeletonBlockRadius:g,skeletonParagraphLineHeight:_,controlHeightXS:v,skeletonParagraphMarginTop:y}=e;return{[`${t}`]:{display:`table`,width:`100%`,[`${t}-header`]:{display:`table-cell`,paddingInlineEnd:f,verticalAlign:`top`,[`${n}`]:Z({display:`inline-block`,verticalAlign:`top`,background:d},eD(c)),[`${n}-circle`]:{borderRadius:`50%`},[`${n}-lg`]:Z({},eD(l)),[`${n}-sm`]:Z({},eD(u))},[`${t}-content`]:{display:`table-cell`,width:`100%`,verticalAlign:`top`,[`${r}`]:{width:`100%`,height:h,background:d,borderRadius:g,[`+ ${i}`]:{marginBlockStart:u}},[`${i}`]:{padding:0,"> li":{width:`100%`,height:_,listStyle:`none`,background:d,borderRadius:g,"+ li":{marginBlockStart:v}}},[`${i}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:`61%`}},[`&-round ${t}-content`]:{[`${r}, ${i} > li`]:{borderRadius:m}}},[`${t}-with-avatar ${t}-content`]:{[`${r}`]:{marginBlockStart:p,[`+ ${i}`]:{marginBlockStart:y}}},[`${t}${t}-element`]:Z(Z(Z(Z({display:`inline-block`,width:`auto`},lD(e)),rD(e)),iD(e)),oD(e)),[`${t}${t}-block`]:{width:`100%`,[`${a}`]:{width:`100%`},[`${o}`]:{width:`100%`}},[`${t}${t}-active`]:{[`
+ ${r},
+ ${i} > li,
+ ${n},
+ ${a},
+ ${o},
+ ${s}
+ `]:Z({},tD(e))}}},dD=S(`Skeleton`,e=>{let{componentCls:t}=e;return[uD(B(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:e.controlHeight*1.5,skeletonTitleHeight:e.controlHeight/2,skeletonBlockRadius:e.borderRadiusSM,skeletonParagraphLineHeight:e.controlHeight/2,skeletonParagraphMarginTop:e.marginLG+e.marginXXS,borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.color} 25%, ${e.colorGradientEnd} 37%, ${e.color} 63%)`,skeletonLoadingMotionDuration:`1.4s`}))]},e=>{let{colorFillContent:t,colorFill:n}=e;return{color:t,colorGradientEnd:n}}),fD=()=>({active:{type:Boolean,default:void 0},loading:{type:Boolean,default:void 0},prefixCls:String,avatar:{type:[Boolean,Object],default:void 0},title:{type:[Boolean,Object],default:void 0},paragraph:{type:[Boolean,Object],default:void 0},round:{type:Boolean,default:void 0}});function pD(e){return e&&typeof e==`object`?e:{}}function mD(e,t){return e&&!t?{size:`large`,shape:`square`}:{size:`large`,shape:`circle`}}function hD(e,t){return!e&&t?{width:`38%`}:e&&t?{width:`50%`}:{}}function gD(e,t){let n={};return(!e||!t)&&(n.width=`61%`),!e&&t?n.rows=3:n.rows=2,n}var _D=m({compatConfig:{MODE:3},name:`ASkeleton`,props:Gn(fD(),{avatar:!1,title:!0,paragraph:!0}),setup(e,t){let{slots:n}=t,{prefixCls:r,direction:i}=X(`skeleton`,e),[a,o]=dD(r);return()=>{let{loading:t,avatar:s,title:c,paragraph:l,active:u,round:d}=e,f=r.value;if(t||e.loading===void 0){let e=!!s||s===``,t=!!c||c===``,n=!!l||l===``,r;if(e){let e=Z(Z({prefixCls:`${f}-avatar`},mD(t,n)),pD(s));r=U(`div`,{class:`${f}-header`},[U(ZE,e,null)])}let p;if(t||n){let r;t&&(r=U(JE,Z(Z({prefixCls:`${f}-title`},hD(e,n)),pD(c)),null));let i;n&&(i=U(YE,Z(Z({prefixCls:`${f}-paragraph`},gD(e,t)),pD(l)),null)),p=U(`div`,{class:`${f}-content`},[r,i])}let m=K(f,{[`${f}-with-avatar`]:e,[`${f}-active`]:u,[`${f}-rtl`]:i.value===`rtl`,[`${f}-round`]:d,[o.value]:!0});return a(U(`div`,{class:m},[r,p]))}return n.default?.call(n)}}}),vD=m({compatConfig:{MODE:3},name:`ASkeletonButton`,props:Gn(Z(Z({},XE()),{size:String,block:Boolean}),{size:`default`}),setup(e){let{prefixCls:t}=X(`skeleton`,e),[n,r]=dD(t),i=J(()=>K(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active,[`${t.value}-block`]:e.block},r.value));return()=>n(U(`div`,{class:i.value},[U(ZE,Y(Y({},e),{},{prefixCls:`${t.value}-button`}),null)]))}}),yD=m({compatConfig:{MODE:3},name:`ASkeletonInput`,props:Z(Z({},Pr(XE(),[`shape`])),{size:String,block:Boolean}),setup(e){let{prefixCls:t}=X(`skeleton`,e),[n,r]=dD(t),i=J(()=>K(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active,[`${t.value}-block`]:e.block},r.value));return()=>n(U(`div`,{class:i.value},[U(ZE,Y(Y({},e),{},{prefixCls:`${t.value}-input`}),null)]))}}),bD=`M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z`,xD=m({compatConfig:{MODE:3},name:`ASkeletonImage`,props:Pr(XE(),[`size`,`shape`,`active`]),setup(e){let{prefixCls:t}=X(`skeleton`,e),[n,r]=dD(t),i=J(()=>K(t.value,`${t.value}-element`,r.value));return()=>n(U(`div`,{class:i.value},[U(`div`,{class:`${t.value}-image`},[U(`svg`,{viewBox:`0 0 1098 1024`,xmlns:`http://www.w3.org/2000/svg`,class:`${t.value}-image-svg`},[U(`path`,{d:bD,class:`${t.value}-image-path`},null)])])]))}}),SD=m({compatConfig:{MODE:3},name:`ASkeletonAvatar`,props:Gn(Z(Z({},XE()),{shape:String}),{size:`default`,shape:`circle`}),setup(e){let{prefixCls:t}=X(`skeleton`,e),[n,r]=dD(t),i=J(()=>K(t.value,`${t.value}-element`,{[`${t.value}-active`]:e.active},r.value));return()=>n(U(`div`,{class:i.value},[U(ZE,Y(Y({},e),{},{prefixCls:`${t.value}-avatar`}),null)]))}});_D.Button=vD,_D.Avatar=SD,_D.Input=yD,_D.Image=xD,_D.Title=JE,_D.install=function(e){return e.component(_D.name,_D),e.component(_D.Button.name,vD),e.component(_D.Avatar.name,SD),e.component(_D.Input.name,yD),e.component(_D.Image.name,xD),e.component(_D.Title.name,JE),e};var CD=_D,{TabPane:wD}=RE,TD=m({compatConfig:{MODE:3},name:`ACard`,inheritAttrs:!1,props:{prefixCls:String,title:g.any,extra:g.any,bordered:{type:Boolean,default:!0},bodyStyle:{type:Object,default:void 0},headStyle:{type:Object,default:void 0},loading:{type:Boolean,default:!1},hoverable:{type:Boolean,default:!1},type:{type:String},size:{type:String},actions:g.any,tabList:{type:Array},tabBarExtraContent:g.any,activeTabKey:String,defaultActiveTabKey:String,cover:g.any,onTabChange:{type:Function}},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a,size:o}=X(`card`,e),[s,c]=qE(i),l=e=>e.map((t,n)=>_(t)&&!ke(t)||!_(t)?U(`li`,{style:{width:`${100/e.length}%`},key:`action-${n}`},[U(`span`,null,[t])]):null),u=t=>{var n;(n=e.onTabChange)==null||n.call(e,t)},d=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t;return e.forEach(e=>{e&&pm(e.type)&&e.type.__ANT_CARD_GRID&&(t=!0)}),t};return()=>{let{headStyle:t={},bodyStyle:f={},loading:p,bordered:m=!0,type:h,tabList:g,hoverable:_,activeTabKey:v,defaultActiveTabKey:y,tabBarExtraContent:b=ae(n.tabBarExtraContent?.call(n)),title:x=ae(n.title?.call(n)),extra:S=ae(n.extra?.call(n)),actions:C=ae(n.actions?.call(n)),cover:w=ae(n.cover?.call(n))}=e,T=fe(n.default?.call(n)),E=i.value,D={[`${E}`]:!0,[c.value]:!0,[`${E}-loading`]:p,[`${E}-bordered`]:m,[`${E}-hoverable`]:!!_,[`${E}-contain-grid`]:d(T),[`${E}-contain-tabs`]:g&&g.length,[`${E}-${o.value}`]:o.value,[`${E}-type-${h}`]:!!h,[`${E}-rtl`]:a.value===`rtl`},O=U(CD,{loading:!0,active:!0,paragraph:{rows:4},title:!1},{default:()=>[T]}),k=v!==void 0,A={size:`large`,[k?`activeKey`:`defaultActiveKey`]:k?v:y,onChange:u,class:`${E}-head-tabs`},j,M=g&&g.length?U(RE,A,{default:()=>[g.map(e=>{let{tab:t,slots:r}=e,i=r?.tab;si(!r,`Card`,"tabList slots is deprecated, Please use `customTab` instead.");let a=t===void 0?n[i]?n[i](e):null:t;return a=io(n,`customTab`,e,()=>[a]),U(wD,{tab:a,key:e.key,disabled:e.disabled},null)})],rightExtra:b?()=>b:null}):null;(x||S||M)&&(j=U(`div`,{class:`${E}-head`,style:t},[U(`div`,{class:`${E}-head-wrapper`},[x&&U(`div`,{class:`${E}-head-title`},[x]),S&&U(`div`,{class:`${E}-extra`},[S])]),M]));let N=w?U(`div`,{class:`${E}-cover`},[w]):null,P=U(`div`,{class:`${E}-body`,style:f},[p?O:T]),F=C&&C.length?U(`ul`,{class:`${E}-actions`},[l(C)]):null;return s(U(`div`,Y(Y({ref:`cardContainerRef`},r),{},{class:[D,r.class]}),[j,N,T&&T.length?P:null,F]))}}}),ED=m({compatConfig:{MODE:3},name:`ACardMeta`,props:{prefixCls:String,title:_t(),description:_t(),avatar:_t()},slots:Object,setup(e,t){let{slots:n}=t,{prefixCls:r}=X(`card`,e);return()=>{let t={[`${r.value}-meta`]:!0},i=un(n,e,`avatar`),a=un(n,e,`title`),o=un(n,e,`description`),s=i?U(`div`,{class:`${r.value}-meta-avatar`},[i]):null,c=a?U(`div`,{class:`${r.value}-meta-title`},[a]):null,l=o?U(`div`,{class:`${r.value}-meta-description`},[o]):null,u=c||l?U(`div`,{class:`${r.value}-meta-detail`},[c,l]):null;return U(`div`,{class:t},[s,u])}}}),DD=m({compatConfig:{MODE:3},name:`ACardGrid`,__ANT_CARD_GRID:!0,props:{prefixCls:String,hoverable:{type:Boolean,default:!0}},setup(e,t){let{slots:n}=t,{prefixCls:r}=X(`card`,e),i=J(()=>({[`${r.value}-grid`]:!0,[`${r.value}-grid-hoverable`]:e.hoverable}));return()=>U(`div`,{class:i.value},[n.default?.call(n)])}});TD.Meta=ED,TD.Grid=DD,TD.install=function(e){return e.component(TD.name,TD),e.component(ED.name,ED),e.component(DD.name,DD),e};var OD=TD,kD=()=>({prefixCls:String,activeKey:W([Array,Number,String]),defaultActiveKey:W([Array,Number,String]),accordion:Q(),destroyInactivePanel:Q(),bordered:Q(),expandIcon:h(),openAnimation:g.object,expandIconPosition:x(),collapsible:x(),ghost:Q(),onChange:h(),"onUpdate:activeKey":h()}),AD=()=>({openAnimation:g.object,prefixCls:String,header:g.any,headerClass:String,showArrow:Q(),isActive:Q(),destroyInactivePanel:Q(),disabled:Q(),accordion:Q(),forceRender:Q(),expandIcon:h(),extra:g.any,panelKey:W(),collapsible:x(),role:String,onItemClick:h()}),jD=e=>{let{componentCls:t,collapseContentBg:n,padding:r,collapseContentPaddingHorizontal:i,collapseHeaderBg:a,collapseHeaderPadding:o,collapsePanelBorderRadius:s,lineWidth:c,lineType:l,colorBorder:d,colorText:f,colorTextHeading:p,colorTextDisabled:m,fontSize:h,lineHeight:g,marginSM:_,paddingSM:v,motionDurationSlow:y,fontSizeIcon:b}=e,x=`${c}px ${l} ${d}`;return{[t]:Z(Z({},cn(e)),{backgroundColor:a,border:x,borderBottom:0,borderRadius:`${s}px`,"&-rtl":{direction:`rtl`},[`& > ${t}-item`]:{borderBottom:x,"&:last-child":{[`
+ &,
+ & > ${t}-header`]:{borderRadius:`0 0 ${s}px ${s}px`}},[`> ${t}-header`]:{position:`relative`,display:`flex`,flexWrap:`nowrap`,alignItems:`flex-start`,padding:o,color:p,lineHeight:g,cursor:`pointer`,transition:`all ${y}, visibility 0s`,[`> ${t}-header-text`]:{flex:`auto`},"&:focus":{outline:`none`},[`${t}-expand-icon`]:{height:h*g,display:`flex`,alignItems:`center`,paddingInlineEnd:_},[`${t}-arrow`]:Z(Z({},u()),{fontSize:b,svg:{transition:`transform ${y}`}}),[`${t}-header-text`]:{marginInlineEnd:`auto`}},[`${t}-header-collapsible-only`]:{cursor:`default`,[`${t}-header-text`]:{flex:`none`,cursor:`pointer`},[`${t}-expand-icon`]:{cursor:`pointer`}},[`${t}-icon-collapsible-only`]:{cursor:`default`,[`${t}-expand-icon`]:{cursor:`pointer`}},[`&${t}-no-arrow`]:{[`> ${t}-header`]:{paddingInlineStart:v}}},[`${t}-content`]:{color:f,backgroundColor:n,borderTop:x,[`& > ${t}-content-box`]:{padding:`${r}px ${i}px`},"&-hidden":{display:`none`}},[`${t}-item:last-child`]:{[`> ${t}-content`]:{borderRadius:`0 0 ${s}px ${s}px`}},[`& ${t}-item-disabled > ${t}-header`]:{"\n &,\n & > .arrow\n ":{color:m,cursor:`not-allowed`}},[`&${t}-icon-position-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:_}}}}})}},MD=e=>{let{componentCls:t}=e,n=`> ${t}-item > ${t}-header ${t}-arrow svg`;return{[`${t}-rtl`]:{[n]:{transform:`rotate(180deg)`}}}},ND=e=>{let{componentCls:t,collapseHeaderBg:n,paddingXXS:r,colorBorder:i}=e;return{[`${t}-borderless`]:{backgroundColor:n,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${i}`},[`
+ > ${t}-item:last-child,
+ > ${t}-item:last-child ${t}-header
+ `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:`transparent`,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{paddingTop:r}}}},PD=e=>{let{componentCls:t,paddingSM:n}=e;return{[`${t}-ghost`]:{backgroundColor:`transparent`,border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:`transparent`,border:0,[`> ${t}-content-box`]:{paddingBlock:n}}}}}},FD=S(`Collapse`,e=>{let t=B(e,{collapseContentBg:e.colorBgContainer,collapseHeaderBg:e.colorFillAlter,collapseHeaderPadding:`${e.paddingSM}px ${e.padding}px`,collapsePanelBorderRadius:e.borderRadiusLG,collapseContentPaddingHorizontal:16});return[jD(t),ND(t),PD(t),MD(t),q_(t)]});function ID(e){let t=e;if(!Array.isArray(t)){let e=typeof t;t=e===`number`||e===`string`?[t]:[]}return t.map(e=>String(e))}var LD=m({compatConfig:{MODE:3},name:`ACollapse`,inheritAttrs:!1,props:Gn(kD(),{accordion:!1,destroyInactivePanel:!1,bordered:!0,expandIconPosition:`start`}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i}=t,a=H(ID(ay([e.activeKey,e.defaultActiveKey])));G(()=>e.activeKey,()=>{a.value=ID(e.activeKey)},{deep:!0});let{prefixCls:o,direction:s,rootPrefixCls:c}=X(`collapse`,e),[l,u]=FD(o),d=J(()=>{let{expandIconPosition:t}=e;return t===void 0?s.value===`rtl`?`end`:`start`:t}),f=t=>{let{expandIcon:n=r.expandIcon}=e,i=n?n(t):U(ux,{rotate:t.isActive?90:void 0},null);return U(`div`,{class:[`${o.value}-expand-icon`,u.value],onClick:()=>[`header`,`icon`].includes(e.collapsible)&&m(t.panelKey)},[Lt(Array.isArray(n)?i[0]:i)?$a(i,{class:`${o.value}-arrow`},!1):i])},p=t=>{e.activeKey===void 0&&(a.value=t);let n=e.accordion?t[0]:t;i(`update:activeKey`,n),i(`change`,n)},m=t=>{let n=a.value;if(e.accordion)n=n[0]===t?[]:[t];else{n=[...n];let e=n.indexOf(t);e>-1?n.splice(e,1):n.push(t)}p(n)},h=(t,n)=>{var r;if(ke(t))return;let i=a.value,{accordion:s,destroyInactivePanel:l,collapsible:u,openAnimation:d}=e,p=d||$x(`${c.value}-motion-collapse`),h=String(t.key??n),{header:g=((r=t.children)?.header)?.call(r),headerClass:_,collapsible:v,disabled:y}=t.props||{},b=!1;b=s?i[0]===h:i.indexOf(h)>-1;let x=v??u;return(y||y===``)&&(x=`disabled`),$a(t,{key:h,panelKey:h,header:g,headerClass:_,isActive:b,prefixCls:o.value,destroyInactivePanel:l,openAnimation:p,accordion:s,onItemClick:x===`disabled`?null:m,expandIcon:f,collapsible:x})},g=()=>fe(r.default?.call(r)).map(h);return()=>{let{accordion:t,bordered:r,ghost:i}=e,a=K(o.value,{[`${o.value}-borderless`]:!r,[`${o.value}-icon-position-${d.value}`]:!0,[`${o.value}-rtl`]:s.value===`rtl`,[`${o.value}-ghost`]:!!i,[n.class]:!!n.class},u.value);return l(U(`div`,Y(Y({class:a},et(n)),{},{style:n.style,role:t?`tablist`:null}),[g()]))}}}),RD=m({compatConfig:{MODE:3},name:`PanelContent`,props:AD(),setup(e,t){let{slots:n}=t,r=q(!1);return E(()=>{(e.isActive||e.forceRender)&&(r.value=!0)}),()=>{if(!r.value)return null;let{prefixCls:t,isActive:i,role:a}=e;return U(`div`,{class:K(`${t}-content`,{[`${t}-content-active`]:i,[`${t}-content-inactive`]:!i}),role:a},[U(`div`,{class:`${t}-content-box`},[n.default?.call(n)])])}}}),zD=m({compatConfig:{MODE:3},name:`ACollapsePanel`,inheritAttrs:!1,props:Gn(AD(),{showArrow:!0,isActive:!1,onItemClick(){},headerClass:``,forceRender:!1}),slots:Object,setup(e,t){let{slots:n,emit:r,attrs:i}=t;si(e.disabled===void 0,`Collapse.Panel`,'`disabled` is deprecated. Please use `collapsible="disabled"` instead.');let{prefixCls:a}=X(`collapse`,e),o=()=>{r(`itemClick`,e.panelKey)},s=e=>{(e.key===`Enter`||e.keyCode===13||e.which===13)&&o()};return()=>{let{header:t=n.header?.call(n),headerClass:r,isActive:c,showArrow:l,destroyInactivePanel:u,accordion:d,forceRender:f,openAnimation:p,expandIcon:m=n.expandIcon,extra:h=n.extra?.call(n),collapsible:g}=e,_=g===`disabled`,v=a.value,y=K(`${v}-header`,{[r]:r,[`${v}-header-collapsible-only`]:g===`header`,[`${v}-icon-collapsible-only`]:g===`icon`}),b=K({[`${v}-item`]:!0,[`${v}-item-active`]:c,[`${v}-item-disabled`]:_,[`${v}-no-arrow`]:!l,[`${i.class}`]:!!i.class}),x=U(`i`,{class:`arrow`},null);l&&typeof m==`function`&&(x=m(e));let S=It(U(RD,{prefixCls:v,isActive:c,forceRender:f,role:d?`tabpanel`:null},{default:n.default}),[[yt,c]]),C=Z({appear:!1,css:!1},p);return U(`div`,Y(Y({},i),{},{class:b}),[U(`div`,{class:y,onClick:()=>![`header`,`icon`].includes(g)&&o(),role:d?`tab`:`button`,tabindex:_?-1:0,"aria-expanded":c,onKeypress:s},[l&&x,U(`span`,{onClick:()=>g===`header`&&o(),class:`${v}-header-text`},[t]),h&&U(`div`,{class:`${v}-extra`},[h])]),U(He,C,{default:()=>[!u||c?S:null]})])}}});LD.Panel=zD,LD.install=function(e){return e.component(LD.name,LD),e.component(zD.name,zD),e};var BD=LD,VD=function(e){return e.replace(/[A-Z]/g,function(e){return`-`+e.toLowerCase()}).toLowerCase()},HD=function(e){return/[height|width]$/.test(e)},UD=function(e){let t=``,n=Object.keys(e);return n.forEach(function(r,i){let a=e[r];r=VD(r),HD(r)&&typeof a==`number`&&(a+=`px`),a===!0?t+=r:a===!1?t+=`not `+r:t+=`(`+r+`: `+a+`)`,i{[`touchstart`,`touchmove`,`wheel`].includes(e.type)||e.preventDefault()},YD=e=>{let t=[],n=XD(e),r=ZD(e);for(let i=n;ie.currentSlide-QD(e),ZD=e=>e.currentSlide+$D(e),QD=e=>e.centerMode?Math.floor(e.slidesToShow/2)+ +(parseInt(e.centerPadding)>0):0,$D=e=>e.centerMode?Math.floor((e.slidesToShow-1)/2)+1+ +(parseInt(e.centerPadding)>0):e.slidesToShow,eO=e=>e&&e.offsetWidth||0,tO=e=>e&&e.offsetHeight||0,nO=function(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],n,r=e.startX-e.curX,i=e.startY-e.curY;return n=Math.round(Math.atan2(i,r)*180/Math.PI),n<0&&(n=360-Math.abs(n)),n<=45&&n>=0||n<=360&&n>=315?`left`:n>=135&&n<=225?`right`:t===!0?n>=35&&n<=135?`up`:`down`:`vertical`},rO=e=>{let t=!0;return e.infinite||(e.centerMode&&e.currentSlide>=e.slideCount-1||e.slideCount<=e.slidesToShow||e.currentSlide>=e.slideCount-e.slidesToShow)&&(t=!1),t},iO=(e,t)=>{let n={};return t.forEach(t=>n[t]=e[t]),n},aO=e=>{let t=e.children.length,n=e.listRef,r=Math.ceil(eO(n)),i=e.trackRef,a=Math.ceil(eO(i)),o;if(e.vertical)o=r;else{let t=e.centerMode&&parseInt(e.centerPadding)*2;typeof e.centerPadding==`string`&&e.centerPadding.slice(-1)===`%`&&(t*=r/100),o=Math.ceil((r-t)/e.slidesToShow)}let s=n&&tO(n.querySelector(`[data-index="0"]`)),c=s*e.slidesToShow,l=e.currentSlide===void 0?e.initialSlide:e.currentSlide;e.rtl&&e.currentSlide===void 0&&(l=t-1-e.initialSlide);let u=e.lazyLoadedList||[],d=YD(Z(Z({},e),{currentSlide:l,lazyLoadedList:u}),e);u=u.concat(d);let f={slideCount:t,slideWidth:o,listWidth:r,trackWidth:a,currentSlide:l,slideHeight:s,listHeight:c,lazyLoadedList:u};return e.autoplaying===null&&e.autoplay&&(f.autoplaying=`playing`),f},oO=e=>{let{waitForAnimate:t,animating:n,fade:r,infinite:i,index:a,slideCount:o,lazyLoad:s,currentSlide:c,centerMode:l,slidesToScroll:u,slidesToShow:d,useCSS:f}=e,{lazyLoadedList:p}=e;if(t&&n)return{};let m=a,h,g,_,v={},y={},b=i?a:qD(a,0,o-1);if(r){if(!i&&(a<0||a>=o))return{};a<0?m=a+o:a>=o&&(m=a-o),s&&p.indexOf(m)<0&&(p=p.concat(m)),v={animating:!0,currentSlide:m,lazyLoadedList:p,targetSlide:m},y={animating:!1,targetSlide:m}}else h=m,m<0?(h=m+o,i?o%u!==0&&(h=o-o%u):h=0):!rO(e)&&m>c?m=h=c:l&&m>=o?(m=i?o:o-1,h=i?0:o-1):m>=o&&(h=m-o,i?o%u!==0&&(h=0):h=o-d),!i&&m+d>=o&&(h=o-d),g=vO(Z(Z({},e),{slideIndex:m})),_=vO(Z(Z({},e),{slideIndex:h})),i||(g===_&&(m=h),g=_),s&&(p=p.concat(YD(Z(Z({},e),{currentSlide:m})))),f?(v={animating:!0,currentSlide:h,trackStyle:_O(Z(Z({},e),{left:g})),lazyLoadedList:p,targetSlide:b},y={animating:!1,currentSlide:h,trackStyle:gO(Z(Z({},e),{left:_})),swipeLeft:null,targetSlide:b}):v={currentSlide:h,trackStyle:gO(Z(Z({},e),{left:_})),lazyLoadedList:p,targetSlide:b};return{state:v,nextState:y}},sO=(e,t)=>{let n,r,i,{slidesToScroll:a,slidesToShow:o,slideCount:s,currentSlide:c,targetSlide:l,lazyLoad:u,infinite:d}=e,f=s%a===0?(s-c)%a:0;if(t.message===`previous`)r=f===0?a:o-f,i=c-r,u&&!d&&(n=c-r,i=n===-1?s-1:n),d||(i=l-a);else if(t.message===`next`)r=f===0?a:f,i=c+r,u&&!d&&(i=(c+a)%s+f),d||(i=l+a);else if(t.message===`dots`)i=t.index*t.slidesToScroll;else if(t.message===`children`){if(i=t.index,d){let n=SO(Z(Z({},e),{targetSlide:i}));i>t.currentSlide&&n===`left`?i-=s:ie.target.tagName.match(`TEXTAREA|INPUT|SELECT`)||!t?``:e.keyCode===37?n?`next`:`previous`:e.keyCode===39?n?`previous`:`next`:``,lO=(e,t,n)=>(e.target.tagName===`IMG`&&JD(e),!t||!n&&e.type.indexOf(`mouse`)!==-1?``:{dragging:!0,touchObject:{startX:e.touches?e.touches[0].pageX:e.clientX,startY:e.touches?e.touches[0].pageY:e.clientY,curX:e.touches?e.touches[0].pageX:e.clientX,curY:e.touches?e.touches[0].pageY:e.clientY}}),uO=(e,t)=>{let{scrolling:n,animating:r,vertical:i,swipeToSlide:a,verticalSwiping:o,rtl:s,currentSlide:c,edgeFriction:l,edgeDragged:u,onEdge:d,swiped:f,swiping:p,slideCount:m,slidesToScroll:h,infinite:g,touchObject:_,swipeEvent:v,listHeight:y,listWidth:b}=t;if(n)return;if(r)return JD(e);i&&a&&o&&JD(e);let x,S={},C=vO(t);_.curX=e.touches?e.touches[0].pageX:e.clientX,_.curY=e.touches?e.touches[0].pageY:e.clientY,_.swipeLength=Math.round(Math.sqrt((_.curX-_.startX)**2));let w=Math.round(Math.sqrt((_.curY-_.startY)**2));if(!o&&!p&&w>10)return{scrolling:!0};o&&(_.swipeLength=w);let T=(s?-1:1)*(_.curX>_.startX?1:-1);o&&(T=_.curY>_.startY?1:-1);let E=Math.ceil(m/h),D=nO(t.touchObject,o),O=_.swipeLength;return g||(c===0&&(D===`right`||D===`down`)||c+1>=E&&(D===`left`||D===`up`)||!rO(t)&&(D===`left`||D===`up`))&&(O=_.swipeLength*l,u===!1&&d&&(d(D),S.edgeDragged=!0)),!f&&v&&(v(D),S.swiped=!0),x=i?C+y/b*O*T:s?C-O*T:C+O*T,o&&(x=C+O*T),S=Z(Z({},S),{touchObject:_,swipeLeft:x,trackStyle:gO(Z(Z({},t),{left:x}))}),Math.abs(_.curX-_.startX)10&&(S.swiping=!0,JD(e)),S},dO=(e,t)=>{let{dragging:n,swipe:r,touchObject:i,listWidth:a,touchThreshold:o,verticalSwiping:s,listHeight:c,swipeToSlide:l,scrolling:u,onSwipe:d,targetSlide:f,currentSlide:p,infinite:m}=t;if(!n)return r&&JD(e),{};let h=s?c/o:a/o,g=nO(i,s),_={dragging:!1,edgeDragged:!1,scrolling:!1,swiping:!1,swiped:!1,swipeLeft:null,touchObject:{}};if(u||!i.swipeLength)return _;if(i.swipeLength>h){JD(e),d&&d(g);let n,r,i=m?p:f;switch(g){case`left`:case`up`:r=i+mO(t),n=l?pO(t,r):r,_.currentDirection=0;break;case`right`:case`down`:r=i-mO(t),n=l?pO(t,r):r,_.currentDirection=1;break;default:n=i}_.triggerSlideHandler=n}else{let e=vO(t);_.trackStyle=_O(Z(Z({},t),{left:e}))}return _},fO=e=>{let t=e.infinite?e.slideCount*2:e.slideCount,n=e.infinite?e.slidesToShow*-1:0,r=e.infinite?e.slidesToShow*-1:0,i=[];for(;n{let n=fO(e),r=0;if(t>n[n.length-1])t=n[n.length-1];else for(let e in n){if(t{let t=e.centerMode?e.slideWidth*Math.floor(e.slidesToShow/2):0;if(e.swipeToSlide){let n,r=e.listRef,i=r.querySelectorAll&&r.querySelectorAll(`.slick-slide`)||[];if(Array.from(i).every(r=>{if(!e.vertical){if(r.offsetLeft-t+eO(r)/2>e.swipeLeft*-1)return n=r,!1}else if(r.offsetTop+tO(r)/2>e.swipeLeft*-1)return n=r,!1;return!0}),!n)return 0;let a=e.rtl===!0?e.slideCount-e.currentSlide:e.currentSlide;return Math.abs(n.dataset.index-a)||1}else return e.slidesToScroll},hO=(e,t)=>t.reduce((t,n)=>t&&e.hasOwnProperty(n),!0)?null:console.error(`Keys Missing:`,e),gO=e=>{hO(e,[`left`,`variableWidth`,`slideCount`,`slidesToShow`,`slideWidth`]);let t,n,r=e.slideCount+2*e.slidesToShow;e.vertical?n=r*e.slideHeight:t=xO(e)*e.slideWidth;let i={opacity:1,transition:``,WebkitTransition:``};if(e.useTransform){let t=e.vertical?`translate3d(0px, `+e.left+`px, 0px)`:`translate3d(`+e.left+`px, 0px, 0px)`,n=e.vertical?`translate3d(0px, `+e.left+`px, 0px)`:`translate3d(`+e.left+`px, 0px, 0px)`,r=e.vertical?`translateY(`+e.left+`px)`:`translateX(`+e.left+`px)`;i=Z(Z({},i),{WebkitTransform:t,transform:n,msTransform:r})}else e.vertical?i.top=e.left:i.left=e.left;return e.fade&&(i={opacity:1}),t&&(i.width=t+`px`),n&&(i.height=n+`px`),window&&!window.addEventListener&&window.attachEvent&&(e.vertical?i.marginTop=e.left+`px`:i.marginLeft=e.left+`px`),i},_O=e=>{hO(e,[`left`,`variableWidth`,`slideCount`,`slidesToShow`,`slideWidth`,`speed`,`cssEase`]);let t=gO(e);return e.useTransform?(t.WebkitTransition=`-webkit-transform `+e.speed+`ms `+e.cssEase,t.transition=`transform `+e.speed+`ms `+e.cssEase):e.vertical?t.transition=`top `+e.speed+`ms `+e.cssEase:t.transition=`left `+e.speed+`ms `+e.cssEase,t},vO=e=>{if(e.unslick)return 0;hO(e,[`slideIndex`,`trackRef`,`infinite`,`centerMode`,`slideCount`,`slidesToShow`,`slidesToScroll`,`slideWidth`,`listWidth`,`variableWidth`,`slideHeight`]);let{slideIndex:t,trackRef:n,infinite:r,centerMode:i,slideCount:a,slidesToShow:o,slidesToScroll:s,slideWidth:c,listWidth:l,variableWidth:u,slideHeight:d,fade:f,vertical:p}=e,m=0,h,g,_=0;if(f||e.slideCount===1)return 0;let v=0;if(r?(v=-yO(e),a%s!==0&&t+s>a&&(v=-(t>a?o-(t-a):a%s)),i&&(v+=parseInt(o/2))):(a%s!==0&&t+s>a&&(v=o-a%s),i&&(v=parseInt(o/2))),m=v*c,_=v*d,h=p?t*d*-1+_:t*c*-1+m,u===!0){let a,o=n;if(a=t+yO(e),g=o&&o.childNodes[a],h=g?g.offsetLeft*-1:0,i===!0){a=r?t+yO(e):t,g=o&&o.children[a],h=0;for(let e=0;ee.unslick||!e.infinite?0:e.variableWidth?e.slideCount:e.slidesToShow+ +!!e.centerMode,bO=e=>e.unslick||!e.infinite?0:e.slideCount,xO=e=>e.slideCount===1?1:yO(e)+e.slideCount+bO(e),SO=e=>e.targetSlide>e.currentSlide?e.targetSlide>e.currentSlide+CO(e)?`left`:`right`:e.targetSlide{let{slidesToShow:t,centerMode:n,rtl:r,centerPadding:i}=e;if(n){let e=(t-1)/2+1;return parseInt(i)>0&&(e+=1),r&&t%2==0&&(e+=1),e}return r?0:t-1},wO=e=>{let{slidesToShow:t,centerMode:n,rtl:r,centerPadding:i}=e;if(n){let e=(t-1)/2+1;return parseInt(i)>0&&(e+=1),!r&&t%2==0&&(e+=1),e}return r?t-1:0},TO=()=>!!(typeof window<`u`&&window.document&&window.document.createElement),EO=e=>{let t,n,r,i;i=e.rtl?e.slideCount-1-e.index:e.index;let a=i<0||i>=e.slideCount;e.centerMode?(r=Math.floor(e.slidesToShow/2),n=(i-e.currentSlide)%e.slideCount===0,i>e.currentSlide-r-1&&i<=e.currentSlide+r&&(t=!0)):t=e.currentSlide<=i&&i