@tak-ps/cloudtak 12.55.0 → 12.102.0
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/dist/types/plugin.d.ts +57 -0
- package/dist/types/src/base/chatroom-chats.d.ts +3 -1
- package/dist/types/src/base/chatroom.d.ts +2 -0
- package/dist/types/src/base/config.d.ts +17 -0
- package/dist/types/src/base/contact.d.ts +14 -0
- package/dist/types/src/base/cot.d.ts +8 -7
- package/dist/types/src/base/database.d.ts +86 -9
- package/dist/types/src/base/events.d.ts +4 -2
- package/dist/types/src/base/group.d.ts +27 -0
- package/dist/types/src/base/handler.d.ts +2 -4
- package/dist/types/src/base/mission-template-logs.d.ts +9 -0
- package/dist/types/src/base/mission-template.d.ts +20 -0
- package/dist/types/src/base/profile.d.ts +20 -0
- package/dist/types/src/base/server.d.ts +9 -0
- package/dist/types/src/base/subscription-changes.d.ts +18 -0
- package/dist/types/src/base/subscription-chat.d.ts +23 -0
- package/dist/types/src/base/subscription-contents.d.ts +27 -0
- package/dist/types/src/base/subscription-feature.d.ts +1 -1
- package/dist/types/src/base/subscription-log.d.ts +4 -2
- package/dist/types/src/base/subscription.d.ts +16 -3
- package/dist/types/src/base/validators.d.ts +9 -0
- package/dist/types/src/components/CloudTAK/ActiveMission.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/CoTView.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/DrawTools.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/GenericBottomPane.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/Inputs/BufferInput.vue.d.ts +10 -0
- package/dist/types/src/components/CloudTAK/Inputs/CoordInput.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Inputs/GeoJSONInput.vue.d.ts +24 -0
- package/dist/types/src/components/CloudTAK/Inputs/RangeInput.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Inputs/RangeRingsInput.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/MainMenu.vue.d.ts +9 -0
- package/dist/types/src/components/CloudTAK/MainMenuContents.vue.d.ts +16 -0
- package/dist/types/src/components/CloudTAK/Map.vue.d.ts +8 -0
- package/dist/types/src/components/CloudTAK/MapLoading.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/Basemaps/EditModal.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/Menu/Debugger.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/Iconset/EditModal.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuBasemaps.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuChannels.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuChat.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuChats.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuConnections.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuContacts.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuFeatView.vue.d.ts +8 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuFeatures.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuFeaturesDeleted.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuFiles.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuHistory.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuIcon.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuIconset.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuIconsets.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuImport.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuImports.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuItemCard.vue.d.ts +103 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuMission.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuMissions.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuOverlayExplorer.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuOverlays.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuPackage.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuPackages.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuRoutes.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuRoutesNew.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuSettings.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuSettingsCallsign.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuSettingsDisplay.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuSettingsTokens.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuVideos.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/MenuVideosRemote.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionChanges.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionChats.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionContents.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionCreate.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionInfo.vue.d.ts +11 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayerCreate.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayerEdit.vue.d.ts +15 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayerTree.vue.d.ts +15 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayers.vue.d.ts +10 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLog.vue.d.ts +9 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLogs.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/MissionUsers.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Mission/PendingInvites.vue.d.ts +11 -0
- package/dist/types/src/components/CloudTAK/Menu/Overlays/DeleteModal.vue.d.ts +39 -0
- package/dist/types/src/components/CloudTAK/Menu/Overlays/TreeCots.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Overlays/TreeMission.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Menu/Overlays/TreeVector.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/Menu/Settings/TokenModal.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/Menu/Videos/VideoLeaseModal.vue.d.ts +16 -0
- package/dist/types/src/components/CloudTAK/Menu/Videos/VideosRemoteFeed.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/Notifications.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/Query/Magnetic.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Query/Reverse.vue.d.ts +8 -0
- package/dist/types/src/components/CloudTAK/Query/Sun.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/Query/Weather.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/QueryView.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/RadialMenu/RadialMenu.vue.d.ts +22 -0
- package/dist/types/src/components/CloudTAK/util/Breadcrumb.vue.d.ts +10 -0
- package/dist/types/src/components/CloudTAK/util/ChannelInfo.vue.d.ts +15 -0
- package/dist/types/src/components/CloudTAK/util/Contact.vue.d.ts +38 -0
- package/dist/types/src/components/CloudTAK/util/ContactPuck.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/Coordinate.vue.d.ts +67 -0
- package/dist/types/src/components/CloudTAK/util/CoordinateType.vue.d.ts +27 -0
- package/dist/types/src/components/CloudTAK/util/CopyButton.vue.d.ts +32 -0
- package/dist/types/src/components/CloudTAK/util/CopyField.vue.d.ts +122 -0
- package/dist/types/src/components/CloudTAK/util/DrawOverlay.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/util/EmptyInfo.vue.d.ts +24 -0
- package/dist/types/src/components/CloudTAK/util/FeatureIcon.vue.d.ts +23 -0
- package/dist/types/src/components/CloudTAK/util/FeatureRow.vue.d.ts +81 -0
- package/dist/types/src/components/CloudTAK/util/FloatingAttachment.vue.d.ts +17 -0
- package/dist/types/src/components/CloudTAK/util/FloatingGeneric.vue.d.ts +17 -0
- package/dist/types/src/components/CloudTAK/util/FloatingPane.vue.d.ts +31 -0
- package/dist/types/src/components/CloudTAK/util/FloatingVideo.vue.d.ts +27 -0
- package/dist/types/src/components/CloudTAK/util/GenericChat.vue.d.ts +34 -0
- package/dist/types/src/components/CloudTAK/util/GenericSelect.vue.d.ts +34 -0
- package/dist/types/src/components/CloudTAK/util/GroupSelect.vue.d.ts +14 -0
- package/dist/types/src/components/CloudTAK/util/Icons.vue.d.ts +24 -0
- package/dist/types/src/components/CloudTAK/util/JSONModal.vue.d.ts +27 -0
- package/dist/types/src/components/CloudTAK/util/Keywords.vue.d.ts +10 -0
- package/dist/types/src/components/CloudTAK/util/LineLength.vue.d.ts +24 -0
- package/dist/types/src/components/CloudTAK/util/MenuTemplate.vue.d.ts +89 -0
- package/dist/types/src/components/CloudTAK/util/MultipleSelect.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/NotificationIcon.vue.d.ts +10 -0
- package/dist/types/src/components/CloudTAK/util/NotificationToast.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/util/PolygonArea.vue.d.ts +24 -0
- package/dist/types/src/components/CloudTAK/util/PropertyAttachments.vue.d.ts +14 -0
- package/dist/types/src/components/CloudTAK/util/PropertyBattery.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/util/PropertyBearing.vue.d.ts +58 -0
- package/dist/types/src/components/CloudTAK/util/PropertyCreator.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/PropertyDistance.vue.d.ts +54 -0
- package/dist/types/src/components/CloudTAK/util/PropertyElevation.vue.d.ts +32 -0
- package/dist/types/src/components/CloudTAK/util/PropertyEmail.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/util/PropertyGeofence.vue.d.ts +10 -0
- package/dist/types/src/components/CloudTAK/util/PropertyLinks.vue.d.ts +14 -0
- package/dist/types/src/components/CloudTAK/util/PropertyMetadata.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/PropertyMilSym.vue.d.ts +25 -0
- package/dist/types/src/components/CloudTAK/util/PropertyPhone.vue.d.ts +13 -0
- package/dist/types/src/components/CloudTAK/util/PropertySensor.vue.d.ts +18 -0
- package/dist/types/src/components/CloudTAK/util/PropertySpeed.vue.d.ts +23 -0
- package/dist/types/src/components/CloudTAK/util/PropertyStyle.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/PropertyTimes.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/PropertyType.vue.d.ts +27 -0
- package/dist/types/src/components/CloudTAK/util/SearchBox.vue.d.ts +46 -0
- package/dist/types/src/components/CloudTAK/util/SelectFeats.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/SettingsCallsign.vue.d.ts +28 -0
- package/dist/types/src/components/CloudTAK/util/Share.vue.d.ts +14 -0
- package/dist/types/src/components/CloudTAK/util/ShareToMission.vue.d.ts +53 -0
- package/dist/types/src/components/CloudTAK/util/ShareToPackage.vue.d.ts +62 -0
- package/dist/types/src/components/CloudTAK/util/SlideDownHeader.vue.d.ts +41 -0
- package/dist/types/src/components/CloudTAK/util/StandardItem.vue.d.ts +18 -0
- package/dist/types/src/components/CloudTAK/util/Subscriptions.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/TagEntry.vue.d.ts +51 -0
- package/dist/types/src/components/CloudTAK/util/UserClientSelect.vue.d.ts +16 -0
- package/dist/types/src/components/CloudTAK/util/VideoLeaseSourceType.vue.d.ts +6 -0
- package/dist/types/src/components/CloudTAK/util/WarnChannels.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/WarnConfiguration.vue.d.ts +7 -0
- package/dist/types/src/components/Configure.vue.d.ts +3 -0
- package/dist/types/src/components/ETL/Connection/AgencyBadge.vue.d.ts +8 -0
- package/dist/types/src/components/ETL/Connection/CertificateP12.vue.d.ts +13 -0
- package/dist/types/src/components/ETL/Connection/StatusDot.vue.d.ts +13 -0
- package/dist/types/src/components/ETL/Styling/Layer.vue.d.ts +24 -0
- package/dist/types/src/components/Login.vue.d.ts +7 -0
- package/dist/types/src/components/util/GroupSelect.vue.d.ts +14 -0
- package/dist/types/src/components/util/IconSelect.vue.d.ts +29 -0
- package/dist/types/src/components/util/StatusDot.vue.d.ts +8 -0
- package/dist/types/src/components/util/Upload.vue.d.ts +46 -0
- package/dist/types/src/components/util/UploadLogo.vue.d.ts +14 -0
- package/dist/types/src/router.d.ts +3 -0
- package/dist/types/src/stores/float.d.ts +42 -0
- package/dist/types/src/stores/map.d.ts +11 -2
- package/dist/types/src/stores/modules/draw.d.ts +26 -0
- package/dist/types/src/stores/modules/menu.d.ts +7 -2
- package/dist/types/src/timediff.d.ts +1 -0
- package/dist/types/src/types.d.ts +14 -3
- package/dist/types/src/workers/atlas-breadcrumb.d.ts +65 -0
- package/dist/types/src/workers/atlas-connection.d.ts +2 -0
- package/dist/types/src/workers/atlas-database.d.ts +3 -0
- package/dist/types/src/workers/atlas-profile.d.ts +21 -16
- package/dist/types/src/workers/atlas.d.ts +1 -3
- package/package.json +27 -16
- package/dist/types/src/workers/atlas-team.d.ts +0 -13
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
2
|
+
import type { VideoConnection, Attachment } from '../types.ts';
|
|
3
|
+
export declare enum VideoStoreType {
|
|
4
|
+
COT = "cot",
|
|
5
|
+
CONNECTION = "connection"
|
|
6
|
+
}
|
|
7
|
+
export type PaneVideoConfig = {
|
|
8
|
+
type: VideoStoreType;
|
|
9
|
+
url: string;
|
|
10
|
+
};
|
|
11
|
+
export type PaneAttachmentConfig = {
|
|
12
|
+
attachment: Attachment;
|
|
13
|
+
};
|
|
14
|
+
export type PaneConfig = Record<string, unknown>;
|
|
15
|
+
export type Pane<C extends PaneConfig = PaneConfig> = {
|
|
16
|
+
uid: string;
|
|
17
|
+
name?: string;
|
|
18
|
+
component: Component;
|
|
19
|
+
config: C;
|
|
20
|
+
height: number;
|
|
21
|
+
width: number;
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
25
|
+
export declare const useFloatStore: import("pinia").StoreDefinition<"float", {
|
|
26
|
+
panes: Map<string, Pane>;
|
|
27
|
+
}, {}, {
|
|
28
|
+
delete(uid: string): void;
|
|
29
|
+
add(opts: {
|
|
30
|
+
uid: string;
|
|
31
|
+
name?: string;
|
|
32
|
+
component: Component;
|
|
33
|
+
config?: PaneConfig;
|
|
34
|
+
height?: number;
|
|
35
|
+
width?: number;
|
|
36
|
+
x?: number;
|
|
37
|
+
y?: number;
|
|
38
|
+
}): Pane;
|
|
39
|
+
addAttachment(attachment: Attachment): void;
|
|
40
|
+
addConnection(connection: VideoConnection): void;
|
|
41
|
+
addCOT(uid: string): Promise<void>;
|
|
42
|
+
}>;
|
|
@@ -9,7 +9,7 @@ import Overlay from '../base/overlay.ts';
|
|
|
9
9
|
import Subscription from '../base/subscription.ts';
|
|
10
10
|
import mapgl from 'maplibre-gl';
|
|
11
11
|
import type Atlas from '../workers/atlas.ts';
|
|
12
|
-
import type { Basemap, APIList, Feature,
|
|
12
|
+
import type { Basemap, APIList, Feature, ConfigMap } from '../types.ts';
|
|
13
13
|
import type { LngLat, Point, MapGeoJSONFeature } from 'maplibre-gl';
|
|
14
14
|
export type TAKNotification = {
|
|
15
15
|
type: string;
|
|
@@ -23,6 +23,9 @@ export declare const useMapStore: import("pinia").StoreDefinition<"cloudtak", {
|
|
|
23
23
|
_draw?: any;
|
|
24
24
|
_icons?: any;
|
|
25
25
|
_menu?: any;
|
|
26
|
+
_boundOnOnline?: () => void;
|
|
27
|
+
_boundOnOffline?: () => void;
|
|
28
|
+
_boundOnDeviceOrientation?: (event: DeviceOrientationEvent) => void;
|
|
26
29
|
db: DatabaseType;
|
|
27
30
|
channel: BroadcastChannel;
|
|
28
31
|
toImport: Feature[];
|
|
@@ -44,13 +47,16 @@ export declare const useMapStore: import("pinia").StoreDefinition<"cloudtak", {
|
|
|
44
47
|
};
|
|
45
48
|
worker: Comlink.Remote<Atlas>;
|
|
46
49
|
mission: Subscription | undefined;
|
|
47
|
-
mapConfig:
|
|
50
|
+
mapConfig: ConfigMap;
|
|
48
51
|
container?: HTMLElement;
|
|
49
52
|
hasTerrain: boolean;
|
|
53
|
+
hasSnapping: boolean;
|
|
50
54
|
hasNoChannels: boolean;
|
|
51
55
|
isTerrainEnabled: boolean;
|
|
52
56
|
isLoaded: boolean;
|
|
53
57
|
isOpen: boolean;
|
|
58
|
+
isOnline: boolean;
|
|
59
|
+
userOrientationMode: boolean;
|
|
54
60
|
pitch: number;
|
|
55
61
|
bearing: number;
|
|
56
62
|
selected: Map<string, COT>;
|
|
@@ -61,6 +67,7 @@ export declare const useMapStore: import("pinia").StoreDefinition<"cloudtak", {
|
|
|
61
67
|
y: number;
|
|
62
68
|
popup?: mapgl.Popup;
|
|
63
69
|
};
|
|
70
|
+
viewedFeature?: Feature | MapGeoJSONFeature;
|
|
64
71
|
radial: {
|
|
65
72
|
mode: string | undefined;
|
|
66
73
|
cot: Feature | MapGeoJSONFeature | undefined;
|
|
@@ -76,6 +83,8 @@ export declare const useMapStore: import("pinia").StoreDefinition<"cloudtak", {
|
|
|
76
83
|
menu: () => MenuManager;
|
|
77
84
|
}, {
|
|
78
85
|
destroy: () => void;
|
|
86
|
+
getOverlayBeforeId: () => string | undefined;
|
|
87
|
+
addOverlay: (overlay: Overlay) => void;
|
|
79
88
|
removeOverlay: (overlay: Overlay) => Promise<void>;
|
|
80
89
|
makeActiveMission: (mission?: Subscription) => Promise<void>;
|
|
81
90
|
getOverlayById(id: number): Overlay | null;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import * as terraDraw from 'terra-draw';
|
|
2
|
+
import { TerraRoute } from 'terra-route';
|
|
3
|
+
import { Routing } from 'terra-draw-route-snap-mode';
|
|
2
4
|
import type { GeoJSONFeatureId } from 'maplibre-gl';
|
|
3
5
|
import type COT from '../../base/cot.ts';
|
|
6
|
+
import type { paths } from '../../derived-types.ts';
|
|
7
|
+
type AugmentedBasemapResponse = paths['/api/basemap']['get']['responses']['200']['content']['application/json']['items'][0];
|
|
8
|
+
import type { LineString, FeatureCollection as GeoJSONFeatureCollection } from 'geojson';
|
|
4
9
|
import type { useMapStore } from '../map.ts';
|
|
5
10
|
export declare enum DrawToolMode {
|
|
6
11
|
STATIC = "static",
|
|
@@ -8,6 +13,7 @@ export declare enum DrawToolMode {
|
|
|
8
13
|
SELECT = "select",
|
|
9
14
|
POINT = "point",
|
|
10
15
|
LINESTRING = "linestring",
|
|
16
|
+
SNAPPING = "routesnap",
|
|
11
17
|
POLYGON = "polygon",
|
|
12
18
|
RECTANGLE = "angled-rectangle",
|
|
13
19
|
CIRCLE = "circle",
|
|
@@ -17,6 +23,17 @@ export default class DrawTool {
|
|
|
17
23
|
private draw;
|
|
18
24
|
editing: COT | null;
|
|
19
25
|
mode: DrawToolMode;
|
|
26
|
+
route: {
|
|
27
|
+
graph: Routing;
|
|
28
|
+
finder: TerraRoute & {
|
|
29
|
+
setNetwork: (network: GeoJSONFeatureCollection<LineString>) => void;
|
|
30
|
+
expandNetwork: (network: GeoJSONFeatureCollection<LineString>) => void;
|
|
31
|
+
};
|
|
32
|
+
tiles: Map<string, GeoJSONFeatureCollection<LineString>>;
|
|
33
|
+
zoom: number;
|
|
34
|
+
layer: string;
|
|
35
|
+
definitions: Map<string, AugmentedBasemapResponse>;
|
|
36
|
+
};
|
|
20
37
|
private mapStore;
|
|
21
38
|
snapping: Set<[number, number]>;
|
|
22
39
|
point: {
|
|
@@ -26,10 +43,19 @@ export default class DrawTool {
|
|
|
26
43
|
loading: boolean;
|
|
27
44
|
overlay: string;
|
|
28
45
|
};
|
|
46
|
+
snappingOptions: string[];
|
|
47
|
+
get snappingLayer(): string;
|
|
48
|
+
set snappingLayer(layer: string);
|
|
29
49
|
constructor(mapStore: ReturnType<typeof useMapStore>);
|
|
50
|
+
populateSnappingLayers(): Promise<void>;
|
|
51
|
+
updateGraph(opts?: {
|
|
52
|
+
expand?: boolean;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
removeNetwork(): Promise<void>;
|
|
30
55
|
start(mode: DrawToolMode): Promise<void>;
|
|
31
56
|
stop(refresh?: boolean): Promise<void>;
|
|
32
57
|
edit(cot: COT): Promise<void>;
|
|
33
58
|
getFeature(id: GeoJSONFeatureId): terraDraw.GeoJSONStoreFeatures<terraDraw.GeoJSONStoreGeometries> | undefined;
|
|
34
59
|
removeFeature(id: GeoJSONFeatureId): void;
|
|
35
60
|
}
|
|
61
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Component, Ref, ComputedRef } from "vue";
|
|
2
|
+
import type { Profile } from '../../types.ts';
|
|
2
3
|
export type MenuItemConfig = {
|
|
3
4
|
key: string;
|
|
4
5
|
label: string;
|
|
@@ -8,6 +9,7 @@ export type MenuItemConfig = {
|
|
|
8
9
|
description?: string;
|
|
9
10
|
icon: Component;
|
|
10
11
|
badge?: string;
|
|
12
|
+
visibility?: string;
|
|
11
13
|
requiresSystemAdmin?: boolean;
|
|
12
14
|
requiresAgencyAdmin?: boolean;
|
|
13
15
|
};
|
|
@@ -19,16 +21,19 @@ export default class MenuManager {
|
|
|
19
21
|
filter: Ref<string>;
|
|
20
22
|
preferredLayout: Ref<'list' | 'tiles'>;
|
|
21
23
|
onlineContactsCount: Ref<number>;
|
|
24
|
+
unreadChatsCount: Ref<number>;
|
|
22
25
|
isSystemAdmin: Ref<boolean>;
|
|
23
26
|
isAgencyAdmin: Ref<boolean>;
|
|
24
27
|
pluginMenuItems: Ref<MenuItemConfig[]>;
|
|
28
|
+
preferenceOrder: Ref<Profile['menu_order']>;
|
|
25
29
|
constructor(mapStore: any);
|
|
26
30
|
init(): Promise<void>;
|
|
27
31
|
get baseMenuItems(): MenuItemConfig[];
|
|
28
32
|
get items(): ComputedRef<MenuItemConfig[]>;
|
|
29
|
-
get
|
|
33
|
+
get filteredItems(): ComputedRef<MenuItemConfig[]>;
|
|
30
34
|
setLayout(mode: 'list' | 'tiles'): void;
|
|
31
|
-
updateContactsCount(): Promise<void>;
|
|
32
35
|
addMenuItem(item: MenuItemConfig): void;
|
|
33
36
|
removeMenuItem(key: string): void;
|
|
37
|
+
setOrder(keys: string[]): Promise<void>;
|
|
38
|
+
setVisibility(key: string, visible: "full" | "partial" | "hidden"): Promise<void>;
|
|
34
39
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (updated: string | number): string;
|
|
@@ -21,6 +21,9 @@ export type VideoLeaseProtocols = paths["/api/video/lease/{:lease}/metadata"]["g
|
|
|
21
21
|
export type VideoLeaseResponse = paths["/api/video/lease/{:lease}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
22
22
|
export type Subscription = paths["/api/marti/subscription/{:clientuid}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
23
23
|
export type Group = paths["/api/marti/group"]["get"]["responses"]["200"]["content"]["application/json"]["data"][0];
|
|
24
|
+
export type GroupChannel = Omit<Group, 'direction'> & {
|
|
25
|
+
direction: string[];
|
|
26
|
+
};
|
|
24
27
|
export type User = paths["/api/user/{:username}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
25
28
|
export type UserList = paths["/api/user"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
26
29
|
export type Contact = paths["/api/marti/api/contacts/all"]["get"]["responses"]["200"]["content"]["application/json"][0];
|
|
@@ -42,12 +45,11 @@ export type MissionLayer_Create = paths["/api/marti/missions/{:name}/layer"]["po
|
|
|
42
45
|
export type MissionLayer_Update = paths["/api/marti/missions/{:name}/layer/{:uid}"]["patch"]["requestBody"]["content"]["application/json"];
|
|
43
46
|
export type MissionLayerList = paths["/api/marti/missions/{:name}/layer"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
44
47
|
export type MissionChanges = paths["/api/marti/missions/{:name}/changes"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
48
|
+
export type MissionChange = MissionChanges["data"][0];
|
|
45
49
|
export type MissionSubscriptions = paths["/api/marti/missions/{:name}/subscriptions/roles"]["get"]["responses"]["200"]["content"]["application/json"]["data"];
|
|
46
50
|
export type Server_Update = paths["/api/server"]["patch"]["requestBody"]["content"]["application/json"];
|
|
47
51
|
export type Server = paths["/api/server"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
48
|
-
export type MapConfig = paths["/api/config/map"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
49
52
|
export type Login = paths["/api/login"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
50
|
-
export type LoginConfig = paths["/api/config/login"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
51
53
|
export type Login_Create = paths["/api/login"]["post"]["requestBody"]["content"]["application/json"];
|
|
52
54
|
export type Login_CreateRes = paths["/api/login"]["post"]["responses"]["200"]["content"]["application/json"];
|
|
53
55
|
export type Import = paths["/api/import/{:import}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
@@ -57,9 +59,10 @@ export type PackageList = paths["/api/marti/package"]["get"]["responses"]["200"]
|
|
|
57
59
|
export type ServerAdminVideoList = paths["/api/server/video"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
58
60
|
export type Iconset = paths["/api/iconset/{:iconset}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
59
61
|
export type IconsetList = paths["/api/iconset"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
62
|
+
export type Icon = paths["/api/iconset/{:iconset}/icon/{:icon}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
63
|
+
export type IconList = paths["/api/icon"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
60
64
|
export type AttachmentList = paths["/api/attachment"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
61
65
|
export type Attachment = paths["/api/attachment"]["get"]["responses"]["200"]["content"]["application/json"]["items"][0];
|
|
62
|
-
export type ConfigGroups = paths["/api/config/group"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
63
66
|
export type TileJSON = paths["/api/basemap/{:basemapid}/tiles"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
64
67
|
export type Basemap = paths["/api/basemap/{:basemapid}"]["patch"]["responses"]["200"]["content"]["application/json"];
|
|
65
68
|
export type BasemapList = paths["/api/basemap"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
@@ -90,6 +93,8 @@ export type PaletteList = paths["/api/palette"]["get"]["responses"]["200"]["cont
|
|
|
90
93
|
export type PaletteFeature = paths["/api/palette/{:palette}/feature/{:feature}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
91
94
|
export type MissionTemplate = paths["/api/template/mission/{:mission}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
92
95
|
export type MissionTemplateList = paths["/api/template/mission"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
96
|
+
export type MissionTemplateLog = paths["/api/template/mission/{:mission}/log/{:log}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
97
|
+
export type MissionTemplateLogList = paths["/api/template/mission/{:mission}/log"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
93
98
|
export type Profile = paths["/api/profile"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
94
99
|
export type Profile_Update = paths["/api/profile"]["patch"]["requestBody"]["content"]["application/json"];
|
|
95
100
|
export type ProfileChatroomList = paths["/api/profile/chatroom"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
@@ -127,6 +132,8 @@ export type ProfileOverlay = paths["/api/profile/overlay/{:overlay}"]["get"]["re
|
|
|
127
132
|
export type ProfileOverlayList = paths["/api/profile/overlay"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
128
133
|
export type ProfileOverlay_Create = paths["/api/profile/overlay"]["post"]["requestBody"]["content"]["application/json"];
|
|
129
134
|
export type ProfileOverlay_Update = paths["/api/profile/overlay/{:overlay}"]["patch"]["requestBody"]["content"]["application/json"];
|
|
135
|
+
export type ProfileTokenList = paths["/api/profile/token"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
136
|
+
export type ProfileToken = ProfileTokenList["items"][0];
|
|
130
137
|
export type SearchReverse = paths["/api/search/reverse/{:longitude}/{:latitude}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
131
138
|
export type ETLLdapChannel = paths["/api/ldap/channel"]["get"]["responses"]["200"]["content"]["application/json"]["items"][0];
|
|
132
139
|
export type ETLLdapChannelList = paths["/api/ldap/channel"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
@@ -156,3 +163,7 @@ export type ETLRawTaskList = {
|
|
|
156
163
|
items: Record<string, string[]>;
|
|
157
164
|
};
|
|
158
165
|
export type ETLTaskVersions = paths["/api/task/raw/{:task}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
166
|
+
export type Config = paths["/api/config"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
167
|
+
export type ConfigLogin = paths["/api/config/login"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
168
|
+
export type ConfigMap = paths["/api/config/map"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
169
|
+
export type ConfigGroups = paths["/api/config/group"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type COT from '../base/cot.ts';
|
|
2
|
+
import type AtlasDatabase from './atlas-database.ts';
|
|
3
|
+
export default class AtlasBreadcrumb {
|
|
4
|
+
db: AtlasDatabase;
|
|
5
|
+
enabled: Set<string>;
|
|
6
|
+
pending: Map<string, number[]>;
|
|
7
|
+
constructor(db: AtlasDatabase);
|
|
8
|
+
/**
|
|
9
|
+
* Enable or disable live breadcrumb trail recording for a given CoT UID.
|
|
10
|
+
* When enabled, each incoming Point position update for that UID will
|
|
11
|
+
* incrementally extend a companion LineString stored under the ID
|
|
12
|
+
* `<uid>.track`.
|
|
13
|
+
*
|
|
14
|
+
* @param uid - The CoT UID to toggle
|
|
15
|
+
* @param enabled - True to start recording, false to stop (trail is kept)
|
|
16
|
+
*/
|
|
17
|
+
set(uid: string, enabled: boolean): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Returns whether live breadcrumb recording is currently enabled for the given UID
|
|
20
|
+
*/
|
|
21
|
+
get(uid: string): Promise<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Returns all CoT UIDs that currently have live breadcrumb recording enabled.
|
|
24
|
+
* Queries the persistent Dexie store so the result survives page reloads.
|
|
25
|
+
*/
|
|
26
|
+
listEnabled(): Promise<string[]>;
|
|
27
|
+
/**
|
|
28
|
+
* On startup, restore all persisted breadcrumb LineStrings from Dexie
|
|
29
|
+
* into the in-memory cots Map so they are rendered on the map.
|
|
30
|
+
* Also restores the in-memory `enabled` Set from entries that have live: true.
|
|
31
|
+
*/
|
|
32
|
+
load(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Build the InputFeature used to add/update a breadcrumb in the cots Map.
|
|
35
|
+
*/
|
|
36
|
+
private _buildFeature;
|
|
37
|
+
/**
|
|
38
|
+
* Merge a set of historical coordinates into the `<uid>.track` LineString.
|
|
39
|
+
* Historical coordinates are prepended so the trail reads oldest → newest.
|
|
40
|
+
*
|
|
41
|
+
* Handles both orderings:
|
|
42
|
+
*
|
|
43
|
+
* • History loaded first, live enabled later — no existing track yet.
|
|
44
|
+
* The history seeds the LineString. If live was already enabled and one
|
|
45
|
+
* position has been buffered in `pending` (waiting for a second coord to
|
|
46
|
+
* form the initial LineString) it is flushed to the end of the seed so it
|
|
47
|
+
* is not lost. Subsequent live positions are appended normally by update().
|
|
48
|
+
* Note: if significant time passes between the last historical position and
|
|
49
|
+
* the first live position the rendered trail will include a straight
|
|
50
|
+
* connecting line across that gap — a LineString cannot represent breaks. *
|
|
51
|
+
* • Live enabled first, history loaded later — existing track already
|
|
52
|
+
* contains live positions. History is prepended. Any single pending coord
|
|
53
|
+
* is never reachable here (the status of pending is irrelevant once a
|
|
54
|
+
* track LineString exists).
|
|
55
|
+
*
|
|
56
|
+
* @param uid - The CoT UID whose trail should be updated
|
|
57
|
+
* @param coordinates - Ordered array of [lng, lat] (or [lng, lat, alt]) positions
|
|
58
|
+
*/
|
|
59
|
+
merge(uid: string, coordinates: number[][]): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Called after every add() to extend the breadcrumb LineString for a Point
|
|
62
|
+
* feature whose UID is in `enabled`.
|
|
63
|
+
*/
|
|
64
|
+
update(cot: COT): Promise<void>;
|
|
65
|
+
}
|
|
@@ -4,8 +4,10 @@ export default class AtlasConnection {
|
|
|
4
4
|
isDestroyed: boolean;
|
|
5
5
|
isOpen: boolean;
|
|
6
6
|
ws: WebSocket | undefined;
|
|
7
|
+
reconnectAttempts: number;
|
|
7
8
|
version: string;
|
|
8
9
|
constructor(atlas: Atlas);
|
|
10
|
+
reconnect(connection: string): void;
|
|
9
11
|
connect(connection: string): void;
|
|
10
12
|
destroy(): void;
|
|
11
13
|
sendCOT(data: object, type?: string): void;
|
|
@@ -3,6 +3,8 @@ import COT from '../base/cot.ts';
|
|
|
3
3
|
import type { GeoJSONSourceDiff } from 'maplibre-gl';
|
|
4
4
|
import type { Polygon } from 'geojson';
|
|
5
5
|
import type { InputFeature, Feature } from '../types.ts';
|
|
6
|
+
import * as Comlink from 'comlink';
|
|
7
|
+
import AtlasBreadcrumb from './atlas-breadcrumb.ts';
|
|
6
8
|
type NestedArray = {
|
|
7
9
|
path: string;
|
|
8
10
|
count: number;
|
|
@@ -18,6 +20,7 @@ export default class AtlasDatabase {
|
|
|
18
20
|
pendingUnhide: Set<string>;
|
|
19
21
|
pendingDelete: Set<string>;
|
|
20
22
|
subscriptionPending: Map<string, string>;
|
|
23
|
+
breadcrumb: AtlasBreadcrumb & Comlink.ProxyMarked;
|
|
21
24
|
constructor(atlas: Atlas);
|
|
22
25
|
makeActiveMission(guid?: string): Promise<void>;
|
|
23
26
|
/**
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type Atlas from './atlas.ts';
|
|
2
2
|
import { LocationState } from '../base/events.ts';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
3
|
+
import type { GroupChannel, Server, Profile_Update, FeaturePropertyCreator } from '../types.ts';
|
|
4
|
+
import ProfileConfig from '../base/profile.ts';
|
|
5
|
+
export type ProfileLocationState = {
|
|
5
6
|
source: LocationState;
|
|
6
7
|
accuracy: number | undefined;
|
|
7
8
|
altitude: number | null | undefined;
|
|
@@ -10,29 +11,33 @@ export type ProfileLocation = {
|
|
|
10
11
|
export default class AtlasProfile {
|
|
11
12
|
atlas: Atlas;
|
|
12
13
|
timerSelf: ReturnType<typeof setInterval> | undefined;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
profile: Profile | null;
|
|
14
|
+
username: string | null;
|
|
15
|
+
location: ProfileLocationState;
|
|
16
16
|
server: Server | null;
|
|
17
|
+
profile_type?: ProfileConfig<'tak_type'>;
|
|
18
|
+
profile_callsign?: ProfileConfig<'tak_callsign'>;
|
|
19
|
+
profile_remarks?: ProfileConfig<'tak_remarks'>;
|
|
20
|
+
profile_group?: ProfileConfig<'tak_group'>;
|
|
21
|
+
profile_role?: ProfileConfig<'tak_role'>;
|
|
22
|
+
profile_loc?: ProfileConfig<'tak_loc'>;
|
|
23
|
+
profile_loc_freq?: ProfileConfig<'tak_loc_freq'>;
|
|
24
|
+
profile_created?: ProfileConfig<'created'>;
|
|
25
|
+
profile_updated?: ProfileConfig<'updated'>;
|
|
17
26
|
constructor(atlas: Atlas);
|
|
18
27
|
init(): Promise<string>;
|
|
19
|
-
username(): Promise<string>;
|
|
20
28
|
creator(): Promise<FeaturePropertyCreator>;
|
|
21
|
-
callsign(): Promise<string>;
|
|
22
|
-
isSystemAdmin(): Promise<boolean>;
|
|
23
|
-
isAgencyAdmin(): Promise<boolean>;
|
|
24
29
|
hasNoConfiguration(): boolean;
|
|
25
|
-
hasNoChannels(): boolean
|
|
30
|
+
hasNoChannels(): Promise<boolean>;
|
|
26
31
|
destroy(): void;
|
|
27
32
|
setupTimer(): void;
|
|
28
33
|
loadServer(): Promise<Server>;
|
|
29
|
-
load(): Promise<
|
|
34
|
+
load(): Promise<void>;
|
|
30
35
|
updateLocation(): void;
|
|
31
|
-
setChannel(name: string, active: boolean): Promise<Array<
|
|
32
|
-
setAllChannels(active: boolean): Promise<Array<
|
|
33
|
-
updateChannels(channels: Array<
|
|
34
|
-
postChannelStatus(): void
|
|
35
|
-
loadChannels(): Promise<Array<
|
|
36
|
+
setChannel(name: string, active: boolean): Promise<Array<GroupChannel>>;
|
|
37
|
+
setAllChannels(active: boolean): Promise<Array<GroupChannel>>;
|
|
38
|
+
updateChannels(channels: Array<GroupChannel>): Promise<Array<GroupChannel>>;
|
|
39
|
+
postChannelStatus(): Promise<void>;
|
|
40
|
+
loadChannels(): Promise<Array<GroupChannel>>;
|
|
36
41
|
update(body: Profile_Update): Promise<void>;
|
|
37
42
|
uid(): string;
|
|
38
43
|
CoT(coords?: number[], accuracy?: number, altitude?: number | null): Promise<void>;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { WorkerMessage } from '../base/events.ts';
|
|
2
2
|
import * as Comlink from 'comlink';
|
|
3
3
|
import AtlasProfile from './atlas-profile.ts';
|
|
4
|
-
import AtlasTeam from './atlas-team.ts';
|
|
5
4
|
import AtlasDatabase from './atlas-database.ts';
|
|
6
5
|
import AtlasConnection from './atlas-connection.ts';
|
|
7
6
|
export default class Atlas {
|
|
8
7
|
channel: BroadcastChannel;
|
|
9
|
-
sync: BroadcastChannel;
|
|
10
8
|
token: string;
|
|
9
|
+
username: string;
|
|
11
10
|
db: AtlasDatabase & Comlink.ProxyMarked;
|
|
12
|
-
team: AtlasTeam & Comlink.ProxyMarked;
|
|
13
11
|
conn: AtlasConnection & Comlink.ProxyMarked;
|
|
14
12
|
profile: AtlasProfile & Comlink.ProxyMarked;
|
|
15
13
|
constructor();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tak-ps/cloudtak",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "12.
|
|
4
|
+
"version": "12.102.0",
|
|
5
5
|
"types": "dist/types/plugin.d.ts",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist/types"
|
|
@@ -20,32 +20,39 @@
|
|
|
20
20
|
"check": "vue-tsc",
|
|
21
21
|
"build:types": "vue-tsc -p tsconfig.build.json",
|
|
22
22
|
"build": "vite build",
|
|
23
|
-
"lint": "eslint ./src/ ./public/ ./plugins/",
|
|
23
|
+
"lint": "eslint --config eslint.config.js ./src/ ./public/ ./plugins/",
|
|
24
24
|
"test": "exit 0"
|
|
25
25
|
},
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "git+https://github.com/dfpc-coe/CloudTAK.git"
|
|
29
|
+
},
|
|
26
30
|
"dependencies": {
|
|
31
|
+
"@mapbox/tile-cover": "^3.0.2",
|
|
27
32
|
"@react-hookz/deep-equal": "^3.0.3",
|
|
28
33
|
"@tabler/core": "^1.4.0",
|
|
29
34
|
"@tabler/icons-vue": "^3.0.0",
|
|
30
|
-
"@tak-ps/node-cot": "^14.
|
|
31
|
-
"@tak-ps/vue-tabler": "^4.
|
|
35
|
+
"@tak-ps/node-cot": "^14.20.0",
|
|
36
|
+
"@tak-ps/vue-tabler": "^4.5.0",
|
|
32
37
|
"@turf/area": "^7.2.0",
|
|
33
38
|
"@turf/bbox": "^7.1.0",
|
|
34
39
|
"@turf/boolean-point-in-polygon": "^7.3.1",
|
|
35
40
|
"@turf/boolean-touches": "^7.1.0",
|
|
36
41
|
"@turf/boolean-within": "^7.1.0",
|
|
42
|
+
"@turf/buffer": "^7.3.4",
|
|
37
43
|
"@turf/destination": "^7.2.0",
|
|
38
44
|
"@turf/distance": "^7.2.0",
|
|
39
45
|
"@turf/ellipse": "^7.2.0",
|
|
40
46
|
"@turf/envelope": "^7.1.0",
|
|
41
47
|
"@turf/length": "^7.2.0",
|
|
48
|
+
"@turf/line-split": "^7.3.4",
|
|
42
49
|
"@turf/meta": "^7.2.0",
|
|
50
|
+
"@turf/nearest-point-on-line": "^7.3.4",
|
|
43
51
|
"@turf/point-on-feature": "^7.0.0",
|
|
44
|
-
"@vueuse/core": "^
|
|
52
|
+
"@vueuse/core": "^14.0.0",
|
|
45
53
|
"autosize": "^6.0.1",
|
|
46
54
|
"comlink": "^4.4.2",
|
|
47
55
|
"cronstrue": "^3.0.0",
|
|
48
|
-
"deep-equal": "^2.2.3",
|
|
49
56
|
"dexie": "^4.2.1",
|
|
50
57
|
"dropzone": "^6.0.0-beta.2",
|
|
51
58
|
"floating-vue": "^2.0.0-beta.17",
|
|
@@ -54,10 +61,10 @@
|
|
|
54
61
|
"hls.js": "^1.6.5",
|
|
55
62
|
"imask": "^6.0.0",
|
|
56
63
|
"jsonata": "^2.0.4",
|
|
57
|
-
"maplibre-gl": "
|
|
64
|
+
"maplibre-gl": "5.19.0",
|
|
58
65
|
"milsymbol": "^3.0.2",
|
|
59
66
|
"moment": "^2.29.3",
|
|
60
|
-
"openapi-fetch": "^0.
|
|
67
|
+
"openapi-fetch": "^0.17.0",
|
|
61
68
|
"p12-pem": "^1.0.5",
|
|
62
69
|
"phone": "^3.1.59",
|
|
63
70
|
"pinia": "^3.0.0",
|
|
@@ -66,32 +73,36 @@
|
|
|
66
73
|
"swagger-ui-dist": "^5.30.2",
|
|
67
74
|
"terra-draw": "^1.22.0",
|
|
68
75
|
"terra-draw-maplibre-gl-adapter": "^1.1.1",
|
|
76
|
+
"terra-draw-route-snap-mode": "^0.4.1",
|
|
77
|
+
"terra-route": "^0.0.14",
|
|
69
78
|
"uuid": "^13.0.0",
|
|
70
79
|
"vue": "^3.2.31",
|
|
71
80
|
"vue-component-type-helpers": "^3.0.7",
|
|
72
81
|
"vue-mention": "^2.0.0-alpha.3",
|
|
73
|
-
"vue-router": "^
|
|
82
|
+
"vue-router": "^5.0.0",
|
|
83
|
+
"yaml": "^2.8.2"
|
|
74
84
|
},
|
|
75
85
|
"devDependencies": {
|
|
76
|
-
"@eslint/js": "^
|
|
86
|
+
"@eslint/js": "^10.0.0",
|
|
77
87
|
"@testing-library/vue": "^8.1.0",
|
|
88
|
+
"@types/mapbox__tile-cover": "^3.0.4",
|
|
78
89
|
"@types/sortablejs": "^1.15.8",
|
|
79
90
|
"@types/swagger-ui": "^5.21.1",
|
|
80
91
|
"@vitejs/plugin-vue": "^6.0.0",
|
|
81
|
-
"@vitest/ui": "
|
|
92
|
+
"@vitest/ui": "4.1.0",
|
|
82
93
|
"@vue/test-utils": "^2.4.6",
|
|
83
94
|
"@vueuse/rxjs": "^14.1.0",
|
|
84
|
-
"
|
|
85
|
-
"eslint": "^9.0.0",
|
|
95
|
+
"eslint": "^10.0.0",
|
|
86
96
|
"eslint-plugin-vue": "^10.0.0",
|
|
97
|
+
"globals": "^17.3.0",
|
|
87
98
|
"happy-dom": "^20.0.0",
|
|
88
|
-
"jsdom": "^
|
|
99
|
+
"jsdom": "^28.0.0",
|
|
89
100
|
"openapi-typescript": "^7.0.0",
|
|
90
101
|
"sass-embedded": "^1.86.0",
|
|
91
102
|
"typescript": "^5.7.0",
|
|
92
103
|
"typescript-eslint": "^8.20.0",
|
|
93
|
-
"vite": "
|
|
94
|
-
"vitest": "
|
|
104
|
+
"vite": "8.0.0",
|
|
105
|
+
"vitest": "4.1.0",
|
|
95
106
|
"vue-tsc": "^3.0.0-alpha.10"
|
|
96
107
|
},
|
|
97
108
|
"browserslist": [
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type Atlas from './atlas.ts';
|
|
2
|
-
import type COT from '../base/cot.ts';
|
|
3
|
-
import type { Contact } from '../types.ts';
|
|
4
|
-
export default class AtlasTeam {
|
|
5
|
-
atlas: Atlas;
|
|
6
|
-
contacts: Map<string, Contact>;
|
|
7
|
-
constructor(atlas: Atlas);
|
|
8
|
-
init(): Promise<void>;
|
|
9
|
-
set(cot: COT): Promise<Contact>;
|
|
10
|
-
get(uid: string): Promise<Contact | undefined>;
|
|
11
|
-
getByCallsign(callsign: string): Promise<Contact | undefined>;
|
|
12
|
-
load(): Promise<Map<string, Contact>>;
|
|
13
|
-
}
|