@tak-ps/cloudtak 12.54.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/README.md +34 -0
- package/dist/types/plugin.d.ts +99 -0
- package/dist/types/src/App.vue.d.ts +5 -0
- package/dist/types/src/base/chatroom-chats.d.ts +17 -0
- package/dist/types/src/base/chatroom.d.ts +47 -0
- package/dist/types/src/base/cot.d.ts +94 -0
- package/dist/types/src/base/database.d.ts +115 -0
- package/dist/types/src/base/events.d.ts +30 -0
- package/dist/types/src/base/filter.d.ts +41 -0
- package/dist/types/src/base/handler.d.ts +11 -0
- package/dist/types/src/base/icon.d.ts +4 -0
- package/dist/types/src/base/notification.d.ts +37 -0
- package/dist/types/src/base/overlay.d.ts +94 -0
- package/dist/types/src/base/subscription-feature.d.ts +49 -0
- package/dist/types/src/base/subscription-log.d.ts +32 -0
- package/dist/types/src/base/subscription.d.ts +115 -0
- package/dist/types/src/base/utils/styles.d.ts +11 -0
- package/dist/types/src/base/validators.d.ts +9 -0
- package/dist/types/src/components/Admin/AdminImports.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminLayers.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminMissionTemplate.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminMissionTemplateLog.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminMissionTemplates.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminOverlays.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminPalette.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminPaletteFeature.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminPalettes.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminServer.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminTasks.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminUser.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminUsers.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/AdminVideos.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Server/ServerConnection.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Server/ServerInjectorModal.vue.d.ts +11 -0
- package/dist/types/src/components/Admin/Server/ServerInjectors.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Server/ServerPackages.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Server/ServerRepeaters.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Server/ServerVideos.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Tasks/AdminRawTasks.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Videos/AdminVideoLeases.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Videos/AdminVideoService.vue.d.ts +3 -0
- package/dist/types/src/components/Admin/Videos/VideoConfig.vue.d.ts +7 -0
- package/dist/types/src/components/Admin/Videos/VideoConfigPort.vue.d.ts +8 -0
- package/dist/types/src/components/CloudTAK/CoTView.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/CoordInput.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/DrawTools.vue.d.ts +3 -0
- package/dist/types/src/components/CloudTAK/FeatView.vue.d.ts +8 -0
- package/dist/types/src/components/CloudTAK/GeoJSONInput.vue.d.ts +24 -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/Debugger.vue.d.ts +3 -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/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/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/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 +101 -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/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/MissionContents.vue.d.ts +11 -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/MissionInviteModal.vue.d.ts +17 -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 +8 -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/MissionTimeline.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/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/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/RangeInput.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/RangeRingsInput.vue.d.ts +7 -0
- package/dist/types/src/components/CloudTAK/util/Breadcrumb.vue.d.ts +6 -0
- package/dist/types/src/components/CloudTAK/util/ChannelInfo.vue.d.ts +15 -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/FloatingVideo.vue.d.ts +27 -0
- package/dist/types/src/components/CloudTAK/util/GroupSelect.vue.d.ts +14 -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 +6 -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 +71 -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/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/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/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 +37 -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/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/ConnectionFiles.vue.d.ts +3 -0
- package/dist/types/src/components/ETL/Connection/ConnectionTokens.vue.d.ts +3 -0
- package/dist/types/src/components/ETL/Connection/ConnectionVideos.vue.d.ts +3 -0
- package/dist/types/src/components/ETL/Connection/StatusDot.vue.d.ts +13 -0
- package/dist/types/src/components/ETL/Connection/TokenModal.vue.d.ts +16 -0
- package/dist/types/src/components/ETL/Connection.vue.d.ts +3 -0
- package/dist/types/src/components/ETL/ConnectionCard.vue.d.ts +16 -0
- package/dist/types/src/components/ETL/Connections.vue.d.ts +3 -0
- package/dist/types/src/components/ETL/Data.vue.d.ts +3 -0
- package/dist/types/src/components/ETL/Layer/LayerIncomingConfig.vue.d.ts +27 -0
- package/dist/types/src/components/ETL/Layer/LayerOutgoingConfig.vue.d.ts +27 -0
- package/dist/types/src/components/ETL/Layer/utils/QueryInput.vue.d.ts +56 -0
- package/dist/types/src/components/ETL/Layer/utils/StatusDot.vue.d.ts +7 -0
- package/dist/types/src/components/ETL/Layer.vue.d.ts +3 -0
- package/dist/types/src/components/Home.vue.d.ts +13 -0
- package/dist/types/src/components/Loading.vue.d.ts +3 -0
- package/dist/types/src/components/Login.vue.d.ts +7 -0
- package/dist/types/src/components/LostUser.vue.d.ts +3 -0
- package/dist/types/src/components/PageFooter.vue.d.ts +3 -0
- package/dist/types/src/components/ServerAdmin.vue.d.ts +3 -0
- package/dist/types/src/components/VideoWall/Main.vue.d.ts +3 -0
- package/dist/types/src/components/VideoWall.vue.d.ts +13 -0
- package/dist/types/src/components/util/GroupSelect.vue.d.ts +14 -0
- package/dist/types/src/components/util/InitialAuthor.vue.d.ts +6 -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/main.d.ts +1 -0
- package/dist/types/src/pages/admin/main.d.ts +1 -0
- package/dist/types/src/pages/connection/main.d.ts +1 -0
- package/dist/types/src/pages/docs/App.vue.d.ts +4 -0
- package/dist/types/src/pages/docs/main.d.ts +1 -0
- package/dist/types/src/pages/video/main.d.ts +1 -0
- package/dist/types/src/std.d.ts +19 -0
- package/dist/types/src/stores/brand.d.ts +7 -0
- package/dist/types/src/stores/float.d.ts +42 -0
- package/dist/types/src/stores/map.d.ts +115 -0
- package/dist/types/src/stores/modules/draw.d.ts +35 -0
- package/dist/types/src/stores/modules/icons.d.ts +38 -0
- package/dist/types/src/stores/modules/menu.d.ts +34 -0
- package/dist/types/src/test/setup.d.ts +1 -0
- package/dist/types/src/timediff.d.ts +1 -0
- package/dist/types/src/types.d.ts +158 -0
- package/dist/types/src/video.d.ts +1 -0
- package/dist/types/src/workers/atlas-connection.d.ts +12 -0
- package/dist/types/src/workers/atlas-database.d.ts +134 -0
- package/dist/types/src/workers/atlas-profile.d.ts +39 -0
- package/dist/types/src/workers/atlas-team.d.ts +13 -0
- package/dist/types/src/workers/atlas.d.ts +19 -0
- package/package.json +97 -0
- package/src/App.vue +341 -0
- package/src/base/chatroom-chats.ts +124 -0
- package/src/base/chatroom.ts +202 -0
- package/src/base/cot.ts +625 -0
- package/src/base/database.ts +150 -0
- package/src/base/events.ts +43 -0
- package/src/base/filter.ts +163 -0
- package/src/base/handler.ts +67 -0
- package/src/base/icon.ts +16 -0
- package/src/base/notification.ts +163 -0
- package/src/base/overlay.ts +558 -0
- package/src/base/subscription-feature.ts +224 -0
- package/src/base/subscription-log.ts +174 -0
- package/src/base/subscription.ts +489 -0
- package/src/base/utils/styles.ts +430 -0
- package/src/base/validators.ts +66 -0
- package/src/components/Admin/AdminConfig.vue +487 -0
- package/src/components/Admin/AdminConnections.vue +195 -0
- package/src/components/Admin/AdminDatas.vue +165 -0
- package/src/components/Admin/AdminExport.vue +121 -0
- package/src/components/Admin/AdminImports.vue +222 -0
- package/src/components/Admin/AdminLayerTemplate.vue +91 -0
- package/src/components/Admin/AdminLayers.vue +301 -0
- package/src/components/Admin/AdminMissionTemplate.vue +259 -0
- package/src/components/Admin/AdminMissionTemplateLog.vue +273 -0
- package/src/components/Admin/AdminMissionTemplates.vue +189 -0
- package/src/components/Admin/AdminOverlays.vue +232 -0
- package/src/components/Admin/AdminOverlaysEdit.vue +355 -0
- package/src/components/Admin/AdminPalette.vue +214 -0
- package/src/components/Admin/AdminPaletteFeature.vue +208 -0
- package/src/components/Admin/AdminPalettes.vue +189 -0
- package/src/components/Admin/AdminServer.vue +143 -0
- package/src/components/Admin/AdminTasks.vue +60 -0
- package/src/components/Admin/AdminUser.vue +263 -0
- package/src/components/Admin/AdminUsers.vue +183 -0
- package/src/components/Admin/AdminVideos.vue +60 -0
- package/src/components/Admin/Server/ServerConnection.vue +322 -0
- package/src/components/Admin/Server/ServerInjectorModal.vue +125 -0
- package/src/components/Admin/Server/ServerInjectors.vue +104 -0
- package/src/components/Admin/Server/ServerPackages.vue +159 -0
- package/src/components/Admin/Server/ServerRepeaters.vue +105 -0
- package/src/components/Admin/Server/ServerVideos.vue +83 -0
- package/src/components/Admin/Tasks/AdminRawTasks.vue +148 -0
- package/src/components/Admin/Tasks/AdminTasks.vue +286 -0
- package/src/components/Admin/Videos/AdminVideoLeases.vue +198 -0
- package/src/components/Admin/Videos/AdminVideoService.vue +67 -0
- package/src/components/Admin/Videos/VideoConfig.vue +132 -0
- package/src/components/Admin/Videos/VideoConfigPath.vue +58 -0
- package/src/components/Admin/Videos/VideoConfigPort.vue +40 -0
- package/src/components/CloudTAK/CoTView.vue +915 -0
- package/src/components/CloudTAK/CoordInput.vue +110 -0
- package/src/components/CloudTAK/DrawTools.vue +200 -0
- package/src/components/CloudTAK/FeatView.vue +242 -0
- package/src/components/CloudTAK/GeoJSONInput.vue +226 -0
- package/src/components/CloudTAK/MainMenu.vue +190 -0
- package/src/components/CloudTAK/MainMenuContents.vue +360 -0
- package/src/components/CloudTAK/Map.vue +972 -0
- package/src/components/CloudTAK/MapLoading.vue +31 -0
- package/src/components/CloudTAK/Menu/Basemaps/EditModal.vue +427 -0
- package/src/components/CloudTAK/Menu/Debugger.vue +118 -0
- package/src/components/CloudTAK/Menu/Iconset/EditModal.vue +118 -0
- package/src/components/CloudTAK/Menu/MenuBasemaps.vue +410 -0
- package/src/components/CloudTAK/Menu/MenuChannels.vue +206 -0
- package/src/components/CloudTAK/Menu/MenuChat.vue +222 -0
- package/src/components/CloudTAK/Menu/MenuChats.vue +167 -0
- package/src/components/CloudTAK/Menu/MenuConnections.vue +166 -0
- package/src/components/CloudTAK/Menu/MenuContacts.vue +245 -0
- package/src/components/CloudTAK/Menu/MenuFeatures.vue +718 -0
- package/src/components/CloudTAK/Menu/MenuFeaturesDeleted.vue +217 -0
- package/src/components/CloudTAK/Menu/MenuFiles.vue +433 -0
- package/src/components/CloudTAK/Menu/MenuIcon.vue +236 -0
- package/src/components/CloudTAK/Menu/MenuIconset.vue +128 -0
- package/src/components/CloudTAK/Menu/MenuIconsets.vue +266 -0
- package/src/components/CloudTAK/Menu/MenuImport.vue +198 -0
- package/src/components/CloudTAK/Menu/MenuImports.vue +199 -0
- package/src/components/CloudTAK/Menu/MenuItemCard.vue +240 -0
- package/src/components/CloudTAK/Menu/MenuMission.vue +324 -0
- package/src/components/CloudTAK/Menu/MenuMissions.vue +334 -0
- package/src/components/CloudTAK/Menu/MenuOverlayExplorer.vue +434 -0
- package/src/components/CloudTAK/Menu/MenuOverlays.vue +560 -0
- package/src/components/CloudTAK/Menu/MenuPackage.vue +340 -0
- package/src/components/CloudTAK/Menu/MenuPackages.vue +193 -0
- package/src/components/CloudTAK/Menu/MenuRoutes.vue +186 -0
- package/src/components/CloudTAK/Menu/MenuRoutesNew.vue +193 -0
- package/src/components/CloudTAK/Menu/MenuSettings.vue +95 -0
- package/src/components/CloudTAK/Menu/MenuSettingsCallsign.vue +12 -0
- package/src/components/CloudTAK/Menu/MenuSettingsDisplay.vue +144 -0
- package/src/components/CloudTAK/Menu/MenuSettingsTokens.vue +83 -0
- package/src/components/CloudTAK/Menu/MenuVideos.vue +436 -0
- package/src/components/CloudTAK/Menu/MenuVideosRemote.vue +203 -0
- package/src/components/CloudTAK/Menu/Mission/MissionContents.vue +211 -0
- package/src/components/CloudTAK/Menu/Mission/MissionCreate.vue +372 -0
- package/src/components/CloudTAK/Menu/Mission/MissionInfo.vue +331 -0
- package/src/components/CloudTAK/Menu/Mission/MissionInviteModal.vue +107 -0
- package/src/components/CloudTAK/Menu/Mission/MissionLayerCreate.vue +77 -0
- package/src/components/CloudTAK/Menu/Mission/MissionLayerEdit.vue +77 -0
- package/src/components/CloudTAK/Menu/Mission/MissionLayerTree.vue +194 -0
- package/src/components/CloudTAK/Menu/Mission/MissionLayers.vue +157 -0
- package/src/components/CloudTAK/Menu/Mission/MissionLog.vue +170 -0
- package/src/components/CloudTAK/Menu/Mission/MissionLogs.vue +194 -0
- package/src/components/CloudTAK/Menu/Mission/MissionTimeline.vue +142 -0
- package/src/components/CloudTAK/Menu/Mission/MissionUsers.vue +74 -0
- package/src/components/CloudTAK/Menu/Mission/PendingInvites.vue +130 -0
- package/src/components/CloudTAK/Menu/Overlays/DeleteModal.vue +57 -0
- package/src/components/CloudTAK/Menu/Overlays/TreeCots.vue +497 -0
- package/src/components/CloudTAK/Menu/Overlays/TreeMission.vue +32 -0
- package/src/components/CloudTAK/Menu/Overlays/TreeVector.vue +113 -0
- package/src/components/CloudTAK/Menu/Settings/TokenModal.vue +110 -0
- package/src/components/CloudTAK/Menu/Videos/VideoLeaseModal.vue +753 -0
- package/src/components/CloudTAK/Menu/Videos/VideosRemoteFeed.vue +75 -0
- package/src/components/CloudTAK/Notifications.vue +195 -0
- package/src/components/CloudTAK/Query/Magnetic.vue +80 -0
- package/src/components/CloudTAK/Query/Reverse.vue +65 -0
- package/src/components/CloudTAK/Query/Sun.vue +178 -0
- package/src/components/CloudTAK/Query/Weather.vue +195 -0
- package/src/components/CloudTAK/QueryView.vue +134 -0
- package/src/components/CloudTAK/RadialMenu/LICENSE +21 -0
- package/src/components/CloudTAK/RadialMenu/README.md +63 -0
- package/src/components/CloudTAK/RadialMenu/RadialMenu.css +85 -0
- package/src/components/CloudTAK/RadialMenu/RadialMenu.js +534 -0
- package/src/components/CloudTAK/RadialMenu/RadialMenu.vue +257 -0
- package/src/components/CloudTAK/RangeInput.vue +155 -0
- package/src/components/CloudTAK/RangeRingsInput.vue +269 -0
- package/src/components/CloudTAK/util/Breadcrumb.vue +85 -0
- package/src/components/CloudTAK/util/ChannelInfo.vue +25 -0
- package/src/components/CloudTAK/util/Contact.vue +131 -0
- package/src/components/CloudTAK/util/ContactPuck.vue +40 -0
- package/src/components/CloudTAK/util/Coordinate.vue +313 -0
- package/src/components/CloudTAK/util/CoordinateType.vue +134 -0
- package/src/components/CloudTAK/util/CopyButton.vue +67 -0
- package/src/components/CloudTAK/util/CopyField.vue +286 -0
- package/src/components/CloudTAK/util/DrawOverlay.vue +254 -0
- package/src/components/CloudTAK/util/EmptyInfo.vue +71 -0
- package/src/components/CloudTAK/util/FeatureIcon.vue +134 -0
- package/src/components/CloudTAK/util/FeatureRow.vue +206 -0
- package/src/components/CloudTAK/util/FloatingAttachment.vue +191 -0
- package/src/components/CloudTAK/util/FloatingVideo.vue +654 -0
- package/src/components/CloudTAK/util/GenericSelect.vue +125 -0
- package/src/components/CloudTAK/util/GroupSelect.vue +129 -0
- package/src/components/CloudTAK/util/Icons.vue +146 -0
- package/src/components/CloudTAK/util/JSONModal.vue +57 -0
- package/src/components/CloudTAK/util/Keywords.vue +31 -0
- package/src/components/CloudTAK/util/LineLength.vue +121 -0
- package/src/components/CloudTAK/util/MenuItem.vue +21 -0
- package/src/components/CloudTAK/util/MenuTemplate.vue +137 -0
- package/src/components/CloudTAK/util/MultipleSelect.vue +103 -0
- package/src/components/CloudTAK/util/NotificationIcon.vue +50 -0
- package/src/components/CloudTAK/util/NotificationToast.vue +125 -0
- package/src/components/CloudTAK/util/PolygonArea.vue +109 -0
- package/src/components/CloudTAK/util/PropertyAttachments.vue +224 -0
- package/src/components/CloudTAK/util/PropertyBattery.vue +44 -0
- package/src/components/CloudTAK/util/PropertyBearing.vue +148 -0
- package/src/components/CloudTAK/util/PropertyCreator.vue +61 -0
- package/src/components/CloudTAK/util/PropertyDistance.vue +182 -0
- package/src/components/CloudTAK/util/PropertyElevation.vue +84 -0
- package/src/components/CloudTAK/util/PropertyEmail.vue +44 -0
- package/src/components/CloudTAK/util/PropertyLinks.vue +148 -0
- package/src/components/CloudTAK/util/PropertyMetadata.vue +53 -0
- package/src/components/CloudTAK/util/PropertyMilSym.vue +62 -0
- package/src/components/CloudTAK/util/PropertyPhone.vue +61 -0
- package/src/components/CloudTAK/util/PropertySensor.vue +129 -0
- package/src/components/CloudTAK/util/PropertySpeed.vue +91 -0
- package/src/components/CloudTAK/util/PropertyStyle.vue +202 -0
- package/src/components/CloudTAK/util/PropertyTimes.vue +95 -0
- package/src/components/CloudTAK/util/PropertyType.vue +274 -0
- package/src/components/CloudTAK/util/SearchBox.vue +314 -0
- package/src/components/CloudTAK/util/SelectFeats.vue +190 -0
- package/src/components/CloudTAK/util/SettingsCallsign.vue +151 -0
- package/src/components/CloudTAK/util/Share.vue +496 -0
- package/src/components/CloudTAK/util/ShareToMission.vue +223 -0
- package/src/components/CloudTAK/util/ShareToPackage.vue +250 -0
- package/src/components/CloudTAK/util/SlideDownHeader.vue +92 -0
- package/src/components/CloudTAK/util/StandardItem.vue +42 -0
- package/src/components/CloudTAK/util/Subscriptions.vue +151 -0
- package/src/components/CloudTAK/util/TagEntry.vue +301 -0
- package/src/components/CloudTAK/util/UploadImport.vue +195 -0
- package/src/components/CloudTAK/util/VideoLeaseSourceType.vue +66 -0
- package/src/components/CloudTAK/util/WarnChannels.vue +56 -0
- package/src/components/CloudTAK/util/WarnConfiguration.vue +34 -0
- package/src/components/Configure.vue +259 -0
- package/src/components/ETL/Connection/AgencyBadge.vue +102 -0
- package/src/components/ETL/Connection/AgencySelect.vue +185 -0
- package/src/components/ETL/Connection/CertificateLogin.vue +75 -0
- package/src/components/ETL/Connection/CertificateMachineUser.vue +228 -0
- package/src/components/ETL/Connection/CertificateP12.vue +104 -0
- package/src/components/ETL/Connection/CertificateRaw.vue +50 -0
- package/src/components/ETL/Connection/ConnectionData.vue +174 -0
- package/src/components/ETL/Connection/ConnectionFiles.vue +182 -0
- package/src/components/ETL/Connection/ConnectionGroups.vue +181 -0
- package/src/components/ETL/Connection/ConnectionLayer.vue +180 -0
- package/src/components/ETL/Connection/ConnectionTokens.vue +147 -0
- package/src/components/ETL/Connection/ConnectionVideos.vue +151 -0
- package/src/components/ETL/Connection/Events.vue +88 -0
- package/src/components/ETL/Connection/StatusDot.vue +48 -0
- package/src/components/ETL/Connection/TokenModal.vue +136 -0
- package/src/components/ETL/Connection.vue +194 -0
- package/src/components/ETL/ConnectionCard.vue +265 -0
- package/src/components/ETL/ConnectionEdit.vue +448 -0
- package/src/components/ETL/Connections.vue +148 -0
- package/src/components/ETL/Data/DataFiles.vue +245 -0
- package/src/components/ETL/Data/DataGroups.vue +45 -0
- package/src/components/ETL/Data/DataLayer.vue +144 -0
- package/src/components/ETL/Data/Location.vue +238 -0
- package/src/components/ETL/Data.vue +259 -0
- package/src/components/ETL/DataEdit.vue +212 -0
- package/src/components/ETL/Layer/LayerAlarm.vue +307 -0
- package/src/components/ETL/Layer/LayerDeployment.vue +388 -0
- package/src/components/ETL/Layer/LayerEnvironment.vue +259 -0
- package/src/components/ETL/Layer/LayerIncomingConfig.vue +401 -0
- package/src/components/ETL/Layer/LayerIncomingEnvironmentArcGIS.vue +354 -0
- package/src/components/ETL/Layer/LayerIncomingSchema.vue +138 -0
- package/src/components/ETL/Layer/LayerIncomingStyles.vue +349 -0
- package/src/components/ETL/Layer/LayerOutgoingConfig.vue +204 -0
- package/src/components/ETL/Layer/LayerOutgoingEnvironmentArcGIS.vue +279 -0
- package/src/components/ETL/Layer/utils/QueryInput.vue +52 -0
- package/src/components/ETL/Layer/utils/Schema.vue +322 -0
- package/src/components/ETL/Layer/utils/SchemaModal.vue +77 -0
- package/src/components/ETL/Layer/utils/StatusDot.vue +38 -0
- package/src/components/ETL/Layer/utils/StyleLinkModal.vue +83 -0
- package/src/components/ETL/Layer/utils/StyleLinks.vue +139 -0
- package/src/components/ETL/Layer/utils/StyleSingle.vue +885 -0
- package/src/components/ETL/Layer/utils/StyleTemplate.vue +97 -0
- package/src/components/ETL/Layer/utils/TaskModal.vue +217 -0
- package/src/components/ETL/Layer.vue +560 -0
- package/src/components/ETL/LayerEdit.vue +276 -0
- package/src/components/ETL/Styling/Layer.vue +311 -0
- package/src/components/ETL/Styling/ObjectInput.vue +46 -0
- package/src/components/ETL/Styling/Style.vue +233 -0
- package/src/components/Home.vue +17 -0
- package/src/components/Loading.vue +42 -0
- package/src/components/Login.vue +198 -0
- package/src/components/LostUser.vue +31 -0
- package/src/components/PageFooter.vue +41 -0
- package/src/components/ServerAdmin.vue +408 -0
- package/src/components/VideoWall/Main.vue +79 -0
- package/src/components/VideoWall.vue +17 -0
- package/src/components/util/DataSelect.vue +148 -0
- package/src/components/util/EsriFilter.vue +140 -0
- package/src/components/util/EsriPortal.vue +422 -0
- package/src/components/util/EsriPortalCreate.vue +72 -0
- package/src/components/util/EsriServer.vue +368 -0
- package/src/components/util/GroupSelect.vue +166 -0
- package/src/components/util/IconSelect.vue +302 -0
- package/src/components/util/InitialAuthor.vue +28 -0
- package/src/components/util/LayerSelect.vue +162 -0
- package/src/components/util/LayerTaskSelect.vue +311 -0
- package/src/components/util/LayerTemplateSelect.vue +173 -0
- package/src/components/util/LoginModal.vue +110 -0
- package/src/components/util/PublicTilesSelect.vue +171 -0
- package/src/components/util/StatusDot.vue +31 -0
- package/src/components/util/TableFooter.vue +64 -0
- package/src/components/util/TableHeader.vue +127 -0
- package/src/components/util/Upload.vue +220 -0
- package/src/components/util/UploadCSV.vue +46 -0
- package/src/components/util/UploadLogo.vue +83 -0
- package/src/components/util/UploadP12.vue +93 -0
- package/src/components/util/UserSelect.vue +151 -0
- package/src/derived-types.d.ts +35243 -0
- package/src/main.ts +264 -0
- package/src/pages/admin/main.ts +208 -0
- package/src/pages/connection/main.ts +158 -0
- package/src/pages/docs/App.vue +19 -0
- package/src/pages/docs/main.ts +6 -0
- package/src/pages/video/main.ts +27 -0
- package/src/std.ts +152 -0
- package/src/stores/brand.ts +28 -0
- package/src/stores/float.ts +113 -0
- package/src/stores/map.ts +931 -0
- package/src/stores/modules/draw.ts +413 -0
- package/src/stores/modules/icons.ts +185 -0
- package/src/stores/modules/menu.ts +281 -0
- package/src/test/setup.ts +43 -0
- package/src/timediff.ts +33 -0
- package/src/types.ts +226 -0
- package/src/video.ts +27 -0
- package/src/vite-env.d.ts +9 -0
- package/src/workers/atlas-connection.ts +236 -0
- package/src/workers/atlas-database.ts +764 -0
- package/src/workers/atlas-profile.ts +374 -0
- package/src/workers/atlas-team.ts +90 -0
- package/src/workers/atlas.ts +81 -0
package/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# TAK-PS-Stats Web UI
|
|
2
|
+
|
|
3
|
+
## Project setup
|
|
4
|
+
```
|
|
5
|
+
npm install
|
|
6
|
+
```
|
|
7
|
+
|
|
8
|
+
### Compiles and hot-reloads for development
|
|
9
|
+
```
|
|
10
|
+
npm run serve
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Compiles and minifies for production
|
|
14
|
+
```
|
|
15
|
+
npm run build
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Lints and fixes files
|
|
19
|
+
```
|
|
20
|
+
npm run lint
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Generated TypeScript Definiton File
|
|
24
|
+
|
|
25
|
+
The WebUI TypeScript definitions are built directly from the Swagger output of the server.
|
|
26
|
+
With the server running locally on port 5001, run the following
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
npm run typegen
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Customize configuration
|
|
33
|
+
|
|
34
|
+
See [Configuration Reference](https://cli.vuejs.org/config/).
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { App } from 'vue';
|
|
2
|
+
import type { Router, RouteRecordRaw } from 'vue-router';
|
|
3
|
+
import type { Pinia } from 'pinia';
|
|
4
|
+
import type { MenuItemConfig } from './src/stores/modules/menu.ts';
|
|
5
|
+
import { type DBFeature } from './src/base/database.ts';
|
|
6
|
+
import { type Observable } from 'rxjs';
|
|
7
|
+
import mapgl from 'maplibre-gl';
|
|
8
|
+
export type { MenuItemConfig };
|
|
9
|
+
export interface PluginInstance {
|
|
10
|
+
/**
|
|
11
|
+
* Called after `install` if the server has the plugin enabled by default
|
|
12
|
+
* or if the user has opted in to the plugin functionality
|
|
13
|
+
*/
|
|
14
|
+
enable(): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Called if the user disables the plugin, the plugin must
|
|
17
|
+
* remove all functionality from the user facing app
|
|
18
|
+
*/
|
|
19
|
+
disable(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export interface PluginStatic {
|
|
22
|
+
/**
|
|
23
|
+
* Hook called on init, note the plugin should not make itself
|
|
24
|
+
* usable unless enable() is called.
|
|
25
|
+
*/
|
|
26
|
+
install(app: App, api: PluginAPI): PluginInstance | Promise<PluginInstance>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The Main Plugin API for managing CloudTAK UI functions
|
|
30
|
+
*/
|
|
31
|
+
export declare class PluginAPI {
|
|
32
|
+
/**
|
|
33
|
+
* The Vue App instance
|
|
34
|
+
*/
|
|
35
|
+
app: App;
|
|
36
|
+
/**
|
|
37
|
+
* The Vue Router instance
|
|
38
|
+
*/
|
|
39
|
+
router: Router;
|
|
40
|
+
/**
|
|
41
|
+
* The Pinia Store instance
|
|
42
|
+
*/
|
|
43
|
+
pinia: Pinia;
|
|
44
|
+
/**
|
|
45
|
+
* @param app The Vue App instance
|
|
46
|
+
* @param router The Vue Router instance
|
|
47
|
+
* @param pinia The Pinia Store instance
|
|
48
|
+
*/
|
|
49
|
+
constructor(app: App, router: Router, pinia: Pinia);
|
|
50
|
+
/**
|
|
51
|
+
* Manage the Main Menu
|
|
52
|
+
*/
|
|
53
|
+
get menu(): {
|
|
54
|
+
/**
|
|
55
|
+
* Add a new item to the main menu
|
|
56
|
+
* @param item The menu item configuration
|
|
57
|
+
*/
|
|
58
|
+
add: (item: MenuItemConfig) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Remove an item from the main menu
|
|
61
|
+
* @param key The key of the menu item to remove
|
|
62
|
+
*/
|
|
63
|
+
remove: (key: string) => void;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Manage Application Routes
|
|
67
|
+
*/
|
|
68
|
+
get routes(): {
|
|
69
|
+
/**
|
|
70
|
+
* Add a new route to the application
|
|
71
|
+
* @param route The route configuration
|
|
72
|
+
* @param parentName The name of the parent route to add this route to (optional)
|
|
73
|
+
*/
|
|
74
|
+
add: (route: RouteRecordRaw, parentName?: string) => void;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Map Accessors
|
|
78
|
+
*/
|
|
79
|
+
get map(): mapgl.Map;
|
|
80
|
+
/**
|
|
81
|
+
* Manage Features
|
|
82
|
+
*/
|
|
83
|
+
get feature(): {
|
|
84
|
+
/**
|
|
85
|
+
* List features from the local database
|
|
86
|
+
* @param opts Filter options
|
|
87
|
+
*/
|
|
88
|
+
list: (opts?: {
|
|
89
|
+
filter?: (feature: DBFeature) => boolean;
|
|
90
|
+
}) => Promise<DBFeature[]>;
|
|
91
|
+
/**
|
|
92
|
+
* Stream features from the local database
|
|
93
|
+
* @param opts Filter options
|
|
94
|
+
*/
|
|
95
|
+
stream: (opts?: {
|
|
96
|
+
filter?: (feature: DBFeature) => boolean;
|
|
97
|
+
}) => Observable<DBFeature[]>;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import '@tabler/core/dist/js/tabler.min.js';
|
|
2
|
+
import '@tabler/core/dist/css/tabler.min.css';
|
|
3
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
4
|
+
declare const _default: typeof __VLS_export;
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { DBChatroomChat } from './database.ts';
|
|
2
|
+
import type Atlas from '../workers/atlas.ts';
|
|
3
|
+
export default class ChatroomChats {
|
|
4
|
+
chatroom: string;
|
|
5
|
+
constructor(chatroom: string);
|
|
6
|
+
refresh(): Promise<void>;
|
|
7
|
+
list(opts?: {
|
|
8
|
+
refresh?: boolean;
|
|
9
|
+
}): Promise<Array<DBChatroomChat>>;
|
|
10
|
+
send(message: string, sender: {
|
|
11
|
+
uid: string;
|
|
12
|
+
callsign: string;
|
|
13
|
+
}, worker: Atlas, recipient?: {
|
|
14
|
+
uid: string;
|
|
15
|
+
callsign: string;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DBChatroom } from './database.ts';
|
|
2
|
+
import ChatroomChats from './chatroom-chats.ts';
|
|
3
|
+
import type { ProfileChatroomList, ProfileChatList } from '../types.ts';
|
|
4
|
+
/**
|
|
5
|
+
* High Level Wrapper around the Profile Chatroom API
|
|
6
|
+
*
|
|
7
|
+
* @property {string} name - The name of the chatroom
|
|
8
|
+
*/
|
|
9
|
+
export default class Chatroom {
|
|
10
|
+
name: string;
|
|
11
|
+
chats: ChatroomChats;
|
|
12
|
+
constructor(name: string);
|
|
13
|
+
/**
|
|
14
|
+
* Return a Chatroom instance if one already exists in the local DB,
|
|
15
|
+
*/
|
|
16
|
+
static from(name: string): Promise<Chatroom | undefined>;
|
|
17
|
+
/**
|
|
18
|
+
* Loads an existing Chatroom from the local DB and refresh it,
|
|
19
|
+
*
|
|
20
|
+
* @param name - The unique identifier for the chatroom
|
|
21
|
+
* @param opts - Options for loading the chatroom
|
|
22
|
+
* @param opts.reload - Whether to reload the chatroom from the local DB
|
|
23
|
+
*/
|
|
24
|
+
static load(name: string, opts?: {
|
|
25
|
+
reload?: boolean;
|
|
26
|
+
}): Promise<Chatroom>;
|
|
27
|
+
static delete(names: string[]): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Reload the Chatroom from the local Database
|
|
30
|
+
*/
|
|
31
|
+
reload(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Perform a hard refresh of the Chatroom from the Server
|
|
34
|
+
*/
|
|
35
|
+
refresh(): Promise<void>;
|
|
36
|
+
fetch(): Promise<void>;
|
|
37
|
+
getChats(): Promise<ProfileChatList>;
|
|
38
|
+
deleteChats(ids: string[]): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* List all locally stored chatrooms
|
|
41
|
+
*/
|
|
42
|
+
static localList(): Promise<Set<{
|
|
43
|
+
name: string;
|
|
44
|
+
}>>;
|
|
45
|
+
static list(filter?: string): Promise<DBChatroom[]>;
|
|
46
|
+
static sync(): Promise<ProfileChatroomList>;
|
|
47
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { Remote } from 'comlink';
|
|
2
|
+
import type Atlas from '../workers/atlas.ts';
|
|
3
|
+
import type { Feature, Subscription } from '../types.ts';
|
|
4
|
+
import type { BBox as GeoJSONBBox, Feature as GeoJSONFeature, Geometry as GeoJSONGeometry } from 'geojson';
|
|
5
|
+
export interface Origin {
|
|
6
|
+
mode: OriginMode;
|
|
7
|
+
mode_id?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare enum OriginMode {
|
|
10
|
+
CONNECTION = "Connection",
|
|
11
|
+
MISSION = "Mission"
|
|
12
|
+
}
|
|
13
|
+
export declare const RENDERED_PROPERTIES: string[];
|
|
14
|
+
export default class COT {
|
|
15
|
+
id: string;
|
|
16
|
+
instance: string;
|
|
17
|
+
_path: string;
|
|
18
|
+
_properties: Feature["properties"];
|
|
19
|
+
_geometry: Feature["geometry"];
|
|
20
|
+
_remote: BroadcastChannel | null;
|
|
21
|
+
_atlas: Atlas | Remote<Atlas>;
|
|
22
|
+
_username?: string;
|
|
23
|
+
origin: Origin;
|
|
24
|
+
static load(atlas: Atlas, feat: Feature, origin?: Origin, opts?: {
|
|
25
|
+
skipSave?: boolean;
|
|
26
|
+
remote?: boolean;
|
|
27
|
+
}): Promise<COT>;
|
|
28
|
+
constructor(atlas: Atlas | Remote<Atlas>, feat: Feature, origin?: Origin, opts?: {
|
|
29
|
+
skipSave?: boolean;
|
|
30
|
+
remote?: boolean;
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Begin listening for remote updates
|
|
34
|
+
* This is a seperate function due to the issues outlined in: https://stackoverflow.com/q/70184129
|
|
35
|
+
*/
|
|
36
|
+
reactivity(): void;
|
|
37
|
+
set path(path: string);
|
|
38
|
+
get path(): string;
|
|
39
|
+
set properties(properties: Feature["properties"]);
|
|
40
|
+
get properties(): Feature["properties"];
|
|
41
|
+
set geometry(geometry: Feature["geometry"]);
|
|
42
|
+
get geometry(): Feature["geometry"];
|
|
43
|
+
/**
|
|
44
|
+
* Update the COT and return a boolean as to whether the COT needs to be re-rendered
|
|
45
|
+
*/
|
|
46
|
+
update(update: {
|
|
47
|
+
path?: string;
|
|
48
|
+
properties?: Feature["properties"];
|
|
49
|
+
geometry?: Feature["geometry"];
|
|
50
|
+
}, opts?: {
|
|
51
|
+
skipSave?: boolean;
|
|
52
|
+
}): Promise<boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* Attempt to save the CoT to the database if necessary
|
|
55
|
+
*/
|
|
56
|
+
save(): Promise<void>;
|
|
57
|
+
get is_skittle(): boolean;
|
|
58
|
+
get is_self(): boolean;
|
|
59
|
+
get is_archivable(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Determines if the COT type allows editing
|
|
62
|
+
* But does not determine if a COT is part of a Misison Sync, if the mission allows editing
|
|
63
|
+
*/
|
|
64
|
+
get is_editable(): boolean;
|
|
65
|
+
subscription(): Promise<Subscription>;
|
|
66
|
+
username(): Promise<string>;
|
|
67
|
+
/**
|
|
68
|
+
* Returns a proxy that will correctly call the internal update function if changes are made
|
|
69
|
+
* Warning: Cannot be used with Vue3's reactivity system
|
|
70
|
+
*/
|
|
71
|
+
as_proxy(): COT;
|
|
72
|
+
as_feature(opts?: {
|
|
73
|
+
clone?: boolean;
|
|
74
|
+
}): Feature;
|
|
75
|
+
as_rendered(): GeoJSONFeature<GeoJSONGeometry, Record<string, unknown>>;
|
|
76
|
+
/**
|
|
77
|
+
* The slimmer we can get the Features, the better
|
|
78
|
+
* This returns the minium feature we need to actually style the COT in the vector tiles
|
|
79
|
+
*/
|
|
80
|
+
static as_rendered(input: Feature): GeoJSONFeature<GeoJSONGeometry, Record<string, unknown>>;
|
|
81
|
+
vectorId(): number;
|
|
82
|
+
/**
|
|
83
|
+
* string hash function to convert the COT ID into a number for use as a vector tile feature ID
|
|
84
|
+
*/
|
|
85
|
+
static vectorId(id: string): number;
|
|
86
|
+
length(): number;
|
|
87
|
+
bounds(): GeoJSONBBox;
|
|
88
|
+
flyTo(): Promise<void>;
|
|
89
|
+
static style(feat: Feature): Promise<Feature>;
|
|
90
|
+
/**
|
|
91
|
+
* Consistent feature manipulation between add & update
|
|
92
|
+
*/
|
|
93
|
+
static styleProperties(type: string, properties: Feature["properties"]): Promise<Feature["properties"]>;
|
|
94
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import Dexie, { type EntityTable } from 'dexie';
|
|
2
|
+
import type { Feature, Mission, MissionRole } from '../types.ts';
|
|
3
|
+
export interface DBIcon {
|
|
4
|
+
name: string;
|
|
5
|
+
}
|
|
6
|
+
export interface DBFeature {
|
|
7
|
+
id: string;
|
|
8
|
+
path: string;
|
|
9
|
+
properties: Feature["properties"];
|
|
10
|
+
geometry: Feature["geometry"];
|
|
11
|
+
}
|
|
12
|
+
export interface DBChatroom {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
created: string;
|
|
16
|
+
updated: string;
|
|
17
|
+
last_read: string | null;
|
|
18
|
+
}
|
|
19
|
+
export interface DBChatroomChat {
|
|
20
|
+
id: string;
|
|
21
|
+
chatroom: string;
|
|
22
|
+
sender: string;
|
|
23
|
+
sender_uid: string;
|
|
24
|
+
message: string;
|
|
25
|
+
created: string;
|
|
26
|
+
}
|
|
27
|
+
export interface DBIconset {
|
|
28
|
+
uid: string;
|
|
29
|
+
created: string;
|
|
30
|
+
updated: string;
|
|
31
|
+
version: number;
|
|
32
|
+
name: string;
|
|
33
|
+
username: string | null;
|
|
34
|
+
default_group: string | null;
|
|
35
|
+
default_friendly: string | null;
|
|
36
|
+
default_hostile: string | null;
|
|
37
|
+
default_neutral: string | null;
|
|
38
|
+
default_unknown: string | null;
|
|
39
|
+
skip_resize: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface DBFilter {
|
|
42
|
+
id: string;
|
|
43
|
+
external: string;
|
|
44
|
+
name: string;
|
|
45
|
+
source: string;
|
|
46
|
+
internal: boolean;
|
|
47
|
+
query: string;
|
|
48
|
+
}
|
|
49
|
+
export declare enum NotificationType {
|
|
50
|
+
Contact = "Contact",
|
|
51
|
+
Import = "Import",
|
|
52
|
+
Alert = "Alert",
|
|
53
|
+
Medical = "Medical",
|
|
54
|
+
Mission = "Mission",
|
|
55
|
+
Chat = "Chat"
|
|
56
|
+
}
|
|
57
|
+
export interface DBNotification {
|
|
58
|
+
id: string;
|
|
59
|
+
type: NotificationType;
|
|
60
|
+
name: string;
|
|
61
|
+
body: string;
|
|
62
|
+
url: string;
|
|
63
|
+
toast: boolean;
|
|
64
|
+
read: boolean;
|
|
65
|
+
created: string;
|
|
66
|
+
}
|
|
67
|
+
export interface DBVideo {
|
|
68
|
+
id: string;
|
|
69
|
+
created: string;
|
|
70
|
+
updated: string;
|
|
71
|
+
lease: number;
|
|
72
|
+
username: string;
|
|
73
|
+
}
|
|
74
|
+
export interface DBSubscriptionFeature {
|
|
75
|
+
id: string;
|
|
76
|
+
path: string;
|
|
77
|
+
mission: string;
|
|
78
|
+
properties: Feature["properties"];
|
|
79
|
+
geometry: Feature["geometry"];
|
|
80
|
+
}
|
|
81
|
+
export interface DBSubscription {
|
|
82
|
+
guid: string;
|
|
83
|
+
name: string;
|
|
84
|
+
meta: Mission;
|
|
85
|
+
role: MissionRole;
|
|
86
|
+
token?: string;
|
|
87
|
+
dirty: boolean;
|
|
88
|
+
subscribed: boolean;
|
|
89
|
+
}
|
|
90
|
+
export interface DBSubscriptionLog {
|
|
91
|
+
id: string;
|
|
92
|
+
dtg?: string;
|
|
93
|
+
missionNames: string[];
|
|
94
|
+
created: string;
|
|
95
|
+
servertime: string;
|
|
96
|
+
mission: string;
|
|
97
|
+
content: string;
|
|
98
|
+
creatorUid: string;
|
|
99
|
+
contentHashes: unknown[];
|
|
100
|
+
keywords: string[];
|
|
101
|
+
}
|
|
102
|
+
export type DatabaseType = Dexie & {
|
|
103
|
+
icon: EntityTable<DBIcon, 'name'>;
|
|
104
|
+
iconset: EntityTable<DBIconset, 'uid'>;
|
|
105
|
+
video: EntityTable<DBVideo, 'id'>;
|
|
106
|
+
filter: EntityTable<DBFilter, 'id'>;
|
|
107
|
+
feature: EntityTable<DBFeature, 'id'>;
|
|
108
|
+
chatroom: EntityTable<DBChatroom, 'id'>;
|
|
109
|
+
chatroom_chats: EntityTable<DBChatroomChat, 'id'>;
|
|
110
|
+
notification: EntityTable<DBNotification, 'id'>;
|
|
111
|
+
subscription: EntityTable<DBSubscription, 'guid'>;
|
|
112
|
+
subscription_log: EntityTable<DBSubscriptionLog, 'id'>;
|
|
113
|
+
subscription_feature: EntityTable<DBSubscriptionFeature, 'id'>;
|
|
114
|
+
};
|
|
115
|
+
export declare const db: DatabaseType;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare enum WorkerMessageType {
|
|
2
|
+
Map_FlyTo = "cloudtak:map:flyto",
|
|
3
|
+
Map_FitBounds = "cloudtak:map:fitbounds",
|
|
4
|
+
Map_Projection = "cloudtak:map:projection",
|
|
5
|
+
Profile_Callsign = "cloudtak:profile:callsign",
|
|
6
|
+
Profile_Display_Zoom = "cloudtak:profile:display:zoom",
|
|
7
|
+
Profile_Icon_Rotation = "cloudtak:profile:icon:rotation",
|
|
8
|
+
Profile_Distance_Unit = "cloudtak:profile:distance:unit",
|
|
9
|
+
Profile_Location_Coordinates = "cloudtak:profile:location:coordinates",
|
|
10
|
+
Profile_Location_Source = "cloudtak:profile:location:source",
|
|
11
|
+
Feature_Archived_Added = "cloudtak:feature:archived:added",
|
|
12
|
+
Feature_Archived_Removed = "cloudtak:feature:archived:removed",
|
|
13
|
+
Channels_None = "channels:none",
|
|
14
|
+
Channels_List = "channels:list",
|
|
15
|
+
Contact_Change = "contact:change",
|
|
16
|
+
Connection_Open = "connection:open",
|
|
17
|
+
Connection_Close = "connection:close",
|
|
18
|
+
Mission_Change_Feature = "mission:change:feature",
|
|
19
|
+
Mission_Invite = "mission:invite"
|
|
20
|
+
}
|
|
21
|
+
export type WorkerMessage = {
|
|
22
|
+
type: WorkerMessageType;
|
|
23
|
+
body?: any;
|
|
24
|
+
};
|
|
25
|
+
export declare enum LocationState {
|
|
26
|
+
Loading = 0,
|
|
27
|
+
Disabled = 1,
|
|
28
|
+
Preset = 2,
|
|
29
|
+
Live = 3
|
|
30
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Feature } from '../types.ts';
|
|
2
|
+
import jsonata from 'jsonata';
|
|
3
|
+
/**
|
|
4
|
+
* High Level Wrapper around the Data Filters
|
|
5
|
+
*
|
|
6
|
+
* TODO: Once all COTs are in IndexDB, apply the filter on to a new field in the COT
|
|
7
|
+
* called "filtered": [ <filterid>, ... ] so we don't have to re-evaluate the filter each time
|
|
8
|
+
*
|
|
9
|
+
* @property {string} id - The unique identifier for the filter
|
|
10
|
+
* @property {string} external - The external ID of the filter
|
|
11
|
+
* @property {string} name - The name of the filter
|
|
12
|
+
* @property {string} source - The source of the filter
|
|
13
|
+
* @property {boolean} internal - Whether the filter is internal
|
|
14
|
+
* @property {string} query - The JSONata query string for the filter
|
|
15
|
+
*/
|
|
16
|
+
export default class Filter {
|
|
17
|
+
id: string;
|
|
18
|
+
external: string;
|
|
19
|
+
name: string;
|
|
20
|
+
source: string;
|
|
21
|
+
internal: boolean;
|
|
22
|
+
query: string;
|
|
23
|
+
expression: jsonata.Expression;
|
|
24
|
+
constructor(name: string, external: string, source: string, internal: boolean, query: string);
|
|
25
|
+
test(feature: Feature): Promise<boolean>;
|
|
26
|
+
static list(): Promise<Filter[]>;
|
|
27
|
+
static from(id: string): Promise<Filter | null>;
|
|
28
|
+
update(body: {
|
|
29
|
+
name?: string;
|
|
30
|
+
external?: string;
|
|
31
|
+
source?: string;
|
|
32
|
+
internal?: boolean;
|
|
33
|
+
query?: string;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
static create(name: string, external: string, source: string, internal: boolean, query: string): Promise<Filter>;
|
|
36
|
+
delete(): Promise<void>;
|
|
37
|
+
static delete(id: {
|
|
38
|
+
id?: string;
|
|
39
|
+
external?: string;
|
|
40
|
+
}): Promise<void>;
|
|
41
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import COT from '../base/cot.ts';
|
|
2
|
+
import type Atlas from '../workers/atlas.ts';
|
|
3
|
+
import type { Remote, TransferHandler } from 'comlink';
|
|
4
|
+
import type { Feature } from '../types.ts';
|
|
5
|
+
export declare class CloudTAKTransferHandler {
|
|
6
|
+
atlas: Atlas | Remote<Atlas>;
|
|
7
|
+
remote: boolean;
|
|
8
|
+
constructor(atlas: Atlas | Remote<Atlas>, transferHandlers: Map<string, TransferHandler<unknown, unknown>>, remote: boolean);
|
|
9
|
+
cots: TransferHandler<Set<COT>, Array<Feature>>;
|
|
10
|
+
cot: TransferHandler<COT, Feature>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { NotificationType } from './database.ts';
|
|
2
|
+
import type { DBNotification } from './database.ts';
|
|
3
|
+
export { NotificationType };
|
|
4
|
+
export default class TAKNotification {
|
|
5
|
+
id: string;
|
|
6
|
+
type: NotificationType;
|
|
7
|
+
name: string;
|
|
8
|
+
body: string;
|
|
9
|
+
url: string;
|
|
10
|
+
created: string;
|
|
11
|
+
toast: boolean;
|
|
12
|
+
read: boolean;
|
|
13
|
+
constructor(id: string, type: NotificationType, name: string, body: string, url: string, opts?: {
|
|
14
|
+
read?: boolean;
|
|
15
|
+
toast?: boolean;
|
|
16
|
+
created?: string;
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Return a Notification instance if one already exists in the local DB,
|
|
20
|
+
*/
|
|
21
|
+
static from(id: string): Promise<TAKNotification | null>;
|
|
22
|
+
static create(type: NotificationType, name: string, body: string, url: string, toast?: boolean): Promise<TAKNotification>;
|
|
23
|
+
static update(id: string, opts: {
|
|
24
|
+
read?: boolean;
|
|
25
|
+
toast?: boolean;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
update(opts: {
|
|
28
|
+
read?: boolean;
|
|
29
|
+
toast?: boolean;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
popup(): Promise<void>;
|
|
32
|
+
static clear(): Promise<void>;
|
|
33
|
+
static delete(id: string): Promise<void>;
|
|
34
|
+
delete(): Promise<void>;
|
|
35
|
+
static count(): Promise<number>;
|
|
36
|
+
static list(): Promise<DBNotification[]>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { ProfileOverlay, ProfileOverlay_Create } from '../types.ts';
|
|
2
|
+
import type { LayerSpecification } from 'maplibre-gl';
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
*/
|
|
6
|
+
export default class Overlay {
|
|
7
|
+
_destroyed: boolean;
|
|
8
|
+
_internal: boolean;
|
|
9
|
+
_timer: ReturnType<typeof setInterval> | null;
|
|
10
|
+
_clickable: Array<{
|
|
11
|
+
id: string;
|
|
12
|
+
type: string;
|
|
13
|
+
}>;
|
|
14
|
+
_error?: Error;
|
|
15
|
+
_loaded: boolean;
|
|
16
|
+
id: number;
|
|
17
|
+
name: string;
|
|
18
|
+
active: boolean;
|
|
19
|
+
username?: string;
|
|
20
|
+
frequency: number | null;
|
|
21
|
+
iconset: string | null;
|
|
22
|
+
created: string;
|
|
23
|
+
updated: string;
|
|
24
|
+
pos: number;
|
|
25
|
+
type: string;
|
|
26
|
+
opacity: number;
|
|
27
|
+
visible: boolean;
|
|
28
|
+
mode: string;
|
|
29
|
+
mode_id: string | null;
|
|
30
|
+
actions: ProfileOverlay["actions"];
|
|
31
|
+
url?: string;
|
|
32
|
+
styles: Array<LayerSpecification>;
|
|
33
|
+
token: string | null;
|
|
34
|
+
static create(body: ProfileOverlay | ProfileOverlay_Create, opts?: {
|
|
35
|
+
internal?: boolean;
|
|
36
|
+
skipSave?: boolean;
|
|
37
|
+
clickable?: Array<{
|
|
38
|
+
id: string;
|
|
39
|
+
type: string;
|
|
40
|
+
}>;
|
|
41
|
+
before?: string;
|
|
42
|
+
skipLayers?: boolean;
|
|
43
|
+
}): Promise<Overlay>;
|
|
44
|
+
static internal(body: {
|
|
45
|
+
id: number;
|
|
46
|
+
type: string;
|
|
47
|
+
name: string;
|
|
48
|
+
styles?: Array<LayerSpecification>;
|
|
49
|
+
clickable?: Array<{
|
|
50
|
+
id: string;
|
|
51
|
+
type: string;
|
|
52
|
+
}>;
|
|
53
|
+
}): Promise<Overlay>;
|
|
54
|
+
static load(id: number): Promise<Overlay>;
|
|
55
|
+
constructor(overlay: ProfileOverlay, opts?: {
|
|
56
|
+
internal?: boolean;
|
|
57
|
+
});
|
|
58
|
+
healthy(): boolean;
|
|
59
|
+
hasBounds(): boolean;
|
|
60
|
+
zoomTo(): Promise<void>;
|
|
61
|
+
addLayers(before?: string): Promise<void>;
|
|
62
|
+
init(opts?: {
|
|
63
|
+
clickable?: Array<{
|
|
64
|
+
id: string;
|
|
65
|
+
type: string;
|
|
66
|
+
}>;
|
|
67
|
+
before?: string;
|
|
68
|
+
skipLayers?: boolean;
|
|
69
|
+
}): Promise<void>;
|
|
70
|
+
remove(): void;
|
|
71
|
+
replace(overlay: {
|
|
72
|
+
name?: string;
|
|
73
|
+
active?: boolean;
|
|
74
|
+
username?: string;
|
|
75
|
+
actions?: ProfileOverlay["actions"];
|
|
76
|
+
type?: string;
|
|
77
|
+
opacity?: number;
|
|
78
|
+
visible?: boolean;
|
|
79
|
+
mode?: string;
|
|
80
|
+
mode_id?: string;
|
|
81
|
+
url?: string;
|
|
82
|
+
token?: string;
|
|
83
|
+
styles?: Array<LayerSpecification>;
|
|
84
|
+
}, opts?: {
|
|
85
|
+
before?: string;
|
|
86
|
+
}): Promise<void>;
|
|
87
|
+
delete(): Promise<void>;
|
|
88
|
+
update(body: {
|
|
89
|
+
pos?: number;
|
|
90
|
+
visible?: boolean;
|
|
91
|
+
opacity?: number;
|
|
92
|
+
}): Promise<void>;
|
|
93
|
+
save(): Promise<void>;
|
|
94
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import COT from './cot.ts';
|
|
2
|
+
import Subscription from './subscription.ts';
|
|
3
|
+
import type Atlas from '../workers/atlas.ts';
|
|
4
|
+
import type { BBox } from 'geojson';
|
|
5
|
+
import type { Feature, FeatureCollection } from '../types.ts';
|
|
6
|
+
/**
|
|
7
|
+
* High Level Wrapper around the Data/Mission Sync API
|
|
8
|
+
*/
|
|
9
|
+
export default class SubscriptionFeature {
|
|
10
|
+
parent: Subscription;
|
|
11
|
+
token: string;
|
|
12
|
+
missiontoken?: string;
|
|
13
|
+
constructor(parent: Subscription, opts: {
|
|
14
|
+
token: string;
|
|
15
|
+
missiontoken?: string;
|
|
16
|
+
});
|
|
17
|
+
headers(): Record<string, string>;
|
|
18
|
+
refresh(): Promise<void>;
|
|
19
|
+
list(opts?: {
|
|
20
|
+
refresh: false;
|
|
21
|
+
}): Promise<Array<Feature>>;
|
|
22
|
+
collection(raw?: boolean): Promise<FeatureCollection>;
|
|
23
|
+
bounds(): Promise<BBox>;
|
|
24
|
+
from(uid: string): Promise<Feature | undefined>;
|
|
25
|
+
/**
|
|
26
|
+
* Upsert a feature into the mission.
|
|
27
|
+
* This will udpate the feature in the local DB, submit it to the TAK Server and
|
|
28
|
+
* mark the subscription as dirty for a re-render
|
|
29
|
+
*
|
|
30
|
+
* @param atlas - The Atlas instance
|
|
31
|
+
* @param cot - The COT object to upsert
|
|
32
|
+
* @param opts - Options for updating the feature
|
|
33
|
+
* @param opts.skipNetwork - If true, the feature will not be updated on the server - IE in response to a Mission Change event
|
|
34
|
+
*/
|
|
35
|
+
update(atlas: Atlas, cot: COT, opts?: {
|
|
36
|
+
skipNetwork?: boolean;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Delete a feature from the mission.
|
|
40
|
+
*
|
|
41
|
+
* @param atlas - The Atlas instance
|
|
42
|
+
* @param uid - The unique ID of the feature to delete
|
|
43
|
+
* @param opts - Options for deleting the feature
|
|
44
|
+
* @param opts.skipNetwork - If true, the feature will not be deleted from the server - IE in response to a Mission Change event
|
|
45
|
+
*/
|
|
46
|
+
delete(atlas: Atlas, uid: string, opts?: {
|
|
47
|
+
skipNetwork?: boolean;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
}
|