@marinoscar/platform-web 0.1.0-next.16 → 0.1.0-next.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +3 -2
- package/dist/ai/headless/schema-presets.js +1 -1
- package/dist/ai/headless/schema-presets.js.map +1 -1
- package/dist/ai/ui/AiConfigPage.d.ts.map +1 -1
- package/dist/ai/ui/AiConfigPage.js +3 -2
- package/dist/ai/ui/AiConfigPage.js.map +1 -1
- package/dist/ai/ui/AiModelsPage.d.ts.map +1 -1
- package/dist/ai/ui/AiModelsPage.js +4 -2
- package/dist/ai/ui/AiModelsPage.js.map +1 -1
- package/dist/ai/ui/OrgAiKeysPage.d.ts.map +1 -1
- package/dist/ai/ui/OrgAiKeysPage.js +3 -2
- package/dist/ai/ui/OrgAiKeysPage.js.map +1 -1
- package/dist/ai/ui/admin/AiGenericProviderCard.d.ts.map +1 -1
- package/dist/ai/ui/admin/AiGenericProviderCard.js +2 -0
- package/dist/ai/ui/admin/AiGenericProviderCard.js.map +1 -1
- package/dist/ai/ui/admin/AiProviderCard.d.ts.map +1 -1
- package/dist/ai/ui/admin/AiProviderCard.js +2 -0
- package/dist/ai/ui/admin/AiProviderCard.js.map +1 -1
- package/dist/ai/ui/admin/AiProviderKeyActions.d.ts.map +1 -1
- package/dist/ai/ui/admin/AiProviderKeyActions.js +2 -1
- package/dist/ai/ui/admin/AiProviderKeyActions.js.map +1 -1
- package/dist/ai/ui/admin/aiModelColumns.d.ts.map +1 -1
- package/dist/ai/ui/admin/aiModelColumns.js +2 -1
- package/dist/ai/ui/admin/aiModelColumns.js.map +1 -1
- package/dist/ai/ui/user/UserAiKeyCard.d.ts.map +1 -1
- package/dist/ai/ui/user/UserAiKeyCard.js +6 -4
- package/dist/ai/ui/user/UserAiKeyCard.js.map +1 -1
- package/dist/android-app/ui/AndroidAppPage.d.ts.map +1 -1
- package/dist/android-app/ui/AndroidAppPage.js +3 -2
- package/dist/android-app/ui/AndroidAppPage.js.map +1 -1
- package/dist/core/host.d.ts +2 -2
- package/dist/core/host.js +2 -2
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/time-zone/format.d.ts +135 -0
- package/dist/core/time-zone/format.d.ts.map +1 -0
- package/dist/core/time-zone/format.js +228 -0
- package/dist/core/time-zone/format.js.map +1 -0
- package/dist/core/time-zone/store.d.ts +93 -0
- package/dist/core/time-zone/store.d.ts.map +1 -0
- package/dist/core/time-zone/store.js +170 -0
- package/dist/core/time-zone/store.js.map +1 -0
- package/dist/credentials/headless/saved-secret.d.ts +1 -1
- package/dist/credentials/headless/saved-secret.d.ts.map +1 -1
- package/dist/credentials/headless/saved-secret.js +2 -1
- package/dist/credentials/headless/saved-secret.js.map +1 -1
- package/dist/credentials/ui/secret-field.d.ts +1 -1
- package/dist/credentials/ui/secret-field.d.ts.map +1 -1
- package/dist/credentials/ui/secret-field.js +2 -0
- package/dist/credentials/ui/secret-field.js.map +1 -1
- package/dist/db-backup/internal/format.d.ts +4 -1
- package/dist/db-backup/internal/format.d.ts.map +1 -1
- package/dist/db-backup/internal/format.js +6 -2
- package/dist/db-backup/internal/format.js.map +1 -1
- package/dist/db-backup/ui/DbBackupConfigPanel.d.ts.map +1 -1
- package/dist/db-backup/ui/DbBackupConfigPanel.js +4 -1
- package/dist/db-backup/ui/DbBackupConfigPanel.js.map +1 -1
- package/dist/db-backup/ui/DbBackupPage.d.ts.map +1 -1
- package/dist/db-backup/ui/DbBackupPage.js +7 -4
- package/dist/db-backup/ui/DbBackupPage.js.map +1 -1
- package/dist/db-backup/ui/DbBackupRestoreDialog.d.ts.map +1 -1
- package/dist/db-backup/ui/DbBackupRestoreDialog.js +4 -1
- package/dist/db-backup/ui/DbBackupRestoreDialog.js.map +1 -1
- package/dist/email/ui/EmailSettingsPage.d.ts.map +1 -1
- package/dist/email/ui/EmailSettingsPage.js +3 -2
- package/dist/email/ui/EmailSettingsPage.js.map +1 -1
- package/dist/email/ui/SesTransportPanel.d.ts.map +1 -1
- package/dist/email/ui/SesTransportPanel.js +3 -1
- package/dist/email/ui/SesTransportPanel.js.map +1 -1
- package/dist/email/ui/SmtpTransportPanel.d.ts.map +1 -1
- package/dist/email/ui/SmtpTransportPanel.js +3 -1
- package/dist/email/ui/SmtpTransportPanel.js.map +1 -1
- package/dist/exports/ui/ExportsList.d.ts.map +1 -1
- package/dist/exports/ui/ExportsList.js +5 -2
- package/dist/exports/ui/ExportsList.js.map +1 -1
- package/dist/host/ui/about-page.d.ts.map +1 -1
- package/dist/host/ui/about-page.js +7 -5
- package/dist/host/ui/about-page.js.map +1 -1
- package/dist/host/ui/maintenance-page.d.ts.map +1 -1
- package/dist/host/ui/maintenance-page.js +3 -2
- package/dist/host/ui/maintenance-page.js.map +1 -1
- package/dist/identity/index.d.ts +1 -1
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js +3 -2
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/ui/org/OrgInvitesPanel.d.ts.map +1 -1
- package/dist/identity/ui/org/OrgInvitesPanel.js +2 -0
- package/dist/identity/ui/org/OrgInvitesPanel.js.map +1 -1
- package/dist/identity/ui/org/OrgMembersPanel.d.ts.map +1 -1
- package/dist/identity/ui/org/OrgMembersPanel.js +2 -0
- package/dist/identity/ui/org/OrgMembersPanel.js.map +1 -1
- package/dist/identity/ui/org/orgLabels.d.ts +1 -1
- package/dist/identity/ui/org/orgLabels.d.ts.map +1 -1
- package/dist/identity/ui/org/orgLabels.js +3 -5
- package/dist/identity/ui/org/orgLabels.js.map +1 -1
- package/dist/identity/ui/tokens/CreatePatDialog.d.ts.map +1 -1
- package/dist/identity/ui/tokens/CreatePatDialog.js +3 -1
- package/dist/identity/ui/tokens/CreatePatDialog.js.map +1 -1
- package/dist/identity/ui/tokens/PersonalAccessTokens.d.ts.map +1 -1
- package/dist/identity/ui/tokens/PersonalAccessTokens.js +4 -1
- package/dist/identity/ui/tokens/PersonalAccessTokens.js.map +1 -1
- package/dist/identity/ui/tokens/patColumns.d.ts.map +1 -1
- package/dist/identity/ui/tokens/patColumns.js +7 -5
- package/dist/identity/ui/tokens/patColumns.js.map +1 -1
- package/dist/identity/ui/users/AllowlistTable.d.ts.map +1 -1
- package/dist/identity/ui/users/AllowlistTable.js +4 -1
- package/dist/identity/ui/users/AllowlistTable.js.map +1 -1
- package/dist/identity/ui/users/UserList.d.ts.map +1 -1
- package/dist/identity/ui/users/UserList.js +4 -2
- package/dist/identity/ui/users/UserList.js.map +1 -1
- package/dist/identity/ui/users/allowlistColumns.d.ts.map +1 -1
- package/dist/identity/ui/users/allowlistColumns.js +5 -3
- package/dist/identity/ui/users/allowlistColumns.js.map +1 -1
- package/dist/identity/ui/users/userListColumns.d.ts.map +1 -1
- package/dist/identity/ui/users/userListColumns.js +5 -3
- package/dist/identity/ui/users/userListColumns.js.map +1 -1
- package/dist/jobs/headless/format.d.ts +4 -1
- package/dist/jobs/headless/format.d.ts.map +1 -1
- package/dist/jobs/headless/format.js +6 -2
- package/dist/jobs/headless/format.js.map +1 -1
- package/dist/jobs/ui/JobInsightsPage.d.ts.map +1 -1
- package/dist/jobs/ui/JobInsightsPage.js +2 -1
- package/dist/jobs/ui/JobInsightsPage.js.map +1 -1
- package/dist/jobs/ui/JobsPage.d.ts.map +1 -1
- package/dist/jobs/ui/JobsPage.js +4 -2
- package/dist/jobs/ui/JobsPage.js.map +1 -1
- package/dist/nodes/headless/format.d.ts +4 -1
- package/dist/nodes/headless/format.d.ts.map +1 -1
- package/dist/nodes/headless/format.js +6 -2
- package/dist/nodes/headless/format.js.map +1 -1
- package/dist/nodes/ui/NodeCredentialRevealDialog.d.ts.map +1 -1
- package/dist/nodes/ui/NodeCredentialRevealDialog.js +3 -1
- package/dist/nodes/ui/NodeCredentialRevealDialog.js.map +1 -1
- package/dist/nodes/ui/NodeCredentials.d.ts.map +1 -1
- package/dist/nodes/ui/NodeCredentials.js +4 -1
- package/dist/nodes/ui/NodeCredentials.js.map +1 -1
- package/dist/nodes/ui/NodeVitalsDialog.d.ts.map +1 -1
- package/dist/nodes/ui/NodeVitalsDialog.js +2 -0
- package/dist/nodes/ui/NodeVitalsDialog.js.map +1 -1
- package/dist/nodes/ui/WorkersPage.d.ts.map +1 -1
- package/dist/nodes/ui/WorkersPage.js +4 -2
- package/dist/nodes/ui/WorkersPage.js.map +1 -1
- package/dist/notifications/headless/broadcasts.d.ts +26 -17
- package/dist/notifications/headless/broadcasts.d.ts.map +1 -1
- package/dist/notifications/headless/broadcasts.js +76 -36
- package/dist/notifications/headless/broadcasts.js.map +1 -1
- package/dist/notifications/ui/BroadcastComposer.d.ts.map +1 -1
- package/dist/notifications/ui/BroadcastComposer.js +11 -6
- package/dist/notifications/ui/BroadcastComposer.js.map +1 -1
- package/dist/notifications/ui/BroadcastDetailDialog.d.ts.map +1 -1
- package/dist/notifications/ui/BroadcastDetailDialog.js +2 -0
- package/dist/notifications/ui/BroadcastDetailDialog.js.map +1 -1
- package/dist/notifications/ui/BroadcastsPage.d.ts.map +1 -1
- package/dist/notifications/ui/BroadcastsPage.js +4 -2
- package/dist/notifications/ui/BroadcastsPage.js.map +1 -1
- package/dist/notifications/ui/NotificationBell.d.ts.map +1 -1
- package/dist/notifications/ui/NotificationBell.js +3 -1
- package/dist/notifications/ui/NotificationBell.js.map +1 -1
- package/dist/notifications/ui/PushConfigPage.d.ts.map +1 -1
- package/dist/notifications/ui/PushConfigPage.js +4 -3
- package/dist/notifications/ui/PushConfigPage.js.map +1 -1
- package/dist/notifications/ui/PushTestPanel.d.ts.map +1 -1
- package/dist/notifications/ui/PushTestPanel.js +6 -3
- package/dist/notifications/ui/PushTestPanel.js.map +1 -1
- package/dist/notifications/ui/SystemSettingsSection.d.ts.map +1 -1
- package/dist/notifications/ui/SystemSettingsSection.js +3 -2
- package/dist/notifications/ui/SystemSettingsSection.js.map +1 -1
- package/dist/notifications/ui/broadcastsTable.d.ts +4 -1
- package/dist/notifications/ui/broadcastsTable.d.ts.map +1 -1
- package/dist/notifications/ui/broadcastsTable.js +6 -2
- package/dist/notifications/ui/broadcastsTable.js.map +1 -1
- package/dist/settings/headless/use-user-settings.d.ts +7 -0
- package/dist/settings/headless/use-user-settings.d.ts.map +1 -1
- package/dist/settings/headless/use-user-settings.js +12 -4
- package/dist/settings/headless/use-user-settings.js.map +1 -1
- package/dist/settings/ui/ProfileSettings.d.ts +13 -4
- package/dist/settings/ui/ProfileSettings.d.ts.map +1 -1
- package/dist/settings/ui/ProfileSettings.js +15 -2
- package/dist/settings/ui/ProfileSettings.js.map +1 -1
- package/dist/settings/ui/UserProfilePage.d.ts +2 -2
- package/dist/settings/ui/UserProfilePage.js +3 -3
- package/dist/settings/ui/UserProfilePage.js.map +1 -1
- package/dist/settings/ui/UserSettingsSection.d.ts +5 -2
- package/dist/settings/ui/UserSettingsSection.d.ts.map +1 -1
- package/dist/settings/ui/UserSettingsSection.js.map +1 -1
- package/dist/sharing/internal/format.d.ts +1 -0
- package/dist/sharing/internal/format.d.ts.map +1 -1
- package/dist/sharing/internal/format.js +3 -6
- package/dist/sharing/internal/format.js.map +1 -1
- package/dist/sharing/ui/GroupDetailPage.d.ts.map +1 -1
- package/dist/sharing/ui/GroupDetailPage.js +2 -0
- package/dist/sharing/ui/GroupDetailPage.js.map +1 -1
- package/dist/sharing/ui/PendingGroupInvites.d.ts.map +1 -1
- package/dist/sharing/ui/PendingGroupInvites.js +2 -0
- package/dist/sharing/ui/PendingGroupInvites.js.map +1 -1
- package/dist/sharing/ui/ShareDialog.d.ts.map +1 -1
- package/dist/sharing/ui/ShareDialog.js +2 -0
- package/dist/sharing/ui/ShareDialog.js.map +1 -1
- package/dist/sharing/ui/SharedWithMeList.d.ts.map +1 -1
- package/dist/sharing/ui/SharedWithMeList.js +2 -0
- package/dist/sharing/ui/SharedWithMeList.js.map +1 -1
- package/dist/storage/ui/S3FamilyDriverPanel.d.ts.map +1 -1
- package/dist/storage/ui/S3FamilyDriverPanel.js +3 -1
- package/dist/storage/ui/S3FamilyDriverPanel.js.map +1 -1
- package/dist/storage/ui/StorageConfigPage.d.ts.map +1 -1
- package/dist/storage/ui/StorageConfigPage.js +3 -2
- package/dist/storage/ui/StorageConfigPage.js.map +1 -1
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +1 -1
- package/dist/telemetry/headless/lib/format.d.ts +4 -2
- package/dist/telemetry/headless/lib/format.d.ts.map +1 -1
- package/dist/telemetry/headless/lib/format.js +8 -6
- package/dist/telemetry/headless/lib/format.js.map +1 -1
- package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts.map +1 -1
- package/dist/telemetry/ui/components/TelemetryConnectionSection.js +3 -1
- package/dist/telemetry/ui/components/TelemetryConnectionSection.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js +2 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js +2 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/EventsFeed.js +3 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/KpiTiles.js +2 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js +2 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/TopProblems.js +2 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +2 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +2 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -1
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -1
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +3 -2
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -1
- package/dist/timezone/headless/catalog.d.ts +82 -0
- package/dist/timezone/headless/catalog.d.ts.map +1 -0
- package/dist/timezone/headless/catalog.js +192 -0
- package/dist/timezone/headless/catalog.js.map +1 -0
- package/dist/timezone/headless/format.d.ts +3 -0
- package/dist/timezone/headless/format.d.ts.map +1 -0
- package/dist/timezone/headless/format.js +5 -0
- package/dist/timezone/headless/format.js.map +1 -0
- package/dist/timezone/headless/index.d.ts +10 -0
- package/dist/timezone/headless/index.d.ts.map +1 -0
- package/dist/timezone/headless/index.js +10 -0
- package/dist/timezone/headless/index.js.map +1 -0
- package/dist/timezone/headless/map-data.d.ts +13 -0
- package/dist/timezone/headless/map-data.d.ts.map +1 -0
- package/dist/timezone/headless/map-data.js +530 -0
- package/dist/timezone/headless/map-data.js.map +1 -0
- package/dist/timezone/headless/map-geometry.d.ts +77 -0
- package/dist/timezone/headless/map-geometry.d.ts.map +1 -0
- package/dist/timezone/headless/map-geometry.js +104 -0
- package/dist/timezone/headless/map-geometry.js.map +1 -0
- package/dist/timezone/headless/store.d.ts +2 -0
- package/dist/timezone/headless/store.d.ts.map +1 -0
- package/dist/timezone/headless/store.js +6 -0
- package/dist/timezone/headless/store.js.map +1 -0
- package/dist/timezone/headless/sync.d.ts +39 -0
- package/dist/timezone/headless/sync.d.ts.map +1 -0
- package/dist/timezone/headless/sync.js +66 -0
- package/dist/timezone/headless/sync.js.map +1 -0
- package/dist/timezone/index.d.ts +4 -0
- package/dist/timezone/index.d.ts.map +1 -0
- package/dist/timezone/index.js +11 -0
- package/dist/timezone/index.js.map +1 -0
- package/dist/timezone/internal/use-now.d.ts +3 -0
- package/dist/timezone/internal/use-now.d.ts.map +1 -0
- package/dist/timezone/internal/use-now.js +13 -0
- package/dist/timezone/internal/use-now.js.map +1 -0
- package/dist/timezone/ui/TimeZoneField.d.ts +33 -0
- package/dist/timezone/ui/TimeZoneField.d.ts.map +1 -0
- package/dist/timezone/ui/TimeZoneField.js +50 -0
- package/dist/timezone/ui/TimeZoneField.js.map +1 -0
- package/dist/timezone/ui/TimeZoneMap.d.ts +38 -0
- package/dist/timezone/ui/TimeZoneMap.d.ts.map +1 -0
- package/dist/timezone/ui/TimeZoneMap.js +231 -0
- package/dist/timezone/ui/TimeZoneMap.js.map +1 -0
- package/dist/timezone/ui/TimeZonePickerDialog.d.ts +34 -0
- package/dist/timezone/ui/TimeZonePickerDialog.d.ts.map +1 -0
- package/dist/timezone/ui/TimeZonePickerDialog.js +85 -0
- package/dist/timezone/ui/TimeZonePickerDialog.js.map +1 -0
- package/dist/timezone/ui/index.d.ts +7 -0
- package/dist/timezone/ui/index.d.ts.map +1 -0
- package/dist/timezone/ui/index.js +7 -0
- package/dist/timezone/ui/index.js.map +1 -0
- package/package.json +10 -2
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
// The zone catalog: every zone of the map (tzdata zone.tab, ZONE_PINS) plus
|
|
2
|
+
// UTC, with its city, region, country, coordinates and current offset, and the
|
|
3
|
+
// two lookups the picker needs (search, nearest pin). Imports the generated map
|
|
4
|
+
// data, so only the picker pulls it; the formatters do not.
|
|
5
|
+
import { isValidTimeZone } from '@marinoscar/platform-contract/settings';
|
|
6
|
+
import { formatUtcOffset, getTimeZoneOffsetMinutes } from './format.js';
|
|
7
|
+
import { ZONE_PINS } from './map-data.js';
|
|
8
|
+
let regionNames;
|
|
9
|
+
function countryNameOf(code) {
|
|
10
|
+
if (!code)
|
|
11
|
+
return null;
|
|
12
|
+
if (regionNames === undefined) {
|
|
13
|
+
try {
|
|
14
|
+
regionNames = new Intl.DisplayNames(['en'], { type: 'region' });
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
regionNames = null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
return regionNames?.of(code) ?? null;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function cityOf(id) {
|
|
28
|
+
const segments = id.split('/');
|
|
29
|
+
return (segments[segments.length - 1] ?? id).replace(/_/g, ' ');
|
|
30
|
+
}
|
|
31
|
+
function regionOf(id) {
|
|
32
|
+
return id.includes('/') ? (id.split('/')[0] ?? '') : '';
|
|
33
|
+
}
|
|
34
|
+
const PINS_BY_ID = new Map(ZONE_PINS.map((pin) => [pin[0], pin]));
|
|
35
|
+
function optionOf(id, at, pin = PINS_BY_ID.get(id)) {
|
|
36
|
+
const offsetMinutes = getTimeZoneOffsetMinutes(id, at);
|
|
37
|
+
const countryCode = pin?.[1] ?? null;
|
|
38
|
+
return {
|
|
39
|
+
id,
|
|
40
|
+
city: id === 'UTC' ? 'UTC' : cityOf(id),
|
|
41
|
+
region: id === 'UTC' ? '' : regionOf(id),
|
|
42
|
+
countryCode,
|
|
43
|
+
countryName: id === 'UTC' ? 'Coordinated Universal Time' : countryNameOf(countryCode),
|
|
44
|
+
lat: pin?.[2] ?? null,
|
|
45
|
+
lon: pin?.[3] ?? null,
|
|
46
|
+
offsetMinutes,
|
|
47
|
+
offsetLabel: formatUtcOffset(offsetMinutes),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
let listCache = null;
|
|
51
|
+
/**
|
|
52
|
+
* Every zone of the map plus `UTC`, sorted by offset, then city. Offsets are
|
|
53
|
+
* those at `at` (daylight saving time applies); the list is cached per hour.
|
|
54
|
+
*
|
|
55
|
+
* @param at - the moment the offsets are computed for; default now.
|
|
56
|
+
* @returns the options.
|
|
57
|
+
*
|
|
58
|
+
* @stability experimental
|
|
59
|
+
*/
|
|
60
|
+
export function listTimeZones(at = new Date()) {
|
|
61
|
+
const hour = Math.floor(at.getTime() / 3_600_000);
|
|
62
|
+
if (listCache?.hour === hour)
|
|
63
|
+
return listCache.options;
|
|
64
|
+
const options = [optionOf('UTC', at), ...ZONE_PINS.map(([id]) => optionOf(id, at))];
|
|
65
|
+
options.sort((a, b) => a.offsetMinutes - b.offsetMinutes || a.city.localeCompare(b.city));
|
|
66
|
+
listCache = { hour, options };
|
|
67
|
+
return options;
|
|
68
|
+
}
|
|
69
|
+
function canonicalOf(id) {
|
|
70
|
+
try {
|
|
71
|
+
return new Intl.DateTimeFormat('en-US', { timeZone: id }).resolvedOptions().timeZone;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The option of one zone. A valid zone the map has no pin for (a link such as
|
|
79
|
+
* `US/Eastern`, or `America/Indiana/Knox`) still gets one: with the pin of its
|
|
80
|
+
* canonical zone when the runtime names one, else without coordinates.
|
|
81
|
+
*
|
|
82
|
+
* @param id - an IANA zone id.
|
|
83
|
+
* @param at - the moment the offset is computed for; default now.
|
|
84
|
+
* @returns the option, or `null` for an unknown id.
|
|
85
|
+
*
|
|
86
|
+
* @stability experimental
|
|
87
|
+
*/
|
|
88
|
+
export function findTimeZone(id, at = new Date()) {
|
|
89
|
+
if (!isValidTimeZone(id))
|
|
90
|
+
return null;
|
|
91
|
+
const listed = listTimeZones(at).find((option) => option.id === id);
|
|
92
|
+
if (listed)
|
|
93
|
+
return listed;
|
|
94
|
+
const canonical = canonicalOf(id);
|
|
95
|
+
return optionOf(id, at, canonical ? PINS_BY_ID.get(canonical) : undefined);
|
|
96
|
+
}
|
|
97
|
+
/** `+5:30`, `-6`, `+05:30`: the offset spellings a search may use. */
|
|
98
|
+
function offsetQueries(minutes) {
|
|
99
|
+
const sign = minutes < 0 ? '-' : '+';
|
|
100
|
+
const abs = Math.abs(minutes);
|
|
101
|
+
const h = Math.floor(abs / 60);
|
|
102
|
+
const m = abs % 60;
|
|
103
|
+
const mm = String(m).padStart(2, '0');
|
|
104
|
+
const hh = String(h).padStart(2, '0');
|
|
105
|
+
const forms = [`${sign}${h}:${mm}`, `${sign}${hh}:${mm}`, `${sign}${hh}${mm}`];
|
|
106
|
+
if (m === 0)
|
|
107
|
+
forms.push(`${sign}${h}`, `${sign}${hh}`);
|
|
108
|
+
if (minutes === 0)
|
|
109
|
+
forms.push('', '+0', '-0', '0');
|
|
110
|
+
return forms;
|
|
111
|
+
}
|
|
112
|
+
function normalize(text) {
|
|
113
|
+
return text
|
|
114
|
+
.normalize('NFD')
|
|
115
|
+
.replace(/[̀-ͯ]/g, '')
|
|
116
|
+
.replace(/−/g, '-')
|
|
117
|
+
.replace(/_/g, ' ')
|
|
118
|
+
.toLowerCase()
|
|
119
|
+
.trim();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Whether an option matches a search: its city, region, country, id or offset
|
|
123
|
+
* (`UTC+5:30`, `GMT-6`, `+05:30`). Case and accents are ignored.
|
|
124
|
+
*
|
|
125
|
+
* @param option - the zone.
|
|
126
|
+
* @param query - what the user typed.
|
|
127
|
+
* @returns whether it matches.
|
|
128
|
+
*
|
|
129
|
+
* @stability experimental
|
|
130
|
+
*/
|
|
131
|
+
export function matchesTimeZoneQuery(option, query) {
|
|
132
|
+
const q = normalize(query);
|
|
133
|
+
if (!q)
|
|
134
|
+
return true;
|
|
135
|
+
const offset = /^(?:utc|gmt)?\s*([+-]\s*\d{1,2}(?::?\d{2})?|0)$/.exec(q.replace(/\s+/g, ''));
|
|
136
|
+
if (offset || /^(?:utc|gmt)$/.test(q)) {
|
|
137
|
+
const typed = (offset?.[1] ?? '').replace(/\s+/g, '');
|
|
138
|
+
if (offsetQueries(option.offsetMinutes).includes(typed))
|
|
139
|
+
return true;
|
|
140
|
+
if (!offset)
|
|
141
|
+
return option.offsetMinutes === 0;
|
|
142
|
+
}
|
|
143
|
+
const haystack = normalize([option.city, option.region, option.countryName ?? '', option.countryCode ?? '', option.id].join(' '));
|
|
144
|
+
return q.split(/\s+/).every((word) => haystack.includes(word));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The options matching a search ({@link matchesTimeZoneQuery}), best first:
|
|
148
|
+
* a city that starts with the query, then the rest in list order.
|
|
149
|
+
*
|
|
150
|
+
* @param options - the list ({@link listTimeZones}).
|
|
151
|
+
* @param query - what the user typed.
|
|
152
|
+
* @param limit - the most to return; default 50.
|
|
153
|
+
* @returns the matches.
|
|
154
|
+
*
|
|
155
|
+
* @stability experimental
|
|
156
|
+
*/
|
|
157
|
+
export function searchTimeZones(options, query, limit = 50) {
|
|
158
|
+
const q = normalize(query);
|
|
159
|
+
const matches = options.filter((option) => matchesTimeZoneQuery(option, query));
|
|
160
|
+
if (q) {
|
|
161
|
+
const starts = (option) => (normalize(option.city).startsWith(q) ? 0 : 1);
|
|
162
|
+
matches.sort((a, b) => starts(a) - starts(b));
|
|
163
|
+
}
|
|
164
|
+
return matches.slice(0, limit);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* The zone whose pin is nearest a point of the map, in the map's
|
|
168
|
+
* equirectangular projection (longitude wraps at the date line).
|
|
169
|
+
*
|
|
170
|
+
* @param lon - longitude, degrees east.
|
|
171
|
+
* @param lat - latitude, degrees north.
|
|
172
|
+
* @returns the zone id.
|
|
173
|
+
*
|
|
174
|
+
* @stability experimental
|
|
175
|
+
*/
|
|
176
|
+
export function nearestZone(lon, lat) {
|
|
177
|
+
let best = ZONE_PINS[0]?.[0] ?? 'UTC';
|
|
178
|
+
let bestDistance = Number.POSITIVE_INFINITY;
|
|
179
|
+
for (const [id, , pinLat, pinLon] of ZONE_PINS) {
|
|
180
|
+
let dx = Math.abs(lon - pinLon) % 360;
|
|
181
|
+
if (dx > 180)
|
|
182
|
+
dx = 360 - dx;
|
|
183
|
+
const dy = lat - pinLat;
|
|
184
|
+
const distance = dx * dx + dy * dy;
|
|
185
|
+
if (distance < bestDistance) {
|
|
186
|
+
bestDistance = distance;
|
|
187
|
+
best = id;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return best;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/timezone/headless/catalog.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,gFAAgF;AAChF,4DAA4D;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA4B1C,IAAI,WAAiD,CAAC;AAEtD,SAAS,aAAa,CAAC,IAAmB;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,EAAU;IACxB,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAC,EAAU;IAC1B,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAU,CAAC,CAAC,CAAC;AAE3E,SAAS,QAAQ,CAAC,EAAU,EAAE,EAAQ,EAAE,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IAC9D,MAAM,aAAa,GAAG,wBAAwB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACrC,OAAO;QACL,EAAE;QACF,IAAI,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,WAAW;QACX,WAAW,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC;QACrF,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QACrB,aAAa;QACb,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED,IAAI,SAAS,GAAuD,IAAI,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,KAAW,IAAI,IAAI,EAAE;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;IAClD,IAAI,SAAS,EAAE,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC,OAAO,CAAC;IACvD,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,SAAS,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,EAAU;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,EAA6B,EAAE,KAAW,IAAI,IAAI,EAAE;IAC/E,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC7E,CAAC;AAED,sEAAsE;AACtE,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,OAAO,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI;SACR,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,WAAW,EAAE;SACb,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB,EAAE,KAAa;IACxE,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,MAAM,GAAG,iDAAiD,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7F,IAAI,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClI,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,OAAkC,EAAE,KAAa,EAAE,KAAK,GAAG,EAAE;IAC3F,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,EAAE,CAAC;QACN,MAAM,MAAM,GAAG,CAAC,MAAsB,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,GAAW;IAClD,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IACtC,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC5C,KAAK,MAAM,CAAC,EAAE,EAAE,AAAD,EAAG,MAAM,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC/C,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC;QACtC,IAAI,EAAE,GAAG,GAAG;YAAE,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC;QACxB,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACnC,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;YAC5B,YAAY,GAAG,QAAQ,CAAC;YACxB,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from '../../core/index.js';
|
|
2
|
+
export type { DateInput, TimeZoneFormatOptions } from '../../core/index.js';
|
|
3
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/timezone/headless/format.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// The display-zone formatters live in `core` (src/core/time-zone/format.ts),
|
|
2
|
+
// with the store; see ./store.ts for why. Re-exported for the slice's own
|
|
3
|
+
// files and its `/timezone/headless` entry.
|
|
4
|
+
export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from '../../core/index.js';
|
|
5
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/timezone/headless/format.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,4CAA4C;AAE5C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { TIME_ZONE_STORAGE_KEY, deviceTimeZone, getDisplayTimeZone, getPreferredTimeZone, setPreferredTimeZone, subscribeDisplayTimeZone, timeZoneFromProfile, useDisplayTimeZone, usePreferredTimeZone, } from './store.js';
|
|
2
|
+
export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from './format.js';
|
|
3
|
+
export type { DateInput, TimeZoneFormatOptions } from './format.js';
|
|
4
|
+
export { findTimeZone, listTimeZones, matchesTimeZoneQuery, nearestZone, searchTimeZones } from './catalog.js';
|
|
5
|
+
export type { TimeZoneOption } from './catalog.js';
|
|
6
|
+
export { TIME_ZONE_MAP_HEIGHT, TIME_ZONE_MAP_WIDTH, landDotsPath, offsetBandRanges, projectToMap, unprojectFromMap, } from './map-geometry.js';
|
|
7
|
+
export type { GeoPoint, MapPoint } from './map-geometry.js';
|
|
8
|
+
export { UserTimeZoneSync } from './sync.js';
|
|
9
|
+
export type { UserTimeZoneSyncProps } from './sync.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/timezone/headless/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/G,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// `@marinoscar/platform-web/timezone/headless`: the display time zone (the
|
|
2
|
+
// user's `profile.timezone`, else the device's), the formatters that render in
|
|
3
|
+
// it, the zone catalog, the map geometry and the settings sync, with no
|
|
4
|
+
// component. Documented in ../README.md.
|
|
5
|
+
export { TIME_ZONE_STORAGE_KEY, deviceTimeZone, getDisplayTimeZone, getPreferredTimeZone, setPreferredTimeZone, subscribeDisplayTimeZone, timeZoneFromProfile, useDisplayTimeZone, usePreferredTimeZone, } from './store.js';
|
|
6
|
+
export { NUMERIC_DATE, NUMERIC_DATE_TIME, NUMERIC_TIME, formatDate, formatDateTime, formatTime, formatUtcOffset, getDateTimeFormat, getTimeZoneOffsetMinutes, toValidDate, zonedDateKey, } from './format.js';
|
|
7
|
+
export { findTimeZone, listTimeZones, matchesTimeZoneQuery, nearestZone, searchTimeZones } from './catalog.js';
|
|
8
|
+
export { TIME_ZONE_MAP_HEIGHT, TIME_ZONE_MAP_WIDTH, landDotsPath, offsetBandRanges, projectToMap, unprojectFromMap, } from './map-geometry.js';
|
|
9
|
+
export { UserTimeZoneSync } from './sync.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/timezone/headless/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,+EAA+E;AAC/E,wEAAwE;AACxE,yCAAyC;AAEzC,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/G,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Degrees per grid cell of {@link LAND_ROWS}. */
|
|
2
|
+
export declare const LAND_STEP = 1.5;
|
|
3
|
+
/** Latitude of the top edge of the first row. */
|
|
4
|
+
export declare const LAND_NORTH = 84;
|
|
5
|
+
/** Latitude of the bottom edge of the last row. */
|
|
6
|
+
export declare const LAND_SOUTH = -58;
|
|
7
|
+
/** Cells per row, from 180W eastwards. */
|
|
8
|
+
export declare const LAND_COLS = 240;
|
|
9
|
+
/** One hex string per row, north to south; bit set = land (7678 cells). */
|
|
10
|
+
export declare const LAND_ROWS: readonly string[];
|
|
11
|
+
/** `[IANA id, ISO 3166 country, latitude, longitude]` of each zone's principal city (418 zones). */
|
|
12
|
+
export declare const ZONE_PINS: ReadonlyArray<readonly [string, string, number, number]>;
|
|
13
|
+
//# sourceMappingURL=map-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map-data.d.ts","sourceRoot":"","sources":["../../../src/timezone/headless/map-data.ts"],"names":[],"mappings":"AAGA,kDAAkD;AAClD,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B,iDAAiD;AACjD,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,mDAAmD;AACnD,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,0CAA0C;AAC1C,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,2EAA2E;AAC3E,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAgGtC,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAma9E,CAAC"}
|