@joewinke/jatui 0.1.22 → 0.1.24
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/CLAUDE.md +244 -0
- package/package.json +23 -10
- package/src/lib/actions/collapse.ts +0 -134
- package/src/lib/actions/railNav.ts +0 -473
- package/src/lib/components/AnnotationLayer.svelte +0 -108
- package/src/lib/components/AnnotationPanel.svelte +0 -319
- package/src/lib/components/AudioWaveform.svelte +0 -698
- package/src/lib/components/AvailabilityModal.svelte +0 -177
- package/src/lib/components/AvatarUpload.svelte +0 -234
- package/src/lib/components/Badge.svelte +0 -38
- package/src/lib/components/BookingForm.svelte +0 -278
- package/src/lib/components/BurndownChart.svelte +0 -778
- package/src/lib/components/Button.svelte +0 -81
- package/src/lib/components/CalendarPicker.svelte +0 -284
- package/src/lib/components/Card.svelte +0 -67
- package/src/lib/components/CharacterCounter.svelte +0 -82
- package/src/lib/components/ChipInput.svelte +0 -609
- package/src/lib/components/Collapse.svelte +0 -82
- package/src/lib/components/ColorSelector.svelte +0 -167
- package/src/lib/components/CommentThread.svelte +0 -773
- package/src/lib/components/ConfirmDialog.svelte +0 -348
- package/src/lib/components/ConfirmModal.svelte +0 -142
- package/src/lib/components/ContextMenu.svelte +0 -188
- package/src/lib/components/CountdownTimer.svelte +0 -94
- package/src/lib/components/DateRangePicker.svelte +0 -194
- package/src/lib/components/Drawer.svelte +0 -143
- package/src/lib/components/EmojiPicker.svelte +0 -159
- package/src/lib/components/EntityPreviewCard.svelte +0 -104
- package/src/lib/components/FileDropzone.svelte +0 -493
- package/src/lib/components/FilePicker.svelte +0 -488
- package/src/lib/components/FileThumbnail.svelte +0 -80
- package/src/lib/components/FilterDropdown.svelte +0 -203
- package/src/lib/components/FloatingActionBar.svelte +0 -354
- package/src/lib/components/GPSTracker.svelte +0 -202
- package/src/lib/components/HunkDiffView.svelte +0 -348
- package/src/lib/components/ImageLightbox.svelte +0 -274
- package/src/lib/components/ImageUpload.svelte +0 -147
- package/src/lib/components/InlineEdit.svelte +0 -291
- package/src/lib/components/InputDialog.svelte +0 -327
- package/src/lib/components/KeyboardShortcutsOverlay.svelte +0 -296
- package/src/lib/components/LazyImage.svelte +0 -123
- package/src/lib/components/LinkShortener.svelte +0 -274
- package/src/lib/components/LoadingSpinner.svelte +0 -106
- package/src/lib/components/LocationMap.svelte +0 -186
- package/src/lib/components/MapView.svelte +0 -341
- package/src/lib/components/MarkupEditor.svelte +0 -485
- package/src/lib/components/MarkupOverlay.svelte +0 -55
- package/src/lib/components/MediaWorkbench.svelte +0 -871
- package/src/lib/components/MilestoneCard.svelte +0 -98
- package/src/lib/components/MilestoneTimeline.svelte +0 -91
- package/src/lib/components/Modal.svelte +0 -244
- package/src/lib/components/PDFViewer.svelte +0 -105
- package/src/lib/components/PdfThumbnail.svelte +0 -63
- package/src/lib/components/PhoneInput.svelte +0 -212
- package/src/lib/components/ResizableDivider.svelte +0 -307
- package/src/lib/components/ResizablePanel.svelte +0 -305
- package/src/lib/components/SearchDropdown.svelte +0 -421
- package/src/lib/components/SelectInput.svelte +0 -237
- package/src/lib/components/SidebarUserFooter.svelte +0 -34
- package/src/lib/components/SignaturePad.svelte +0 -175
- package/src/lib/components/SmartImageEditor.svelte +0 -720
- package/src/lib/components/SortDropdown.svelte +0 -156
- package/src/lib/components/Sparkline.svelte +0 -116
- package/src/lib/components/SpeechForm.svelte +0 -114
- package/src/lib/components/StatusBadge.svelte +0 -157
- package/src/lib/components/TaskTypeIcon.svelte +0 -54
- package/src/lib/components/TextArea.svelte +0 -162
- package/src/lib/components/TextInput.svelte +0 -131
- package/src/lib/components/ThemeSelector.svelte +0 -206
- package/src/lib/components/TimeSlotPicker.svelte +0 -162
- package/src/lib/components/UserAvatar.svelte +0 -72
- package/src/lib/components/VariablePicker.svelte +0 -170
- package/src/lib/components/VoicePlayer.svelte +0 -422
- package/src/lib/components/linked-columns/LinkedColumns.svelte +0 -526
- package/src/lib/components/markup.ts +0 -287
- package/src/lib/components/messaging/Avatar.svelte +0 -81
- package/src/lib/components/messaging/ChannelInfoModal.svelte +0 -163
- package/src/lib/components/messaging/ChannelList.svelte +0 -107
- package/src/lib/components/messaging/ChannelMemberAvatarStack.svelte +0 -69
- package/src/lib/components/messaging/ChannelMembersModal.svelte +0 -182
- package/src/lib/components/messaging/CreateChannelModal.svelte +0 -190
- package/src/lib/components/messaging/DirectMessageList.svelte +0 -145
- package/src/lib/components/messaging/EmojiSelector.svelte +0 -261
- package/src/lib/components/messaging/MentionAutocomplete.svelte +0 -193
- package/src/lib/components/messaging/MessageAttachment.svelte +0 -273
- package/src/lib/components/messaging/MessageAttachmentUpload.svelte +0 -243
- package/src/lib/components/messaging/MessageInput.svelte +0 -452
- package/src/lib/components/messaging/MessageItem.svelte +0 -341
- package/src/lib/components/messaging/MessageThread.svelte +0 -306
- package/src/lib/components/messaging/NotificationSettingsModal.svelte +0 -234
- package/src/lib/components/messaging/QuotedMessageDisplay.svelte +0 -123
- package/src/lib/components/messaging/StartDMModal.svelte +0 -100
- package/src/lib/components/messaging/ThreadPanel.svelte +0 -153
- package/src/lib/components/pipeline/DESIGN.md +0 -361
- package/src/lib/components/pipeline/Pipeline.svelte +0 -391
- package/src/lib/components/pipeline/PipelineCard.svelte +0 -94
- package/src/lib/components/pipeline/PipelineColumn.svelte +0 -163
- package/src/lib/components/replay/ChapterTimeline.svelte +0 -326
- package/src/lib/components/session-nav/transcriptModel.ts +0 -352
- package/src/lib/data/emojis.ts +0 -1208
- package/src/lib/index.ts +0 -405
- package/src/lib/stores/confirmDialog.svelte.ts +0 -48
- package/src/lib/stores/inputDialog.svelte.ts +0 -51
- package/src/lib/styles/rail.css +0 -63
- package/src/lib/types/annotation.ts +0 -38
- package/src/lib/types/booking.ts +0 -143
- package/src/lib/types/comments.ts +0 -97
- package/src/lib/types/entityPreview.ts +0 -45
- package/src/lib/types/filePicker.ts +0 -16
- package/src/lib/types/googleMaps.d.ts +0 -51
- package/src/lib/types/maps.ts +0 -43
- package/src/lib/types/messaging.ts +0 -459
- package/src/lib/types/milestone.ts +0 -22
- package/src/lib/types/pipeline.ts +0 -150
- package/src/lib/types/smartImageEditor.ts +0 -39
- package/src/lib/types/templateVars.ts +0 -36
- package/src/lib/utils/currency.ts +0 -20
- package/src/lib/utils/daisyuiColors.ts +0 -243
- package/src/lib/utils/dateFormatters.ts +0 -196
- package/src/lib/utils/googleMapsLoader.ts +0 -84
- package/src/lib/utils/mentionParser.ts +0 -188
- package/src/lib/utils/phone.ts +0 -80
- package/src/lib/utils/phoneFormat.ts +0 -74
- package/src/lib/utils/taskUtils.ts +0 -75
package/src/lib/types/booking.ts
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
// Booking System Types
|
|
2
|
-
// Generic types for scheduling/booking UI components
|
|
3
|
-
|
|
4
|
-
export type LocationType = 'remote' | 'phone' | 'in_person';
|
|
5
|
-
export type BookingStatus = 'pending' | 'confirmed' | 'cancelled' | 'completed' | 'no_show';
|
|
6
|
-
export type OverrideType = 'unavailable' | 'custom_hours';
|
|
7
|
-
|
|
8
|
-
export interface Host {
|
|
9
|
-
id: string;
|
|
10
|
-
name: string;
|
|
11
|
-
email: string;
|
|
12
|
-
timezone: string;
|
|
13
|
-
avatar_url?: string;
|
|
14
|
-
bio?: string;
|
|
15
|
-
notify_on_new_booking?: boolean;
|
|
16
|
-
notify_on_cancellation?: boolean;
|
|
17
|
-
notify_on_reschedule?: boolean;
|
|
18
|
-
created_at: string;
|
|
19
|
-
updated_at: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface EventType {
|
|
23
|
-
id: string;
|
|
24
|
-
host_id: string;
|
|
25
|
-
title: string;
|
|
26
|
-
slug: string;
|
|
27
|
-
description?: string;
|
|
28
|
-
duration_minutes: number;
|
|
29
|
-
location_type: LocationType;
|
|
30
|
-
location_details?: string;
|
|
31
|
-
color: string;
|
|
32
|
-
is_active: boolean;
|
|
33
|
-
buffer_before_minutes: number;
|
|
34
|
-
buffer_after_minutes: number;
|
|
35
|
-
min_notice_hours: number;
|
|
36
|
-
max_days_in_advance: number;
|
|
37
|
-
confirmation_redirect_url?: string;
|
|
38
|
-
booking_instructions?: string;
|
|
39
|
-
created_at: string;
|
|
40
|
-
updated_at: string;
|
|
41
|
-
host?: Host;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface WeeklyAvailability {
|
|
45
|
-
id: string;
|
|
46
|
-
host_id: string;
|
|
47
|
-
day_of_week: number; // 0 = Sunday, 1 = Monday, etc.
|
|
48
|
-
start_time: string; // HH:MM:SS format
|
|
49
|
-
end_time: string;
|
|
50
|
-
event_type_id?: string;
|
|
51
|
-
is_active: boolean;
|
|
52
|
-
created_at: string;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface DateOverride {
|
|
56
|
-
id: string;
|
|
57
|
-
host_id: string;
|
|
58
|
-
override_date: string; // YYYY-MM-DD
|
|
59
|
-
override_type: OverrideType;
|
|
60
|
-
start_time?: string;
|
|
61
|
-
end_time?: string;
|
|
62
|
-
reason?: string;
|
|
63
|
-
created_at: string;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export interface Booking {
|
|
67
|
-
id: string;
|
|
68
|
-
event_type_id: string;
|
|
69
|
-
host_id: string;
|
|
70
|
-
guest_name: string;
|
|
71
|
-
guest_email: string;
|
|
72
|
-
guest_phone?: string;
|
|
73
|
-
guest_notes?: string;
|
|
74
|
-
start_time: string;
|
|
75
|
-
end_time: string;
|
|
76
|
-
timezone: string;
|
|
77
|
-
status: BookingStatus;
|
|
78
|
-
cancelled_at?: string;
|
|
79
|
-
cancellation_reason?: string;
|
|
80
|
-
meeting_url?: string;
|
|
81
|
-
location_details?: string;
|
|
82
|
-
confirmation_sent_at?: string;
|
|
83
|
-
reminder_sent_at?: string;
|
|
84
|
-
created_at: string;
|
|
85
|
-
updated_at: string;
|
|
86
|
-
event_type?: EventType;
|
|
87
|
-
host?: Host;
|
|
88
|
-
attendees?: BookingAttendee[];
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface BookingAttendee {
|
|
92
|
-
id: string;
|
|
93
|
-
booking_id: string;
|
|
94
|
-
name: string;
|
|
95
|
-
email: string;
|
|
96
|
-
created_at: string;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export interface TimeSlot {
|
|
100
|
-
start: Date;
|
|
101
|
-
end: Date;
|
|
102
|
-
available: boolean;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export interface BookingFormData {
|
|
106
|
-
guest_name: string;
|
|
107
|
-
guest_email: string;
|
|
108
|
-
guest_phone?: string;
|
|
109
|
-
guest_notes?: string;
|
|
110
|
-
timezone: string;
|
|
111
|
-
start_time: string;
|
|
112
|
-
attendees?: { name: string; email: string }[];
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export interface AvailabilityCounts {
|
|
116
|
-
[dateStr: string]: { available: number; total: number };
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Day of week helpers
|
|
120
|
-
export const DAYS_OF_WEEK = [
|
|
121
|
-
'Sunday',
|
|
122
|
-
'Monday',
|
|
123
|
-
'Tuesday',
|
|
124
|
-
'Wednesday',
|
|
125
|
-
'Thursday',
|
|
126
|
-
'Friday',
|
|
127
|
-
'Saturday'
|
|
128
|
-
] as const;
|
|
129
|
-
|
|
130
|
-
export const DAYS_SHORT = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] as const;
|
|
131
|
-
|
|
132
|
-
// Location type display
|
|
133
|
-
export const LOCATION_LABELS: Record<LocationType, string> = {
|
|
134
|
-
remote: 'Video Call',
|
|
135
|
-
phone: 'Phone Call',
|
|
136
|
-
in_person: 'In Person'
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
export const LOCATION_ICONS: Record<LocationType, string> = {
|
|
140
|
-
remote: 'video',
|
|
141
|
-
phone: 'phone',
|
|
142
|
-
in_person: 'map-pin'
|
|
143
|
-
};
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
// Threaded Comments Types
|
|
2
|
-
// Generic types for the CommentThread UI component — no framework or backend
|
|
3
|
-
// dependencies. Mirrors the JST `$lib/types/comments` projection so the
|
|
4
|
-
// component is a drop-in for any app whose server speaks the same shape.
|
|
5
|
-
//
|
|
6
|
-
// Threading is ONE level deep on the data side: a comment is either
|
|
7
|
-
// top-level (`parent_id === null`) or a single-level reply. The UI renders
|
|
8
|
-
// this as two visual levels (a comment and its replies).
|
|
9
|
-
|
|
10
|
-
/** Entity kinds a comment thread can hang off — mirrors the host DB CHECK. */
|
|
11
|
-
export type CommentEntityType =
|
|
12
|
-
| 'project'
|
|
13
|
-
| 'invoice'
|
|
14
|
-
| 'contract'
|
|
15
|
-
| 'asset'
|
|
16
|
-
| 'task'
|
|
17
|
-
| 'form_submission'
|
|
18
|
-
| 'milestone'
|
|
19
|
-
| 'contract_term'
|
|
20
|
-
|
|
21
|
-
export const COMMENT_ENTITY_TYPES: readonly CommentEntityType[] = [
|
|
22
|
-
'project',
|
|
23
|
-
'invoice',
|
|
24
|
-
'contract',
|
|
25
|
-
'asset',
|
|
26
|
-
'task',
|
|
27
|
-
'form_submission',
|
|
28
|
-
'milestone',
|
|
29
|
-
'contract_term'
|
|
30
|
-
] as const
|
|
31
|
-
|
|
32
|
-
/** Internal = staff-only. Client = also visible in the customer portal. */
|
|
33
|
-
export type CommentVisibility = 'internal' | 'client'
|
|
34
|
-
|
|
35
|
-
export const COMMENT_VISIBILITIES: readonly CommentVisibility[] = [
|
|
36
|
-
'internal',
|
|
37
|
-
'client'
|
|
38
|
-
] as const
|
|
39
|
-
|
|
40
|
-
export interface Comment {
|
|
41
|
-
id: string
|
|
42
|
-
team_id: string
|
|
43
|
-
entity_type: CommentEntityType
|
|
44
|
-
entity_id: string
|
|
45
|
-
author_id: string
|
|
46
|
-
/** Joined author display name (null if the profile is gone). */
|
|
47
|
-
author_name: string | null
|
|
48
|
-
/** Joined author avatar URL. */
|
|
49
|
-
author_avatar_url: string | null
|
|
50
|
-
body: string
|
|
51
|
-
/** null = top-level; otherwise the id of the top-level comment it replies to. */
|
|
52
|
-
parent_id: string | null
|
|
53
|
-
visibility: CommentVisibility
|
|
54
|
-
/** Set the first time the body is edited. */
|
|
55
|
-
edited_at: string | null
|
|
56
|
-
/** Set on soft-delete; body is replaced with "[deleted]". */
|
|
57
|
-
deleted_at: string | null
|
|
58
|
-
created_at: string
|
|
59
|
-
/** Number of replies (top-level rows only; always 0 for replies). */
|
|
60
|
-
reply_count: number
|
|
61
|
-
/**
|
|
62
|
-
* Replies are loaded on demand; this is [] in the paginated top-level
|
|
63
|
-
* listing and populated by the component when a thread is expanded.
|
|
64
|
-
*/
|
|
65
|
-
replies: Comment[]
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export interface CommentCreateInput {
|
|
69
|
-
entityType: CommentEntityType
|
|
70
|
-
entityId: string
|
|
71
|
-
body: string
|
|
72
|
-
/** When set, this comment is a reply to the given TOP-LEVEL comment. */
|
|
73
|
-
parentId?: string | null
|
|
74
|
-
/** Defaults to "internal". Clamped to the parent's visibility for replies. */
|
|
75
|
-
visibility?: CommentVisibility
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Transport-agnostic data layer for `<CommentThread>`. The consuming app
|
|
80
|
-
* wires these to a server load / form action / fetch endpoint. The
|
|
81
|
-
* component never imports server code or knows how data is fetched.
|
|
82
|
-
*/
|
|
83
|
-
export interface CommentCallbacks {
|
|
84
|
-
/** Persist a new comment (top-level or reply) and return the created row. */
|
|
85
|
-
submitComment: (input: CommentCreateInput) => Promise<Comment>
|
|
86
|
-
/** Edit an existing comment body; returns the updated row. */
|
|
87
|
-
editComment: (id: string, body: string) => Promise<Comment>
|
|
88
|
-
/** Soft-delete a comment. The row stays so replies remain anchored. */
|
|
89
|
-
deleteComment: (id: string) => Promise<void>
|
|
90
|
-
/** Fetch the replies for a top-level comment (oldest-first). */
|
|
91
|
-
loadReplies: (parentId: string) => Promise<Comment[]>
|
|
92
|
-
/**
|
|
93
|
-
* Optional: fetch the next page of top-level comments. When omitted, the
|
|
94
|
-
* "Load more" affordance is hidden.
|
|
95
|
-
*/
|
|
96
|
-
loadMore?: (offset: number) => Promise<{ comments: Comment[]; total: number }>
|
|
97
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Entity preview card — the uniform shape an EntityPreviewCard renders and that
|
|
3
|
-
* a server-side resolver returns for any domain entity. One shape for every
|
|
4
|
-
* entity type so the card and hover-action stay generic and the same card backs
|
|
5
|
-
* hover-previews, @-mention unfurls, and link previews.
|
|
6
|
-
*
|
|
7
|
-
* Pure types — safe to import from both server (the resolver) and client (the
|
|
8
|
-
* card + action).
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/** A small labelled stat shown in the card's footer grid (e.g. "Submissions" → 42). */
|
|
12
|
-
export interface EntityPreviewStat {
|
|
13
|
-
label: string
|
|
14
|
-
value: string | number
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/** A coloured pill (status, type, …). `tone` maps to a DaisyUI semantic token. */
|
|
18
|
-
export interface EntityPreviewBadge {
|
|
19
|
-
label: string
|
|
20
|
-
tone?: "neutral" | "primary" | "info" | "success" | "warning" | "error"
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface EntityPreviewData {
|
|
24
|
-
/** Canonical entity type slug (e.g. "base", "vendor", "form", "task"). */
|
|
25
|
-
type: string
|
|
26
|
-
id: string
|
|
27
|
-
/** Human label for the type, shown as the card's kicker (e.g. "Knowledge base"). */
|
|
28
|
-
typeLabel: string
|
|
29
|
-
/** Main title. */
|
|
30
|
-
title: string
|
|
31
|
-
/** Optional one-line subtitle under the title (e.g. a vendor's company). */
|
|
32
|
-
subtitle?: string | null
|
|
33
|
-
/** Optional longer summary / description (clamped in the card). */
|
|
34
|
-
summary?: string | null
|
|
35
|
-
/** og:image / avatar / thumbnail URL, when the entity has one. */
|
|
36
|
-
imageUrl?: string | null
|
|
37
|
-
/** A short emoji/text glyph fallback when there's no image. */
|
|
38
|
-
icon?: string | null
|
|
39
|
-
/** Up to ~4 labelled stats. */
|
|
40
|
-
stats?: EntityPreviewStat[]
|
|
41
|
-
/** Up to ~3 status/type pills. */
|
|
42
|
-
badges?: EntityPreviewBadge[]
|
|
43
|
-
/** The admin detail route for the entity (the card links here). */
|
|
44
|
-
href?: string | null
|
|
45
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface FilePickerFile {
|
|
2
|
-
id: string
|
|
3
|
-
name: string
|
|
4
|
-
created_at: string
|
|
5
|
-
updated_at: string
|
|
6
|
-
metadata: Record<string, any>
|
|
7
|
-
scope: "personal" | "team"
|
|
8
|
-
/** Publicly accessible URL (no auth required). When present, used instead of the /api/files proxy URL. */
|
|
9
|
-
publicUrl?: string
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface FilePickerSelection {
|
|
13
|
-
file: FilePickerFile
|
|
14
|
-
url: string
|
|
15
|
-
downloadUrl: string
|
|
16
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Minimal ambient declarations for Google Maps JS API loaded at runtime.
|
|
3
|
-
* Prevents "Property 'google' does not exist on Window" TS errors.
|
|
4
|
-
* Components using the Google Maps API operate with `any` for advanced
|
|
5
|
-
* marker types until @types/google.maps is added as a dev dependency.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
declare namespace google {
|
|
9
|
-
namespace maps {
|
|
10
|
-
class Map {
|
|
11
|
-
constructor(el: HTMLElement, options: object);
|
|
12
|
-
fitBounds(bounds: any): void;
|
|
13
|
-
getZoom(): number | undefined;
|
|
14
|
-
setZoom(zoom: number): void;
|
|
15
|
-
setCenter(center: object): void;
|
|
16
|
-
}
|
|
17
|
-
class InfoWindow {
|
|
18
|
-
constructor(options: object);
|
|
19
|
-
open(map: any, marker: any): void;
|
|
20
|
-
}
|
|
21
|
-
class Circle {
|
|
22
|
-
constructor(options: object);
|
|
23
|
-
setMap(map: any): void;
|
|
24
|
-
}
|
|
25
|
-
class LatLngBounds {
|
|
26
|
-
extend(position: object): void;
|
|
27
|
-
}
|
|
28
|
-
const MapTypeId: { ROADMAP: string };
|
|
29
|
-
const event: {
|
|
30
|
-
addListener(instance: any, event: string, fn: () => void): any;
|
|
31
|
-
removeListener(listener: any): void;
|
|
32
|
-
clearInstanceListeners(instance: any): void;
|
|
33
|
-
};
|
|
34
|
-
namespace marker {
|
|
35
|
-
class AdvancedMarkerElement {
|
|
36
|
-
constructor(options: object);
|
|
37
|
-
map: any;
|
|
38
|
-
position: any;
|
|
39
|
-
addListener(event: string, fn: () => void): void;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
-
const places: any;
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
45
|
-
const geometry: any;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
interface Window {
|
|
50
|
-
google?: typeof google;
|
|
51
|
-
}
|
package/src/lib/types/maps.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Types for MapView, LocationMap, and GPSTracker components.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
export interface MapJob {
|
|
6
|
-
id: string;
|
|
7
|
-
status: string;
|
|
8
|
-
type?: string;
|
|
9
|
-
priority?: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
scheduled_at?: string;
|
|
12
|
-
customer?: {
|
|
13
|
-
name?: string;
|
|
14
|
-
phone?: string;
|
|
15
|
-
};
|
|
16
|
-
location?: {
|
|
17
|
-
address?: string;
|
|
18
|
-
latitude?: number;
|
|
19
|
-
longitude?: number;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface MapAgent {
|
|
24
|
-
id: string;
|
|
25
|
-
name: string;
|
|
26
|
-
email?: string;
|
|
27
|
-
avatarUrl?: string;
|
|
28
|
-
status?: string;
|
|
29
|
-
capacity?: string;
|
|
30
|
-
specializations?: string[];
|
|
31
|
-
vehicle?: { name?: string };
|
|
32
|
-
/** Most recent GPS fix */
|
|
33
|
-
location?: {
|
|
34
|
-
latitude?: number;
|
|
35
|
-
longitude?: number;
|
|
36
|
-
age_seconds?: number;
|
|
37
|
-
};
|
|
38
|
-
/** Active dispatches used as fallback location */
|
|
39
|
-
dispatches?: Array<{
|
|
40
|
-
job_id: string;
|
|
41
|
-
status: string;
|
|
42
|
-
}>;
|
|
43
|
-
}
|