@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
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { ref, computed } from 'vue';
|
|
2
|
+
import type { Component, Ref, ComputedRef } from "vue";
|
|
3
|
+
import {
|
|
4
|
+
IconBug,
|
|
5
|
+
IconMap,
|
|
6
|
+
IconFiles,
|
|
7
|
+
IconUsers,
|
|
8
|
+
IconVideo,
|
|
9
|
+
IconPhoto,
|
|
10
|
+
IconRoute,
|
|
11
|
+
IconMapPin,
|
|
12
|
+
IconMessage,
|
|
13
|
+
IconNetwork,
|
|
14
|
+
IconPackages,
|
|
15
|
+
IconSettings,
|
|
16
|
+
IconAmbulance,
|
|
17
|
+
IconServerCog,
|
|
18
|
+
IconBoxMultiple,
|
|
19
|
+
IconFileImport,
|
|
20
|
+
IconAffiliate,
|
|
21
|
+
} from '@tabler/icons-vue';
|
|
22
|
+
|
|
23
|
+
export type MenuItemConfig = {
|
|
24
|
+
key: string;
|
|
25
|
+
label: string;
|
|
26
|
+
route: string;
|
|
27
|
+
routeExternal?: boolean;
|
|
28
|
+
tooltip: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
icon: Component;
|
|
31
|
+
badge?: string;
|
|
32
|
+
requiresSystemAdmin?: boolean;
|
|
33
|
+
requiresAgencyAdmin?: boolean;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Manage Pluggable Menu
|
|
38
|
+
*/
|
|
39
|
+
export default class MenuManager {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
mapStore: any;
|
|
42
|
+
filter: Ref<string>;
|
|
43
|
+
preferredLayout: Ref<'list' | 'tiles'>;
|
|
44
|
+
onlineContactsCount: Ref<number>;
|
|
45
|
+
isSystemAdmin: Ref<boolean>;
|
|
46
|
+
isAgencyAdmin: Ref<boolean>;
|
|
47
|
+
pluginMenuItems: Ref<MenuItemConfig[]>;
|
|
48
|
+
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
constructor(mapStore: any) {
|
|
51
|
+
this.mapStore = mapStore;
|
|
52
|
+
this.filter = ref('');
|
|
53
|
+
this.onlineContactsCount = ref(0);
|
|
54
|
+
this.isSystemAdmin = ref(false);
|
|
55
|
+
this.isAgencyAdmin = ref(false);
|
|
56
|
+
this.pluginMenuItems = ref([]);
|
|
57
|
+
|
|
58
|
+
const storedLayoutPref = typeof window !== 'undefined' ? localStorage.getItem('cloudtak-menu-layout') : null;
|
|
59
|
+
this.preferredLayout = ref<'list' | 'tiles'>(storedLayoutPref === 'tiles' ? 'tiles' : 'list');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async init() {
|
|
63
|
+
this.isSystemAdmin.value = await this.mapStore.worker.profile.isSystemAdmin();
|
|
64
|
+
this.isAgencyAdmin.value = await this.mapStore.worker.profile.isAgencyAdmin();
|
|
65
|
+
await this.updateContactsCount();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get baseMenuItems(): MenuItemConfig[] {
|
|
69
|
+
return [
|
|
70
|
+
{
|
|
71
|
+
key: 'features',
|
|
72
|
+
label: 'Your Features',
|
|
73
|
+
route: '/menu/features',
|
|
74
|
+
tooltip: 'Your Features',
|
|
75
|
+
description: 'Manage saved features',
|
|
76
|
+
icon: IconMapPin,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
key: 'overlays',
|
|
80
|
+
label: 'Overlays',
|
|
81
|
+
route: '/menu/overlays',
|
|
82
|
+
tooltip: 'Overlays',
|
|
83
|
+
description: 'Toggle and configure data overlays',
|
|
84
|
+
icon: IconBoxMultiple,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
key: 'contacts',
|
|
88
|
+
label: 'Contacts',
|
|
89
|
+
route: '/menu/contacts',
|
|
90
|
+
tooltip: 'Contacts',
|
|
91
|
+
description: 'Manage and search for contacts',
|
|
92
|
+
icon: IconUsers,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
key: 'basemaps',
|
|
96
|
+
label: 'BaseMaps',
|
|
97
|
+
route: '/menu/basemaps',
|
|
98
|
+
tooltip: 'Basemaps',
|
|
99
|
+
description: 'Switch between available basemaps',
|
|
100
|
+
icon: IconMap,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
key: 'missions',
|
|
104
|
+
label: 'Data Sync',
|
|
105
|
+
route: '/menu/missions',
|
|
106
|
+
tooltip: 'Data Sync',
|
|
107
|
+
description: 'Real-Time Datasets',
|
|
108
|
+
icon: IconAmbulance,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
key: 'packages',
|
|
112
|
+
label: 'Data Package',
|
|
113
|
+
route: '/menu/packages',
|
|
114
|
+
tooltip: 'Data Packages',
|
|
115
|
+
description: 'Create and share Data Packages',
|
|
116
|
+
icon: IconPackages,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
key: 'channels',
|
|
120
|
+
label: 'Channels',
|
|
121
|
+
route: '/menu/channels',
|
|
122
|
+
tooltip: 'Channels',
|
|
123
|
+
description: 'Join and manage Data Channels',
|
|
124
|
+
icon: IconAffiliate,
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
key: 'videos',
|
|
128
|
+
label: 'Videos',
|
|
129
|
+
route: '/menu/videos',
|
|
130
|
+
tooltip: 'Videos',
|
|
131
|
+
description: 'Access live and recorded video feeds',
|
|
132
|
+
icon: IconVideo,
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
key: 'chats',
|
|
136
|
+
label: 'Chats',
|
|
137
|
+
route: '/menu/chats',
|
|
138
|
+
tooltip: 'Chats',
|
|
139
|
+
description: 'Open chat threads and history',
|
|
140
|
+
icon: IconMessage,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
key: 'routes',
|
|
144
|
+
label: 'Routes',
|
|
145
|
+
route: '/menu/routes',
|
|
146
|
+
tooltip: 'Routes',
|
|
147
|
+
description: 'Plan and manage route overlays',
|
|
148
|
+
icon: IconRoute,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
key: 'files',
|
|
152
|
+
label: 'Uploaded Files',
|
|
153
|
+
route: '/menu/files',
|
|
154
|
+
tooltip: 'Your Files',
|
|
155
|
+
description: 'Browse files you have uploaded',
|
|
156
|
+
icon: IconFiles,
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
key: 'imports',
|
|
160
|
+
label: 'Imports',
|
|
161
|
+
route: '/menu/imports',
|
|
162
|
+
tooltip: 'Imports',
|
|
163
|
+
description: 'Review and manage data imports',
|
|
164
|
+
icon: IconFileImport,
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
key: 'iconsets',
|
|
168
|
+
label: 'Iconsets',
|
|
169
|
+
route: '/menu/iconsets',
|
|
170
|
+
tooltip: 'Iconsets',
|
|
171
|
+
description: 'Customize Icons',
|
|
172
|
+
icon: IconPhoto,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
key: 'connections',
|
|
176
|
+
label: 'Connections',
|
|
177
|
+
route: '/menu/connections',
|
|
178
|
+
tooltip: 'Connections (Admin)',
|
|
179
|
+
description: 'Manage Integrations',
|
|
180
|
+
icon: IconNetwork,
|
|
181
|
+
badge: 'A',
|
|
182
|
+
requiresAgencyAdmin: true,
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
key: 'debugger',
|
|
186
|
+
label: 'COT Debugger',
|
|
187
|
+
route: '/menu/debugger',
|
|
188
|
+
tooltip: 'Debugger (Admin)',
|
|
189
|
+
description: 'Inspect and debug COT traffic',
|
|
190
|
+
icon: IconBug,
|
|
191
|
+
badge: 'A',
|
|
192
|
+
requiresSystemAdmin: true,
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
key: 'server',
|
|
196
|
+
label: 'Server',
|
|
197
|
+
route: '/admin',
|
|
198
|
+
routeExternal: true,
|
|
199
|
+
tooltip: 'Server Settings (Admin)',
|
|
200
|
+
description: 'Configure CloudTAK server settings.',
|
|
201
|
+
icon: IconServerCog,
|
|
202
|
+
badge: 'A',
|
|
203
|
+
requiresSystemAdmin: true,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
key: 'settings',
|
|
207
|
+
label: 'Settings',
|
|
208
|
+
route: '/menu/settings',
|
|
209
|
+
tooltip: 'Display Settings',
|
|
210
|
+
description: 'Adjust personal display preferences.',
|
|
211
|
+
icon: IconSettings,
|
|
212
|
+
},
|
|
213
|
+
];
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
get items(): ComputedRef<MenuItemConfig[]> {
|
|
217
|
+
return computed(() => {
|
|
218
|
+
return [...this.baseMenuItems, ...this.pluginMenuItems.value].filter((item) => {
|
|
219
|
+
if (item.requiresSystemAdmin && !this.isSystemAdmin.value) return false;
|
|
220
|
+
if (item.requiresAgencyAdmin && !(this.isAgencyAdmin.value || this.isSystemAdmin.value)) return false;
|
|
221
|
+
return true;
|
|
222
|
+
}).map((item) => {
|
|
223
|
+
if (item.key === 'contacts' && this.onlineContactsCount.value > 0) {
|
|
224
|
+
return {
|
|
225
|
+
...item,
|
|
226
|
+
badge: this.onlineContactsCount.value > 99 ? '99+' : String(this.onlineContactsCount.value)
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return item;
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
get filtered(): ComputedRef<MenuItemConfig[]> {
|
|
235
|
+
return computed(() => {
|
|
236
|
+
const term = this.filter.value.trim().toLowerCase();
|
|
237
|
+
if (!term) return this.items.value;
|
|
238
|
+
|
|
239
|
+
return this.items.value.filter((item) => {
|
|
240
|
+
const label = item.label.toLowerCase();
|
|
241
|
+
const tooltip = item.tooltip.toLowerCase();
|
|
242
|
+
const description = item.description?.toLowerCase() ?? '';
|
|
243
|
+
|
|
244
|
+
return (
|
|
245
|
+
label.includes(term)
|
|
246
|
+
|| tooltip.includes(term)
|
|
247
|
+
|| description.includes(term)
|
|
248
|
+
);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
setLayout(mode: 'list' | 'tiles') {
|
|
254
|
+
this.preferredLayout.value = mode;
|
|
255
|
+
|
|
256
|
+
if (typeof window !== 'undefined') {
|
|
257
|
+
localStorage.setItem('cloudtak-menu-layout', mode);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
async updateContactsCount() {
|
|
262
|
+
const team = await this.mapStore.worker.team.load();
|
|
263
|
+
const self = await this.mapStore.worker.profile.uid();
|
|
264
|
+
let count = 0;
|
|
265
|
+
for (const contact of team.values()) {
|
|
266
|
+
if (contact.uid === self) continue;
|
|
267
|
+
if (await this.mapStore.worker.db.has(contact.uid)) {
|
|
268
|
+
count++;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
this.onlineContactsCount.value = count;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
addMenuItem(item: MenuItemConfig) {
|
|
275
|
+
this.pluginMenuItems.value.push(item);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
removeMenuItem(key: string) {
|
|
279
|
+
this.pluginMenuItems.value = this.pluginMenuItems.value.filter(i => i.key !== key);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { vi } from 'vitest'
|
|
2
|
+
|
|
3
|
+
// Mock localStorage with proper setItem implementation
|
|
4
|
+
Object.defineProperty(window, 'localStorage', {
|
|
5
|
+
value: {
|
|
6
|
+
getItem: vi.fn(),
|
|
7
|
+
setItem: vi.fn(),
|
|
8
|
+
removeItem: vi.fn(),
|
|
9
|
+
clear: vi.fn(),
|
|
10
|
+
// Support direct property assignment as well
|
|
11
|
+
set token(value) {
|
|
12
|
+
this.setItem('token', value)
|
|
13
|
+
},
|
|
14
|
+
get token() {
|
|
15
|
+
return this.getItem('token')
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
writable: true,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
// Mock window.location
|
|
22
|
+
Object.defineProperty(window, 'location', {
|
|
23
|
+
value: {
|
|
24
|
+
origin: 'http://localhost:8080',
|
|
25
|
+
href: 'http://localhost:8080',
|
|
26
|
+
pathname: '/',
|
|
27
|
+
search: '',
|
|
28
|
+
},
|
|
29
|
+
writable: true,
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
// Mock process.env for the API_URL
|
|
33
|
+
globalThis.process = {
|
|
34
|
+
...globalThis.process,
|
|
35
|
+
env: {
|
|
36
|
+
API_URL: 'http://localhost:5001',
|
|
37
|
+
},
|
|
38
|
+
} as any
|
|
39
|
+
|
|
40
|
+
// Mock self for workers
|
|
41
|
+
if (typeof self === 'undefined') {
|
|
42
|
+
(globalThis as any).self = globalThis
|
|
43
|
+
}
|
package/src/timediff.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export default function(updated: string | number): string {
|
|
2
|
+
if (typeof updated === 'string') {
|
|
3
|
+
updated = +new Date(updated)
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
const now = +new Date();
|
|
7
|
+
|
|
8
|
+
const msPerMinute = 60 * 1000;
|
|
9
|
+
const msPerHour = msPerMinute * 60;
|
|
10
|
+
const msPerDay = msPerHour * 24;
|
|
11
|
+
const msPerMonth = msPerDay * 30;
|
|
12
|
+
const msPerYear = msPerDay * 365;
|
|
13
|
+
|
|
14
|
+
if (updated < now) {
|
|
15
|
+
const elapsed = now - updated;
|
|
16
|
+
|
|
17
|
+
if (elapsed < msPerMinute) return Math.round(elapsed/1000) + ` second${Math.round(elapsed/1000) > 1 ? "s" : ""} ago`;
|
|
18
|
+
if (elapsed < msPerHour) return Math.round(elapsed/msPerMinute) + ` minute${Math.round(elapsed/msPerMinute) > 1 ? "s" : ""} ago`;
|
|
19
|
+
if (elapsed < msPerDay ) return Math.round(elapsed/msPerHour ) + ` hour${Math.round(elapsed/msPerHour) > 1 ? "s" : ""} ago`;
|
|
20
|
+
if (elapsed < msPerMonth) return '~' + Math.round(elapsed/msPerDay) + ` day${Math.round(elapsed/msPerDay) > 1 ? "s" : ""} ago`;
|
|
21
|
+
if (elapsed < msPerYear) return '~' + Math.round(elapsed/msPerMonth) + ` month${Math.round(elapsed/msPerMonth) > 1 ? "s" : ""} ago`;
|
|
22
|
+
return '~' + Math.round(elapsed/msPerYear ) + ' years ago';
|
|
23
|
+
} else {
|
|
24
|
+
const elapsed = updated - now;
|
|
25
|
+
|
|
26
|
+
if (elapsed < msPerMinute) return 'in ' + Math.round(elapsed/1000) + ' seconds';
|
|
27
|
+
if (elapsed < msPerHour) return 'in ' + Math.round(elapsed/msPerMinute) + ' minutes';
|
|
28
|
+
if (elapsed < msPerDay ) return 'in ' + Math.round(elapsed/msPerHour ) + ' hours';
|
|
29
|
+
if (elapsed < msPerMonth) return 'in ~' + Math.round(elapsed/msPerDay) + ' days';
|
|
30
|
+
if (elapsed < msPerYear) return 'in ~' + Math.round(elapsed/msPerMonth) + ' months';
|
|
31
|
+
return 'in ~' + Math.round(elapsed/msPerYear ) + ' years';
|
|
32
|
+
}
|
|
33
|
+
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import type { paths } from './derived-types.js';
|
|
2
|
+
import type { Origin } from './base/cot.ts'
|
|
3
|
+
import type { Geometry } from 'geojson';
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
* This file exports more human managable types from the
|
|
7
|
+
* automatically generated dervice-types.d.ts file
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export type APIError = {
|
|
11
|
+
status: number;
|
|
12
|
+
message: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type APIList<T> = {
|
|
16
|
+
total: number;
|
|
17
|
+
items: Array<T>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Below are TAK/CloudTAK Specific Data Types
|
|
21
|
+
|
|
22
|
+
export type COTTypeList = paths["/api/type/cot"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
23
|
+
export type COTType = paths["/api/type/cot/{:type}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
24
|
+
|
|
25
|
+
export type Search = paths["/api/search"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
26
|
+
export type SearchSuggest = paths["/api/search/suggest"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
27
|
+
export type SearchForward = paths["/api/search/forward"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
28
|
+
|
|
29
|
+
export type VideoLease = paths["/api/video/lease/{:lease}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
30
|
+
export type VideoLeaseList = paths["/api/video/lease"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
31
|
+
export type VideoLeaseMetadata = paths["/api/video/lease/{:lease}/metadata"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
32
|
+
export type VideoLeaseProtocols = paths["/api/video/lease/{:lease}/metadata"]["get"]["responses"]["200"]["content"]["application/json"]["protocols"];
|
|
33
|
+
export type VideoLeaseResponse = paths["/api/video/lease/{:lease}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
34
|
+
|
|
35
|
+
export type Subscription = paths["/api/marti/subscription/{:clientuid}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
36
|
+
|
|
37
|
+
export type Group = paths["/api/marti/group"]["get"]["responses"]["200"]["content"]["application/json"]["data"][0]
|
|
38
|
+
|
|
39
|
+
export type User = paths["/api/user/{:username}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
40
|
+
export type UserList = paths["/api/user"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
41
|
+
|
|
42
|
+
export type Contact = paths["/api/marti/api/contacts/all"]["get"]["responses"]["200"]["content"]["application/json"][0];
|
|
43
|
+
export type ContactList = paths["/api/marti/api/contacts/all"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
44
|
+
|
|
45
|
+
export type Content = paths["/api/marti/package"]["put"]["responses"]["200"]["content"]["application/json"];
|
|
46
|
+
|
|
47
|
+
export type VideoConnection = paths["/api/marti/video/{:uid}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
48
|
+
export type VideoConnectionFeed = paths["/api/marti/video/{:uid}"]["get"]["responses"]["200"]["content"]["application/json"]["feeds"][0];
|
|
49
|
+
export type VideoConnection_Create = paths["/api/marti/video"]["post"]["requestBody"]["content"]["application/json"];
|
|
50
|
+
export type VideoConnectionList = paths["/api/marti/video"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
51
|
+
|
|
52
|
+
export type Mission = paths["/api/marti/missions/{:name}"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
53
|
+
export type Mission_Create = paths["/api/marti/mission"]["post"]["requestBody"]["content"]["application/json"]
|
|
54
|
+
export type MissionList = paths["/api/marti/mission"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
55
|
+
export type MissionInvite = paths["/api/marti/mission"]["get"]["responses"]["200"]["content"]["application/json"]["invites"][0];
|
|
56
|
+
|
|
57
|
+
export type MissionRole = paths["/api/marti/missions/{:name}/role"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
58
|
+
|
|
59
|
+
export type MissionLog = paths["/api/marti/missions/{:name}/log/{:logid}"]["patch"]["responses"]["200"]["content"]["application/json"]["data"];
|
|
60
|
+
export type MissionLogList = paths["/api/marti/missions/{:name}/log"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
61
|
+
|
|
62
|
+
export type MissionLayer = paths["/api/marti/missions/{:name}/layer/{:layerid}"]["get"]["responses"]["200"]["content"]["application/json"]["data"];
|
|
63
|
+
export type MissionLayer_Create = paths["/api/marti/missions/{:name}/layer"]["post"]["requestBody"]["content"]["application/json"];
|
|
64
|
+
export type MissionLayer_Update = paths["/api/marti/missions/{:name}/layer/{:uid}"]["patch"]["requestBody"]["content"]["application/json"];
|
|
65
|
+
export type MissionLayerList = paths["/api/marti/missions/{:name}/layer"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
66
|
+
|
|
67
|
+
export type MissionChanges = paths["/api/marti/missions/{:name}/changes"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
68
|
+
|
|
69
|
+
export type MissionSubscriptions = paths["/api/marti/missions/{:name}/subscriptions/roles"]["get"]["responses"]["200"]["content"]["application/json"]["data"];
|
|
70
|
+
|
|
71
|
+
export type Server_Update = paths["/api/server"]["patch"]["requestBody"]["content"]["application/json"]
|
|
72
|
+
export type Server = paths["/api/server"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
73
|
+
|
|
74
|
+
export type MapConfig = paths["/api/config/map"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
75
|
+
|
|
76
|
+
export type Login = paths["/api/login"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
77
|
+
export type LoginConfig = paths["/api/config/login"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
78
|
+
export type Login_Create = paths["/api/login"]["post"]["requestBody"]["content"]["application/json"]
|
|
79
|
+
export type Login_CreateRes = paths["/api/login"]["post"]["responses"]["200"]["content"]["application/json"]
|
|
80
|
+
|
|
81
|
+
export type Import = paths["/api/import/{:import}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
82
|
+
export type ImportList = paths["/api/import"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
83
|
+
|
|
84
|
+
export type Package = paths["/api/marti/package/{:uid}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
85
|
+
export type PackageList = paths["/api/marti/package"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
86
|
+
|
|
87
|
+
export type ServerAdminVideoList = paths["/api/server/video"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
88
|
+
|
|
89
|
+
export type Iconset = paths["/api/iconset/{:iconset}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
90
|
+
export type IconsetList = paths["/api/iconset"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
91
|
+
|
|
92
|
+
export type AttachmentList = paths["/api/attachment"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
93
|
+
export type Attachment = paths["/api/attachment"]["get"]["responses"]["200"]["content"]["application/json"]["items"][0]
|
|
94
|
+
|
|
95
|
+
export type ConfigGroups = paths["/api/config/group"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
96
|
+
|
|
97
|
+
export type TileJSON = paths["/api/basemap/{:basemapid}/tiles"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
98
|
+
|
|
99
|
+
export type Basemap = paths["/api/basemap/{:basemapid}"]["patch"]["responses"]["200"]["content"]["application/json"]
|
|
100
|
+
export type BasemapList = paths["/api/basemap"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
101
|
+
|
|
102
|
+
export type Palette = paths["/api/palette/{:palette}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
103
|
+
|
|
104
|
+
export type Chat = {
|
|
105
|
+
chatroom: string;
|
|
106
|
+
messageId: string;
|
|
107
|
+
from: {
|
|
108
|
+
callsign: string;
|
|
109
|
+
uid: string;
|
|
110
|
+
};
|
|
111
|
+
message: string;
|
|
112
|
+
time: string;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export type APIProfileChat = {
|
|
116
|
+
id: number;
|
|
117
|
+
read: boolean;
|
|
118
|
+
username: string;
|
|
119
|
+
chatroom: string;
|
|
120
|
+
sender_callsign: string;
|
|
121
|
+
sender_uid: string;
|
|
122
|
+
created: string;
|
|
123
|
+
updated: string;
|
|
124
|
+
message_id: string;
|
|
125
|
+
message: string;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export type PaletteList = paths["/api/palette"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
129
|
+
export type PaletteFeature = paths["/api/palette/{:palette}/feature/{:feature}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
130
|
+
|
|
131
|
+
export type MissionTemplate = paths["/api/template/mission/{:mission}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
132
|
+
export type MissionTemplateList = paths["/api/template/mission"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
133
|
+
|
|
134
|
+
export type Profile = paths["/api/profile"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
135
|
+
export type Profile_Update = paths["/api/profile"]["patch"]["requestBody"]["content"]["application/json"]
|
|
136
|
+
|
|
137
|
+
export type ProfileChatroomList = paths["/api/profile/chatroom"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
138
|
+
export type ProfileChatList = paths["/api/profile/chatroom/{:chatroom}/chat"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
139
|
+
|
|
140
|
+
export type ProfileVideoList = paths["/api/profile/video"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
141
|
+
export type ProfileVideo = paths["/api/profile/video/{:id}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
142
|
+
|
|
143
|
+
export type ProfileFileList = paths["/api/profile/asset"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
144
|
+
export type ProfileFile = ProfileFileList["items"][0];
|
|
145
|
+
|
|
146
|
+
export type Feature = Omit<paths["/api/profile/feature/{:id}"]["get"]["responses"]["200"]["content"]["application/json"], "geometry"> & {
|
|
147
|
+
origin?: Origin
|
|
148
|
+
properties: {
|
|
149
|
+
'id': string;
|
|
150
|
+
'icon-opacity'?: number;
|
|
151
|
+
'circle-opacity'?: number;
|
|
152
|
+
|
|
153
|
+
[index: string]: unknown
|
|
154
|
+
}
|
|
155
|
+
geometry: Geometry
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export type InputFeature = Omit<paths["/api/profile/feature/{:id}"]["get"]["responses"]["200"]["content"]["application/json"], "geometry"> & {
|
|
159
|
+
origin?: Origin
|
|
160
|
+
properties: {
|
|
161
|
+
'id'?: string;
|
|
162
|
+
'icon-opacity'?: number;
|
|
163
|
+
'circle-opacity'?: number;
|
|
164
|
+
|
|
165
|
+
[index: string]: unknown
|
|
166
|
+
}
|
|
167
|
+
geometry: Geometry
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export type FeaturePropertyCreator = Exclude<Feature["properties"]["creator"], undefined>
|
|
171
|
+
|
|
172
|
+
export type FeatureCollection = {
|
|
173
|
+
type: string
|
|
174
|
+
features: Array<Feature>
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
export type ProfileOverlay = paths["/api/profile/overlay/{:overlay}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
178
|
+
export type ProfileOverlayList = paths["/api/profile/overlay"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
179
|
+
export type ProfileOverlay_Create = paths["/api/profile/overlay"]["post"]["requestBody"]["content"]["application/json"]
|
|
180
|
+
export type ProfileOverlay_Update = paths["/api/profile/overlay/{:overlay}"]["patch"]["requestBody"]["content"]["application/json"]
|
|
181
|
+
|
|
182
|
+
export type SearchReverse = paths["/api/search/reverse/{:longitude}/{:latitude}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
183
|
+
|
|
184
|
+
// Below are CloudTAK ETL Specific Data Types
|
|
185
|
+
|
|
186
|
+
export type ETLLdapChannel = paths["/api/ldap/channel"]["get"]["responses"]["200"]["content"]["application/json"]["items"][0]
|
|
187
|
+
export type ETLLdapChannelList = paths["/api/ldap/channel"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
188
|
+
export type ETLLdapUser = paths["/api/ldap/user"]["post"]["responses"]["200"]["content"]["application/json"]
|
|
189
|
+
|
|
190
|
+
export type ETLConnectionList = paths["/api/connection"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
191
|
+
export type ETLConnection = paths["/api/connection/{:connectionid}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
192
|
+
|
|
193
|
+
export type ETLConnectionVideoLeaseList = paths["/api/connection/{:connectionid}/video/lease"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
194
|
+
|
|
195
|
+
export type ETLConnectionToken = paths["/api/connection/{:connectionid}/token"]["get"]["responses"]["200"]["content"]["application/json"]["items"][0]
|
|
196
|
+
export type ETLConnectionTokenList = paths["/api/connection/{:connectionid}/token"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
197
|
+
|
|
198
|
+
export type ETLConnectionAssetList = paths["/api/connection/{:connectionid}/asset"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
199
|
+
export type ETLAgencyList = paths["/api/agency"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
200
|
+
export type ETLAgency = paths["/api/agency/{:agencyid}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
201
|
+
|
|
202
|
+
export type ETLLayer = paths["/api/connection/{:connectionid}/layer/{:layerid}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
203
|
+
export type ETLLayerList = paths["/api/connection/{:connectionid}/layer"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
204
|
+
export type ETLLayerTask = paths["/api/connection/{:connectionid}/layer/{:layerid}/task"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
205
|
+
export type ETLLayerTaskCapabilities = paths["/api/connection/{:connectionid}/layer/{:layerid}/task/capabilities"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
206
|
+
export type ETLLayerIncoming = paths["/api/connection/{:connectionid}/layer/{:layerid}/incoming"]["post"]["responses"]["200"]["content"]["application/json"]
|
|
207
|
+
export type ETLLayerOutgoing = paths["/api/connection/{:connectionid}/layer/{:layerid}/outgoing"]["post"]["responses"]["200"]["content"]["application/json"]
|
|
208
|
+
|
|
209
|
+
export type ETLData = paths["/api/connection/{:connectionid}/data/{:dataid}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
210
|
+
|
|
211
|
+
export type VideoService = paths["/api/video/service"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
212
|
+
|
|
213
|
+
export type InjectorList = paths["/api/server/injector"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
214
|
+
export type Injector = paths["/api/server/injector"]["get"]["responses"]["200"]["content"]["application/json"]["items"][0];
|
|
215
|
+
|
|
216
|
+
export type RepeaterList = paths["/api/server/repeater"]["get"]["responses"]["200"]["content"]["application/json"];
|
|
217
|
+
export type Repeater = paths["/api/server/repeater"]["get"]["responses"]["200"]["content"]["application/json"]["items"][0];
|
|
218
|
+
|
|
219
|
+
// Pattern properties are not yet supported
|
|
220
|
+
export type ETLRawTaskList = {
|
|
221
|
+
total: number;
|
|
222
|
+
items: Record<string, string[]>
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export type ETLTaskVersions = paths["/api/task/raw/{:task}"]["get"]["responses"]["200"]["content"]["application/json"]
|
|
226
|
+
|
package/src/video.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createApp } from 'vue'
|
|
2
|
+
import * as VueRouter from 'vue-router'
|
|
3
|
+
import { createPinia } from 'pinia'
|
|
4
|
+
|
|
5
|
+
import 'floating-vue/dist/style.css'
|
|
6
|
+
import FloatingVue from 'floating-vue'
|
|
7
|
+
|
|
8
|
+
import App from './App.vue'
|
|
9
|
+
|
|
10
|
+
const router = VueRouter.createRouter({
|
|
11
|
+
history: VueRouter.createWebHistory(),
|
|
12
|
+
routes: [
|
|
13
|
+
{
|
|
14
|
+
path: '/admin',
|
|
15
|
+
name: 'admin',
|
|
16
|
+
component: () => import('./components/ServerAdmin.vue'),
|
|
17
|
+
children: []
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const app = createApp(App);
|
|
23
|
+
const pinia = createPinia()
|
|
24
|
+
app.use(router);
|
|
25
|
+
app.use(pinia);
|
|
26
|
+
app.use(FloatingVue);
|
|
27
|
+
app.mount('#app');
|