@tak-ps/cloudtak 12.54.0 → 12.55.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.
Files changed (456) hide show
  1. package/package.json +7 -3
  2. package/dist/types/src/App.vue.d.ts +0 -5
  3. package/dist/types/src/base/validators.d.ts +0 -9
  4. package/dist/types/src/components/Admin/AdminImports.vue.d.ts +0 -3
  5. package/dist/types/src/components/Admin/AdminLayers.vue.d.ts +0 -3
  6. package/dist/types/src/components/Admin/AdminMissionTemplate.vue.d.ts +0 -3
  7. package/dist/types/src/components/Admin/AdminMissionTemplateLog.vue.d.ts +0 -3
  8. package/dist/types/src/components/Admin/AdminMissionTemplates.vue.d.ts +0 -3
  9. package/dist/types/src/components/Admin/AdminOverlays.vue.d.ts +0 -3
  10. package/dist/types/src/components/Admin/AdminPalette.vue.d.ts +0 -3
  11. package/dist/types/src/components/Admin/AdminPaletteFeature.vue.d.ts +0 -3
  12. package/dist/types/src/components/Admin/AdminPalettes.vue.d.ts +0 -3
  13. package/dist/types/src/components/Admin/AdminServer.vue.d.ts +0 -3
  14. package/dist/types/src/components/Admin/AdminTasks.vue.d.ts +0 -3
  15. package/dist/types/src/components/Admin/AdminUser.vue.d.ts +0 -3
  16. package/dist/types/src/components/Admin/AdminUsers.vue.d.ts +0 -3
  17. package/dist/types/src/components/Admin/AdminVideos.vue.d.ts +0 -3
  18. package/dist/types/src/components/Admin/Server/ServerConnection.vue.d.ts +0 -3
  19. package/dist/types/src/components/Admin/Server/ServerInjectorModal.vue.d.ts +0 -11
  20. package/dist/types/src/components/Admin/Server/ServerInjectors.vue.d.ts +0 -3
  21. package/dist/types/src/components/Admin/Server/ServerPackages.vue.d.ts +0 -3
  22. package/dist/types/src/components/Admin/Server/ServerRepeaters.vue.d.ts +0 -3
  23. package/dist/types/src/components/Admin/Server/ServerVideos.vue.d.ts +0 -3
  24. package/dist/types/src/components/Admin/Tasks/AdminRawTasks.vue.d.ts +0 -3
  25. package/dist/types/src/components/Admin/Videos/AdminVideoLeases.vue.d.ts +0 -3
  26. package/dist/types/src/components/Admin/Videos/AdminVideoService.vue.d.ts +0 -3
  27. package/dist/types/src/components/Admin/Videos/VideoConfig.vue.d.ts +0 -7
  28. package/dist/types/src/components/Admin/Videos/VideoConfigPort.vue.d.ts +0 -8
  29. package/dist/types/src/components/CloudTAK/CoTView.vue.d.ts +0 -3
  30. package/dist/types/src/components/CloudTAK/CoordInput.vue.d.ts +0 -7
  31. package/dist/types/src/components/CloudTAK/DrawTools.vue.d.ts +0 -3
  32. package/dist/types/src/components/CloudTAK/FeatView.vue.d.ts +0 -8
  33. package/dist/types/src/components/CloudTAK/GeoJSONInput.vue.d.ts +0 -24
  34. package/dist/types/src/components/CloudTAK/MainMenu.vue.d.ts +0 -9
  35. package/dist/types/src/components/CloudTAK/MainMenuContents.vue.d.ts +0 -16
  36. package/dist/types/src/components/CloudTAK/Map.vue.d.ts +0 -8
  37. package/dist/types/src/components/CloudTAK/MapLoading.vue.d.ts +0 -3
  38. package/dist/types/src/components/CloudTAK/Menu/Debugger.vue.d.ts +0 -3
  39. package/dist/types/src/components/CloudTAK/Menu/MenuBasemaps.vue.d.ts +0 -3
  40. package/dist/types/src/components/CloudTAK/Menu/MenuChannels.vue.d.ts +0 -3
  41. package/dist/types/src/components/CloudTAK/Menu/MenuChats.vue.d.ts +0 -3
  42. package/dist/types/src/components/CloudTAK/Menu/MenuConnections.vue.d.ts +0 -3
  43. package/dist/types/src/components/CloudTAK/Menu/MenuContacts.vue.d.ts +0 -3
  44. package/dist/types/src/components/CloudTAK/Menu/MenuFeatures.vue.d.ts +0 -3
  45. package/dist/types/src/components/CloudTAK/Menu/MenuFeaturesDeleted.vue.d.ts +0 -3
  46. package/dist/types/src/components/CloudTAK/Menu/MenuFiles.vue.d.ts +0 -3
  47. package/dist/types/src/components/CloudTAK/Menu/MenuImport.vue.d.ts +0 -3
  48. package/dist/types/src/components/CloudTAK/Menu/MenuImports.vue.d.ts +0 -3
  49. package/dist/types/src/components/CloudTAK/Menu/MenuItemCard.vue.d.ts +0 -101
  50. package/dist/types/src/components/CloudTAK/Menu/MenuMission.vue.d.ts +0 -3
  51. package/dist/types/src/components/CloudTAK/Menu/MenuMissions.vue.d.ts +0 -3
  52. package/dist/types/src/components/CloudTAK/Menu/MenuOverlayExplorer.vue.d.ts +0 -3
  53. package/dist/types/src/components/CloudTAK/Menu/MenuOverlays.vue.d.ts +0 -3
  54. package/dist/types/src/components/CloudTAK/Menu/MenuPackage.vue.d.ts +0 -3
  55. package/dist/types/src/components/CloudTAK/Menu/MenuPackages.vue.d.ts +0 -3
  56. package/dist/types/src/components/CloudTAK/Menu/MenuRoutes.vue.d.ts +0 -3
  57. package/dist/types/src/components/CloudTAK/Menu/MenuRoutesNew.vue.d.ts +0 -3
  58. package/dist/types/src/components/CloudTAK/Menu/MenuSettings.vue.d.ts +0 -3
  59. package/dist/types/src/components/CloudTAK/Menu/MenuSettingsCallsign.vue.d.ts +0 -3
  60. package/dist/types/src/components/CloudTAK/Menu/MenuSettingsDisplay.vue.d.ts +0 -3
  61. package/dist/types/src/components/CloudTAK/Menu/MenuVideos.vue.d.ts +0 -3
  62. package/dist/types/src/components/CloudTAK/Menu/MenuVideosRemote.vue.d.ts +0 -3
  63. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionContents.vue.d.ts +0 -11
  64. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionCreate.vue.d.ts +0 -7
  65. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionInfo.vue.d.ts +0 -11
  66. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionInviteModal.vue.d.ts +0 -17
  67. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayerCreate.vue.d.ts +0 -13
  68. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayerEdit.vue.d.ts +0 -15
  69. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayerTree.vue.d.ts +0 -15
  70. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLayers.vue.d.ts +0 -8
  71. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLog.vue.d.ts +0 -9
  72. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionLogs.vue.d.ts +0 -7
  73. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionTimeline.vue.d.ts +0 -7
  74. package/dist/types/src/components/CloudTAK/Menu/Mission/MissionUsers.vue.d.ts +0 -7
  75. package/dist/types/src/components/CloudTAK/Menu/Mission/PendingInvites.vue.d.ts +0 -11
  76. package/dist/types/src/components/CloudTAK/Menu/Overlays/TreeMission.vue.d.ts +0 -7
  77. package/dist/types/src/components/CloudTAK/Menu/Overlays/TreeVector.vue.d.ts +0 -13
  78. package/dist/types/src/components/CloudTAK/Menu/Videos/VideoLeaseModal.vue.d.ts +0 -16
  79. package/dist/types/src/components/CloudTAK/Menu/Videos/VideosRemoteFeed.vue.d.ts +0 -13
  80. package/dist/types/src/components/CloudTAK/Notifications.vue.d.ts +0 -3
  81. package/dist/types/src/components/CloudTAK/Query/Magnetic.vue.d.ts +0 -7
  82. package/dist/types/src/components/CloudTAK/Query/Reverse.vue.d.ts +0 -8
  83. package/dist/types/src/components/CloudTAK/Query/Sun.vue.d.ts +0 -7
  84. package/dist/types/src/components/CloudTAK/Query/Weather.vue.d.ts +0 -7
  85. package/dist/types/src/components/CloudTAK/QueryView.vue.d.ts +0 -3
  86. package/dist/types/src/components/CloudTAK/RangeInput.vue.d.ts +0 -7
  87. package/dist/types/src/components/CloudTAK/RangeRingsInput.vue.d.ts +0 -7
  88. package/dist/types/src/components/CloudTAK/util/Breadcrumb.vue.d.ts +0 -6
  89. package/dist/types/src/components/CloudTAK/util/ChannelInfo.vue.d.ts +0 -15
  90. package/dist/types/src/components/CloudTAK/util/ContactPuck.vue.d.ts +0 -7
  91. package/dist/types/src/components/CloudTAK/util/Coordinate.vue.d.ts +0 -67
  92. package/dist/types/src/components/CloudTAK/util/CoordinateType.vue.d.ts +0 -27
  93. package/dist/types/src/components/CloudTAK/util/CopyButton.vue.d.ts +0 -32
  94. package/dist/types/src/components/CloudTAK/util/CopyField.vue.d.ts +0 -122
  95. package/dist/types/src/components/CloudTAK/util/DrawOverlay.vue.d.ts +0 -3
  96. package/dist/types/src/components/CloudTAK/util/EmptyInfo.vue.d.ts +0 -24
  97. package/dist/types/src/components/CloudTAK/util/FeatureIcon.vue.d.ts +0 -23
  98. package/dist/types/src/components/CloudTAK/util/FeatureRow.vue.d.ts +0 -81
  99. package/dist/types/src/components/CloudTAK/util/FloatingAttachment.vue.d.ts +0 -17
  100. package/dist/types/src/components/CloudTAK/util/FloatingVideo.vue.d.ts +0 -27
  101. package/dist/types/src/components/CloudTAK/util/GroupSelect.vue.d.ts +0 -14
  102. package/dist/types/src/components/CloudTAK/util/JSONModal.vue.d.ts +0 -27
  103. package/dist/types/src/components/CloudTAK/util/Keywords.vue.d.ts +0 -6
  104. package/dist/types/src/components/CloudTAK/util/LineLength.vue.d.ts +0 -24
  105. package/dist/types/src/components/CloudTAK/util/MenuTemplate.vue.d.ts +0 -71
  106. package/dist/types/src/components/CloudTAK/util/MultipleSelect.vue.d.ts +0 -7
  107. package/dist/types/src/components/CloudTAK/util/NotificationIcon.vue.d.ts +0 -10
  108. package/dist/types/src/components/CloudTAK/util/NotificationToast.vue.d.ts +0 -13
  109. package/dist/types/src/components/CloudTAK/util/PolygonArea.vue.d.ts +0 -24
  110. package/dist/types/src/components/CloudTAK/util/PropertyBattery.vue.d.ts +0 -13
  111. package/dist/types/src/components/CloudTAK/util/PropertyBearing.vue.d.ts +0 -58
  112. package/dist/types/src/components/CloudTAK/util/PropertyCreator.vue.d.ts +0 -7
  113. package/dist/types/src/components/CloudTAK/util/PropertyDistance.vue.d.ts +0 -54
  114. package/dist/types/src/components/CloudTAK/util/PropertyElevation.vue.d.ts +0 -32
  115. package/dist/types/src/components/CloudTAK/util/PropertyEmail.vue.d.ts +0 -13
  116. package/dist/types/src/components/CloudTAK/util/PropertyLinks.vue.d.ts +0 -14
  117. package/dist/types/src/components/CloudTAK/util/PropertyMetadata.vue.d.ts +0 -7
  118. package/dist/types/src/components/CloudTAK/util/PropertyMilSym.vue.d.ts +0 -25
  119. package/dist/types/src/components/CloudTAK/util/PropertyPhone.vue.d.ts +0 -13
  120. package/dist/types/src/components/CloudTAK/util/PropertySpeed.vue.d.ts +0 -23
  121. package/dist/types/src/components/CloudTAK/util/PropertyStyle.vue.d.ts +0 -7
  122. package/dist/types/src/components/CloudTAK/util/PropertyTimes.vue.d.ts +0 -7
  123. package/dist/types/src/components/CloudTAK/util/PropertyType.vue.d.ts +0 -27
  124. package/dist/types/src/components/CloudTAK/util/SearchBox.vue.d.ts +0 -37
  125. package/dist/types/src/components/CloudTAK/util/SelectFeats.vue.d.ts +0 -7
  126. package/dist/types/src/components/CloudTAK/util/SettingsCallsign.vue.d.ts +0 -28
  127. package/dist/types/src/components/CloudTAK/util/Share.vue.d.ts +0 -14
  128. package/dist/types/src/components/CloudTAK/util/ShareToMission.vue.d.ts +0 -53
  129. package/dist/types/src/components/CloudTAK/util/ShareToPackage.vue.d.ts +0 -62
  130. package/dist/types/src/components/CloudTAK/util/SlideDownHeader.vue.d.ts +0 -41
  131. package/dist/types/src/components/CloudTAK/util/StandardItem.vue.d.ts +0 -18
  132. package/dist/types/src/components/CloudTAK/util/Subscriptions.vue.d.ts +0 -7
  133. package/dist/types/src/components/CloudTAK/util/VideoLeaseSourceType.vue.d.ts +0 -6
  134. package/dist/types/src/components/CloudTAK/util/WarnChannels.vue.d.ts +0 -7
  135. package/dist/types/src/components/CloudTAK/util/WarnConfiguration.vue.d.ts +0 -7
  136. package/dist/types/src/components/Configure.vue.d.ts +0 -3
  137. package/dist/types/src/components/ETL/Connection/AgencyBadge.vue.d.ts +0 -8
  138. package/dist/types/src/components/ETL/Connection/ConnectionFiles.vue.d.ts +0 -3
  139. package/dist/types/src/components/ETL/Connection/ConnectionTokens.vue.d.ts +0 -3
  140. package/dist/types/src/components/ETL/Connection/ConnectionVideos.vue.d.ts +0 -3
  141. package/dist/types/src/components/ETL/Connection/StatusDot.vue.d.ts +0 -13
  142. package/dist/types/src/components/ETL/Connection/TokenModal.vue.d.ts +0 -16
  143. package/dist/types/src/components/ETL/Connection.vue.d.ts +0 -3
  144. package/dist/types/src/components/ETL/ConnectionCard.vue.d.ts +0 -16
  145. package/dist/types/src/components/ETL/Connections.vue.d.ts +0 -3
  146. package/dist/types/src/components/ETL/Data.vue.d.ts +0 -3
  147. package/dist/types/src/components/ETL/Layer/LayerIncomingConfig.vue.d.ts +0 -27
  148. package/dist/types/src/components/ETL/Layer/LayerOutgoingConfig.vue.d.ts +0 -27
  149. package/dist/types/src/components/ETL/Layer/utils/QueryInput.vue.d.ts +0 -56
  150. package/dist/types/src/components/ETL/Layer/utils/StatusDot.vue.d.ts +0 -7
  151. package/dist/types/src/components/ETL/Layer.vue.d.ts +0 -3
  152. package/dist/types/src/components/Home.vue.d.ts +0 -13
  153. package/dist/types/src/components/Loading.vue.d.ts +0 -3
  154. package/dist/types/src/components/Login.vue.d.ts +0 -7
  155. package/dist/types/src/components/LostUser.vue.d.ts +0 -3
  156. package/dist/types/src/components/PageFooter.vue.d.ts +0 -3
  157. package/dist/types/src/components/ServerAdmin.vue.d.ts +0 -3
  158. package/dist/types/src/components/VideoWall/Main.vue.d.ts +0 -3
  159. package/dist/types/src/components/VideoWall.vue.d.ts +0 -13
  160. package/dist/types/src/components/util/GroupSelect.vue.d.ts +0 -14
  161. package/dist/types/src/components/util/InitialAuthor.vue.d.ts +0 -6
  162. package/dist/types/src/components/util/StatusDot.vue.d.ts +0 -8
  163. package/dist/types/src/components/util/Upload.vue.d.ts +0 -46
  164. package/dist/types/src/components/util/UploadLogo.vue.d.ts +0 -14
  165. package/dist/types/src/main.d.ts +0 -1
  166. package/dist/types/src/pages/admin/main.d.ts +0 -1
  167. package/dist/types/src/pages/connection/main.d.ts +0 -1
  168. package/dist/types/src/pages/docs/App.vue.d.ts +0 -4
  169. package/dist/types/src/pages/docs/main.d.ts +0 -1
  170. package/dist/types/src/pages/video/main.d.ts +0 -1
  171. package/dist/types/src/stores/brand.d.ts +0 -7
  172. package/dist/types/src/stores/float.d.ts +0 -42
  173. package/dist/types/src/test/setup.d.ts +0 -1
  174. package/dist/types/src/timediff.d.ts +0 -1
  175. package/dist/types/src/video.d.ts +0 -1
  176. package/src/App.vue +0 -341
  177. package/src/base/chatroom-chats.ts +0 -124
  178. package/src/base/chatroom.ts +0 -202
  179. package/src/base/cot.ts +0 -625
  180. package/src/base/database.ts +0 -150
  181. package/src/base/events.ts +0 -43
  182. package/src/base/filter.ts +0 -163
  183. package/src/base/handler.ts +0 -67
  184. package/src/base/icon.ts +0 -16
  185. package/src/base/notification.ts +0 -163
  186. package/src/base/overlay.ts +0 -558
  187. package/src/base/subscription-feature.ts +0 -224
  188. package/src/base/subscription-log.ts +0 -174
  189. package/src/base/subscription.ts +0 -489
  190. package/src/base/utils/styles.ts +0 -430
  191. package/src/base/validators.ts +0 -66
  192. package/src/components/Admin/AdminConfig.vue +0 -487
  193. package/src/components/Admin/AdminConnections.vue +0 -195
  194. package/src/components/Admin/AdminDatas.vue +0 -165
  195. package/src/components/Admin/AdminExport.vue +0 -121
  196. package/src/components/Admin/AdminImports.vue +0 -222
  197. package/src/components/Admin/AdminLayerTemplate.vue +0 -91
  198. package/src/components/Admin/AdminLayers.vue +0 -301
  199. package/src/components/Admin/AdminMissionTemplate.vue +0 -259
  200. package/src/components/Admin/AdminMissionTemplateLog.vue +0 -273
  201. package/src/components/Admin/AdminMissionTemplates.vue +0 -189
  202. package/src/components/Admin/AdminOverlays.vue +0 -232
  203. package/src/components/Admin/AdminOverlaysEdit.vue +0 -355
  204. package/src/components/Admin/AdminPalette.vue +0 -214
  205. package/src/components/Admin/AdminPaletteFeature.vue +0 -208
  206. package/src/components/Admin/AdminPalettes.vue +0 -189
  207. package/src/components/Admin/AdminServer.vue +0 -143
  208. package/src/components/Admin/AdminTasks.vue +0 -60
  209. package/src/components/Admin/AdminUser.vue +0 -263
  210. package/src/components/Admin/AdminUsers.vue +0 -183
  211. package/src/components/Admin/AdminVideos.vue +0 -60
  212. package/src/components/Admin/Server/ServerConnection.vue +0 -322
  213. package/src/components/Admin/Server/ServerInjectorModal.vue +0 -125
  214. package/src/components/Admin/Server/ServerInjectors.vue +0 -104
  215. package/src/components/Admin/Server/ServerPackages.vue +0 -159
  216. package/src/components/Admin/Server/ServerRepeaters.vue +0 -105
  217. package/src/components/Admin/Server/ServerVideos.vue +0 -83
  218. package/src/components/Admin/Tasks/AdminRawTasks.vue +0 -148
  219. package/src/components/Admin/Tasks/AdminTasks.vue +0 -286
  220. package/src/components/Admin/Videos/AdminVideoLeases.vue +0 -198
  221. package/src/components/Admin/Videos/AdminVideoService.vue +0 -67
  222. package/src/components/Admin/Videos/VideoConfig.vue +0 -132
  223. package/src/components/Admin/Videos/VideoConfigPath.vue +0 -58
  224. package/src/components/Admin/Videos/VideoConfigPort.vue +0 -40
  225. package/src/components/CloudTAK/CoTView.vue +0 -915
  226. package/src/components/CloudTAK/CoordInput.vue +0 -110
  227. package/src/components/CloudTAK/DrawTools.vue +0 -200
  228. package/src/components/CloudTAK/FeatView.vue +0 -242
  229. package/src/components/CloudTAK/GeoJSONInput.vue +0 -226
  230. package/src/components/CloudTAK/MainMenu.vue +0 -190
  231. package/src/components/CloudTAK/MainMenuContents.vue +0 -360
  232. package/src/components/CloudTAK/Map.vue +0 -972
  233. package/src/components/CloudTAK/MapLoading.vue +0 -31
  234. package/src/components/CloudTAK/Menu/Basemaps/EditModal.vue +0 -427
  235. package/src/components/CloudTAK/Menu/Debugger.vue +0 -118
  236. package/src/components/CloudTAK/Menu/Iconset/EditModal.vue +0 -118
  237. package/src/components/CloudTAK/Menu/MenuBasemaps.vue +0 -410
  238. package/src/components/CloudTAK/Menu/MenuChannels.vue +0 -206
  239. package/src/components/CloudTAK/Menu/MenuChat.vue +0 -222
  240. package/src/components/CloudTAK/Menu/MenuChats.vue +0 -167
  241. package/src/components/CloudTAK/Menu/MenuConnections.vue +0 -166
  242. package/src/components/CloudTAK/Menu/MenuContacts.vue +0 -245
  243. package/src/components/CloudTAK/Menu/MenuFeatures.vue +0 -718
  244. package/src/components/CloudTAK/Menu/MenuFeaturesDeleted.vue +0 -217
  245. package/src/components/CloudTAK/Menu/MenuFiles.vue +0 -433
  246. package/src/components/CloudTAK/Menu/MenuIcon.vue +0 -236
  247. package/src/components/CloudTAK/Menu/MenuIconset.vue +0 -128
  248. package/src/components/CloudTAK/Menu/MenuIconsets.vue +0 -266
  249. package/src/components/CloudTAK/Menu/MenuImport.vue +0 -198
  250. package/src/components/CloudTAK/Menu/MenuImports.vue +0 -199
  251. package/src/components/CloudTAK/Menu/MenuItemCard.vue +0 -240
  252. package/src/components/CloudTAK/Menu/MenuMission.vue +0 -324
  253. package/src/components/CloudTAK/Menu/MenuMissions.vue +0 -334
  254. package/src/components/CloudTAK/Menu/MenuOverlayExplorer.vue +0 -434
  255. package/src/components/CloudTAK/Menu/MenuOverlays.vue +0 -560
  256. package/src/components/CloudTAK/Menu/MenuPackage.vue +0 -340
  257. package/src/components/CloudTAK/Menu/MenuPackages.vue +0 -193
  258. package/src/components/CloudTAK/Menu/MenuRoutes.vue +0 -186
  259. package/src/components/CloudTAK/Menu/MenuRoutesNew.vue +0 -193
  260. package/src/components/CloudTAK/Menu/MenuSettings.vue +0 -95
  261. package/src/components/CloudTAK/Menu/MenuSettingsCallsign.vue +0 -12
  262. package/src/components/CloudTAK/Menu/MenuSettingsDisplay.vue +0 -144
  263. package/src/components/CloudTAK/Menu/MenuSettingsTokens.vue +0 -83
  264. package/src/components/CloudTAK/Menu/MenuVideos.vue +0 -436
  265. package/src/components/CloudTAK/Menu/MenuVideosRemote.vue +0 -203
  266. package/src/components/CloudTAK/Menu/Mission/MissionContents.vue +0 -211
  267. package/src/components/CloudTAK/Menu/Mission/MissionCreate.vue +0 -372
  268. package/src/components/CloudTAK/Menu/Mission/MissionInfo.vue +0 -331
  269. package/src/components/CloudTAK/Menu/Mission/MissionInviteModal.vue +0 -107
  270. package/src/components/CloudTAK/Menu/Mission/MissionLayerCreate.vue +0 -77
  271. package/src/components/CloudTAK/Menu/Mission/MissionLayerEdit.vue +0 -77
  272. package/src/components/CloudTAK/Menu/Mission/MissionLayerTree.vue +0 -194
  273. package/src/components/CloudTAK/Menu/Mission/MissionLayers.vue +0 -157
  274. package/src/components/CloudTAK/Menu/Mission/MissionLog.vue +0 -170
  275. package/src/components/CloudTAK/Menu/Mission/MissionLogs.vue +0 -194
  276. package/src/components/CloudTAK/Menu/Mission/MissionTimeline.vue +0 -142
  277. package/src/components/CloudTAK/Menu/Mission/MissionUsers.vue +0 -74
  278. package/src/components/CloudTAK/Menu/Mission/PendingInvites.vue +0 -130
  279. package/src/components/CloudTAK/Menu/Overlays/DeleteModal.vue +0 -57
  280. package/src/components/CloudTAK/Menu/Overlays/TreeCots.vue +0 -497
  281. package/src/components/CloudTAK/Menu/Overlays/TreeMission.vue +0 -32
  282. package/src/components/CloudTAK/Menu/Overlays/TreeVector.vue +0 -113
  283. package/src/components/CloudTAK/Menu/Settings/TokenModal.vue +0 -110
  284. package/src/components/CloudTAK/Menu/Videos/VideoLeaseModal.vue +0 -753
  285. package/src/components/CloudTAK/Menu/Videos/VideosRemoteFeed.vue +0 -75
  286. package/src/components/CloudTAK/Notifications.vue +0 -195
  287. package/src/components/CloudTAK/Query/Magnetic.vue +0 -80
  288. package/src/components/CloudTAK/Query/Reverse.vue +0 -65
  289. package/src/components/CloudTAK/Query/Sun.vue +0 -178
  290. package/src/components/CloudTAK/Query/Weather.vue +0 -195
  291. package/src/components/CloudTAK/QueryView.vue +0 -134
  292. package/src/components/CloudTAK/RadialMenu/LICENSE +0 -21
  293. package/src/components/CloudTAK/RadialMenu/README.md +0 -63
  294. package/src/components/CloudTAK/RadialMenu/RadialMenu.css +0 -85
  295. package/src/components/CloudTAK/RadialMenu/RadialMenu.js +0 -534
  296. package/src/components/CloudTAK/RadialMenu/RadialMenu.vue +0 -257
  297. package/src/components/CloudTAK/RangeInput.vue +0 -155
  298. package/src/components/CloudTAK/RangeRingsInput.vue +0 -269
  299. package/src/components/CloudTAK/util/Breadcrumb.vue +0 -85
  300. package/src/components/CloudTAK/util/ChannelInfo.vue +0 -25
  301. package/src/components/CloudTAK/util/Contact.vue +0 -131
  302. package/src/components/CloudTAK/util/ContactPuck.vue +0 -40
  303. package/src/components/CloudTAK/util/Coordinate.vue +0 -313
  304. package/src/components/CloudTAK/util/CoordinateType.vue +0 -134
  305. package/src/components/CloudTAK/util/CopyButton.vue +0 -67
  306. package/src/components/CloudTAK/util/CopyField.vue +0 -286
  307. package/src/components/CloudTAK/util/DrawOverlay.vue +0 -254
  308. package/src/components/CloudTAK/util/EmptyInfo.vue +0 -71
  309. package/src/components/CloudTAK/util/FeatureIcon.vue +0 -134
  310. package/src/components/CloudTAK/util/FeatureRow.vue +0 -206
  311. package/src/components/CloudTAK/util/FloatingAttachment.vue +0 -191
  312. package/src/components/CloudTAK/util/FloatingVideo.vue +0 -654
  313. package/src/components/CloudTAK/util/GenericSelect.vue +0 -125
  314. package/src/components/CloudTAK/util/GroupSelect.vue +0 -129
  315. package/src/components/CloudTAK/util/Icons.vue +0 -146
  316. package/src/components/CloudTAK/util/JSONModal.vue +0 -57
  317. package/src/components/CloudTAK/util/Keywords.vue +0 -31
  318. package/src/components/CloudTAK/util/LineLength.vue +0 -121
  319. package/src/components/CloudTAK/util/MenuItem.vue +0 -21
  320. package/src/components/CloudTAK/util/MenuTemplate.vue +0 -137
  321. package/src/components/CloudTAK/util/MultipleSelect.vue +0 -103
  322. package/src/components/CloudTAK/util/NotificationIcon.vue +0 -50
  323. package/src/components/CloudTAK/util/NotificationToast.vue +0 -125
  324. package/src/components/CloudTAK/util/PolygonArea.vue +0 -109
  325. package/src/components/CloudTAK/util/PropertyAttachments.vue +0 -224
  326. package/src/components/CloudTAK/util/PropertyBattery.vue +0 -44
  327. package/src/components/CloudTAK/util/PropertyBearing.vue +0 -148
  328. package/src/components/CloudTAK/util/PropertyCreator.vue +0 -61
  329. package/src/components/CloudTAK/util/PropertyDistance.vue +0 -182
  330. package/src/components/CloudTAK/util/PropertyElevation.vue +0 -84
  331. package/src/components/CloudTAK/util/PropertyEmail.vue +0 -44
  332. package/src/components/CloudTAK/util/PropertyLinks.vue +0 -148
  333. package/src/components/CloudTAK/util/PropertyMetadata.vue +0 -53
  334. package/src/components/CloudTAK/util/PropertyMilSym.vue +0 -62
  335. package/src/components/CloudTAK/util/PropertyPhone.vue +0 -61
  336. package/src/components/CloudTAK/util/PropertySensor.vue +0 -129
  337. package/src/components/CloudTAK/util/PropertySpeed.vue +0 -91
  338. package/src/components/CloudTAK/util/PropertyStyle.vue +0 -202
  339. package/src/components/CloudTAK/util/PropertyTimes.vue +0 -95
  340. package/src/components/CloudTAK/util/PropertyType.vue +0 -274
  341. package/src/components/CloudTAK/util/SearchBox.vue +0 -314
  342. package/src/components/CloudTAK/util/SelectFeats.vue +0 -190
  343. package/src/components/CloudTAK/util/SettingsCallsign.vue +0 -151
  344. package/src/components/CloudTAK/util/Share.vue +0 -496
  345. package/src/components/CloudTAK/util/ShareToMission.vue +0 -223
  346. package/src/components/CloudTAK/util/ShareToPackage.vue +0 -250
  347. package/src/components/CloudTAK/util/SlideDownHeader.vue +0 -92
  348. package/src/components/CloudTAK/util/StandardItem.vue +0 -42
  349. package/src/components/CloudTAK/util/Subscriptions.vue +0 -151
  350. package/src/components/CloudTAK/util/TagEntry.vue +0 -301
  351. package/src/components/CloudTAK/util/UploadImport.vue +0 -195
  352. package/src/components/CloudTAK/util/VideoLeaseSourceType.vue +0 -66
  353. package/src/components/CloudTAK/util/WarnChannels.vue +0 -56
  354. package/src/components/CloudTAK/util/WarnConfiguration.vue +0 -34
  355. package/src/components/Configure.vue +0 -259
  356. package/src/components/ETL/Connection/AgencyBadge.vue +0 -102
  357. package/src/components/ETL/Connection/AgencySelect.vue +0 -185
  358. package/src/components/ETL/Connection/CertificateLogin.vue +0 -75
  359. package/src/components/ETL/Connection/CertificateMachineUser.vue +0 -228
  360. package/src/components/ETL/Connection/CertificateP12.vue +0 -104
  361. package/src/components/ETL/Connection/CertificateRaw.vue +0 -50
  362. package/src/components/ETL/Connection/ConnectionData.vue +0 -174
  363. package/src/components/ETL/Connection/ConnectionFiles.vue +0 -182
  364. package/src/components/ETL/Connection/ConnectionGroups.vue +0 -181
  365. package/src/components/ETL/Connection/ConnectionLayer.vue +0 -180
  366. package/src/components/ETL/Connection/ConnectionTokens.vue +0 -147
  367. package/src/components/ETL/Connection/ConnectionVideos.vue +0 -151
  368. package/src/components/ETL/Connection/Events.vue +0 -88
  369. package/src/components/ETL/Connection/StatusDot.vue +0 -48
  370. package/src/components/ETL/Connection/TokenModal.vue +0 -136
  371. package/src/components/ETL/Connection.vue +0 -194
  372. package/src/components/ETL/ConnectionCard.vue +0 -265
  373. package/src/components/ETL/ConnectionEdit.vue +0 -448
  374. package/src/components/ETL/Connections.vue +0 -148
  375. package/src/components/ETL/Data/DataFiles.vue +0 -245
  376. package/src/components/ETL/Data/DataGroups.vue +0 -45
  377. package/src/components/ETL/Data/DataLayer.vue +0 -144
  378. package/src/components/ETL/Data/Location.vue +0 -238
  379. package/src/components/ETL/Data.vue +0 -259
  380. package/src/components/ETL/DataEdit.vue +0 -212
  381. package/src/components/ETL/Layer/LayerAlarm.vue +0 -307
  382. package/src/components/ETL/Layer/LayerDeployment.vue +0 -388
  383. package/src/components/ETL/Layer/LayerEnvironment.vue +0 -259
  384. package/src/components/ETL/Layer/LayerIncomingConfig.vue +0 -401
  385. package/src/components/ETL/Layer/LayerIncomingEnvironmentArcGIS.vue +0 -354
  386. package/src/components/ETL/Layer/LayerIncomingSchema.vue +0 -138
  387. package/src/components/ETL/Layer/LayerIncomingStyles.vue +0 -349
  388. package/src/components/ETL/Layer/LayerOutgoingConfig.vue +0 -204
  389. package/src/components/ETL/Layer/LayerOutgoingEnvironmentArcGIS.vue +0 -279
  390. package/src/components/ETL/Layer/utils/QueryInput.vue +0 -52
  391. package/src/components/ETL/Layer/utils/Schema.vue +0 -322
  392. package/src/components/ETL/Layer/utils/SchemaModal.vue +0 -77
  393. package/src/components/ETL/Layer/utils/StatusDot.vue +0 -38
  394. package/src/components/ETL/Layer/utils/StyleLinkModal.vue +0 -83
  395. package/src/components/ETL/Layer/utils/StyleLinks.vue +0 -139
  396. package/src/components/ETL/Layer/utils/StyleSingle.vue +0 -885
  397. package/src/components/ETL/Layer/utils/StyleTemplate.vue +0 -97
  398. package/src/components/ETL/Layer/utils/TaskModal.vue +0 -217
  399. package/src/components/ETL/Layer.vue +0 -560
  400. package/src/components/ETL/LayerEdit.vue +0 -276
  401. package/src/components/ETL/Styling/Layer.vue +0 -311
  402. package/src/components/ETL/Styling/ObjectInput.vue +0 -46
  403. package/src/components/ETL/Styling/Style.vue +0 -233
  404. package/src/components/Home.vue +0 -17
  405. package/src/components/Loading.vue +0 -42
  406. package/src/components/Login.vue +0 -198
  407. package/src/components/LostUser.vue +0 -31
  408. package/src/components/PageFooter.vue +0 -41
  409. package/src/components/ServerAdmin.vue +0 -408
  410. package/src/components/VideoWall/Main.vue +0 -79
  411. package/src/components/VideoWall.vue +0 -17
  412. package/src/components/util/DataSelect.vue +0 -148
  413. package/src/components/util/EsriFilter.vue +0 -140
  414. package/src/components/util/EsriPortal.vue +0 -422
  415. package/src/components/util/EsriPortalCreate.vue +0 -72
  416. package/src/components/util/EsriServer.vue +0 -368
  417. package/src/components/util/GroupSelect.vue +0 -166
  418. package/src/components/util/IconSelect.vue +0 -302
  419. package/src/components/util/InitialAuthor.vue +0 -28
  420. package/src/components/util/LayerSelect.vue +0 -162
  421. package/src/components/util/LayerTaskSelect.vue +0 -311
  422. package/src/components/util/LayerTemplateSelect.vue +0 -173
  423. package/src/components/util/LoginModal.vue +0 -110
  424. package/src/components/util/PublicTilesSelect.vue +0 -171
  425. package/src/components/util/StatusDot.vue +0 -31
  426. package/src/components/util/TableFooter.vue +0 -64
  427. package/src/components/util/TableHeader.vue +0 -127
  428. package/src/components/util/Upload.vue +0 -220
  429. package/src/components/util/UploadCSV.vue +0 -46
  430. package/src/components/util/UploadLogo.vue +0 -83
  431. package/src/components/util/UploadP12.vue +0 -93
  432. package/src/components/util/UserSelect.vue +0 -151
  433. package/src/derived-types.d.ts +0 -35243
  434. package/src/main.ts +0 -264
  435. package/src/pages/admin/main.ts +0 -208
  436. package/src/pages/connection/main.ts +0 -158
  437. package/src/pages/docs/App.vue +0 -19
  438. package/src/pages/docs/main.ts +0 -6
  439. package/src/pages/video/main.ts +0 -27
  440. package/src/std.ts +0 -152
  441. package/src/stores/brand.ts +0 -28
  442. package/src/stores/float.ts +0 -113
  443. package/src/stores/map.ts +0 -931
  444. package/src/stores/modules/draw.ts +0 -413
  445. package/src/stores/modules/icons.ts +0 -185
  446. package/src/stores/modules/menu.ts +0 -281
  447. package/src/test/setup.ts +0 -43
  448. package/src/timediff.ts +0 -33
  449. package/src/types.ts +0 -226
  450. package/src/video.ts +0 -27
  451. package/src/vite-env.d.ts +0 -9
  452. package/src/workers/atlas-connection.ts +0 -236
  453. package/src/workers/atlas-database.ts +0 -764
  454. package/src/workers/atlas-profile.ts +0 -374
  455. package/src/workers/atlas-team.ts +0 -90
  456. package/src/workers/atlas.ts +0 -81
@@ -1,257 +0,0 @@
1
- <template>
2
- <svg
3
- id='icons'
4
- ref='icons'
5
- class='d-none'
6
- >
7
- <symbol
8
- id='radial-lock'
9
- viewBox='0 0 24 24'
10
- fill='none'
11
- width='24'
12
- height='24'
13
- stroke='#fff'
14
- stroke-width='2'
15
- stroke-linejoin='round'
16
- stroke-linecap='round'
17
- >
18
- <path d='M12.5 21h-5.5a2 2 0 0 1 -2 -2v-6a2 2 0 0 1 2 -2h10c.24 0 .47 .042 .683 .12' />
19
- <path d='M11 16a1 1 0 1 0 2 0a1 1 0 0 0 -2 0' />
20
- <path d='M8 11v-4a4 4 0 1 1 8 0v4' />
21
- <path d='M21.121 20.121a3 3 0 1 0 -4.242 0c.418 .419 1.125 1.045 2.121 1.879c1.051 -.89 1.759 -1.516 2.121 -1.879z' />
22
- <path d='M19 18v.01' />
23
- </symbol>
24
- <symbol
25
- id='radial-question'
26
- viewBox='0 0 24 24'
27
- stroke-width='2'
28
- stroke='#fff'
29
- fill='none'
30
- stroke-linecap='round'
31
- stroke-linejoin='round'
32
- ><path
33
- stroke='none'
34
- d='M0 0h24v24H0z'
35
- fill='none'
36
- /><path d='M8 8a3.5 3 0 0 1 3.5 -3h1a3.5 3 0 0 1 3.5 3a3 3 0 0 1 -2 3a3 4 0 0 0 -2 4' /><path d='M12 19l0 .01' /></symbol>
37
- <symbol
38
- id='radial-play'
39
- viewBox='0 0 24 24'
40
- stroke-width='2'
41
- stroke='#fff'
42
- fill='none'
43
- stroke-linecap='round'
44
- stroke-linejoin='round'
45
- ><path
46
- stroke='none'
47
- d='M0 0h24v24H0z'
48
- fill='none'
49
- /><path d='M7 4v16l13 -8z' /></symbol>
50
- <symbol
51
- id='radial-trash'
52
- viewBox='0 0 24 24'
53
- stroke-width='2'
54
- stroke='#fff'
55
- fill='none'
56
- stroke-linecap='round'
57
- stroke-linejoin='round'
58
- ><path
59
- stroke='none'
60
- d='M0 0h24v24H0z'
61
- fill='none'
62
- /><path d='M4 7l16 0' /><path d='M10 11l0 6' /><path d='M14 11l0 6' /><path d='M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12' /><path d='M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3' /></symbol>
63
- <symbol
64
- id='radial-view'
65
- viewBox='0 0 24 24'
66
- stroke-width='2'
67
- stroke='#fff'
68
- fill='none'
69
- stroke-linecap='round'
70
- stroke-linejoin='round'
71
- ><path
72
- stroke='none'
73
- d='M0 0h24v24H0z'
74
- fill='none'
75
- /><path d='M13 5h8' /><path d='M13 9h5' /><path d='M13 15h8' /><path d='M13 19h5' /><path d='M3 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z' /><path d='M3 14m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v4a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z' /></symbol>
76
- <symbol
77
- id='radial-pencil'
78
- viewBox='0 0 24 24'
79
- stroke-width='2'
80
- stroke='#fff'
81
- fill='none'
82
- stroke-linecap='round'
83
- stroke-linejoin='round'
84
- ><path
85
- stroke='none'
86
- d='M0 0h24v24H0z'
87
- fill='none'
88
- /><path d='M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4' /><path d='M13.5 6.5l4 4' /></symbol>
89
- <symbol
90
- id='radial-pencil-plus'
91
- viewBox='0 0 24 24'
92
- stroke-width='2'
93
- stroke='#fff'
94
- fill='none'
95
- stroke-linecap='round'
96
- stroke-linejoin='round'
97
- ><path
98
- stroke='none'
99
- d='M0 0h24v24H0z'
100
- fill='none'
101
- /><path d='M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4' /><path d='M13.5 6.5l4 4' /><path d='M16 19h6' /><path d='M19 16v6' /></symbol>
102
- <symbol
103
- id='radial-save'
104
- viewBox='0 0 24 24'
105
- fill='none'
106
- stroke='#fff'
107
- stroke-width='2'
108
- stroke-linecap='round'
109
- stroke-linejoin='round'
110
- >
111
- <path d='M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2' />
112
- <path d='M12 14m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0' />
113
- <path d='M14 4l0 4l-6 0l0 -4' />
114
- </symbol>
115
- </svg>
116
- </template>
117
-
118
- <script setup>
119
- import { ref, shallowRef, onMounted, onUnmounted, nextTick, useTemplateRef, watch } from 'vue';
120
- import { OriginMode } from '../../../base/cot.ts';
121
- import Subscription from '../../../base/subscription.ts';
122
- import RadialMenu from './RadialMenu.js';
123
- import './RadialMenu.css';
124
- import { useMapStore } from '../../../stores/map.ts';
125
- import mapgl from 'maplibre-gl';
126
-
127
- const mapStore = useMapStore();
128
-
129
- const props = defineProps({
130
- size: {
131
- type: Number,
132
- default: 200
133
- }
134
- });
135
-
136
- const emit = defineEmits(['close', 'click']);
137
-
138
- const iconsRef = useTemplateRef('icons');
139
- const menuItems = ref([]);
140
- const menu = shallowRef();
141
- const popup = shallowRef();
142
- const cot = shallowRef();
143
-
144
- watch(() => cot.value?.geometry, (newGeometry) => {
145
- if (popup.value && newGeometry && newGeometry.type === 'Point') {
146
- popup.value.setLngLat(newGeometry.coordinates);
147
- }
148
- });
149
-
150
- let timer;
151
- onUnmounted(() => {
152
- if (timer) clearInterval(timer);
153
- if (menu.value) {
154
- menu.value.close();
155
- }
156
- if (popup.value) {
157
- popup.value.remove();
158
- }
159
- });
160
-
161
- onMounted(async () => {
162
- await genMenuItems();
163
-
164
- nextTick(() => {
165
- const container = document.createElement('div');
166
- container.style.width = `${props.size}px`;
167
- container.style.height = `${props.size}px`;
168
-
169
- if (iconsRef.value) {
170
- container.appendChild(iconsRef.value.cloneNode(true));
171
- }
172
-
173
- menu.value = new RadialMenu({
174
- parent: container,
175
- size: props.size,
176
- closeOnClick: true,
177
- menuItems: menuItems.value,
178
- onClick: (item) => {
179
- emit('click', `${mapStore.radial.mode}:${item.id}`);
180
- },
181
- onClose: () => {
182
- emit('close');
183
- }
184
- });
185
- menu.value.open();
186
-
187
- if (mapStore.radial.lngLat) {
188
- popup.value = new mapgl.Popup({
189
- closeButton: false,
190
- closeOnClick: true,
191
- maxWidth: 'none',
192
- anchor: 'center',
193
- className: 'radial-menu-popup'
194
- })
195
- .setLngLat(mapStore.radial.lngLat)
196
- .setDOMContent(container)
197
- .addTo(mapStore.map);
198
-
199
- popup.value.on('close', () => {
200
- emit('close');
201
- });
202
- } else {
203
- emit('close');
204
- }
205
-
206
- timer = setInterval(async () => {
207
- if (cot.value) {
208
- const updated = await mapStore.worker.db.get(cot.value.properties.id || cot.value.id, {
209
- mission: true
210
- });
211
- if (updated) cot.value = updated;
212
- }
213
- }, 500);
214
- })
215
- });
216
-
217
- async function genMenuItems() {
218
- menuItems.value.splice(0, menuItems.value.length);
219
- if (mapStore.radial.mode === 'cot') {
220
- if (mapStore.radial.cot && mapStore.radial.cot.properties) {
221
- cot.value = await mapStore.worker.db.get(mapStore.radial.cot.properties.id, {
222
- mission: true
223
- });
224
-
225
- if (!cot.value) throw new Error('Could not find marker');
226
-
227
- if (cot.value.origin.mode === OriginMode.CONNECTION) {
228
- menuItems.value.push({ id: 'edit', icon: '#radial-pencil' })
229
- menuItems.value.push({ id: 'delete', icon: '#radial-trash' })
230
-
231
- if (cot.value.geometry.type === 'Point') {
232
- menuItems.value.push({ id: 'lock', icon: '#radial-lock' })
233
- }
234
- } else if (cot.value.origin.mode === OriginMode.MISSION && cot.value.origin.mode_id) {
235
-
236
- const sub = await Subscription.from(cot.value.origin.mode_id, localStorage.token);
237
-
238
- if (sub.role && sub.role.permissions.includes("MISSION_WRITE")) {
239
- menuItems.value.push({ id: 'edit', icon: '#radial-pencil' })
240
- menuItems.value.push({ id: 'delete', icon: '#radial-trash' })
241
- }
242
- }
243
-
244
- if (cot.value.properties.video) {
245
- menuItems.value.push({ id: 'play', icon: '#radial-play' })
246
- }
247
- }
248
-
249
- menuItems.value.push({ id: 'view', icon: '#radial-view' })
250
- } else if (mapStore.radial.mode === 'feat') {
251
- menuItems.value.push({ id: 'view', icon: '#radial-view' })
252
- } else if (mapStore.radial.mode === 'context') {
253
- menuItems.value.push({ id: 'new', icon: '#radial-pencil-plus' })
254
- menuItems.value.push({ id: 'info', icon: '#radial-question' })
255
- }
256
- }
257
- </script>
@@ -1,155 +0,0 @@
1
- <template>
2
- <div
3
- class='position-absolute end-0 text-white bg-dark card rounded'
4
- style='
5
- top: 56px;
6
- z-index: 1;
7
- width: 400px;
8
- border-radius: 0px 6px 0px 0px;
9
- '
10
- >
11
- <div class='card-header d-flex align-items-center'>
12
- <div class='card-title'>
13
- <IconCompass
14
- :size='25'
15
- stroke='1'
16
- />
17
-
18
- <span class='ms-2'>Range &amp; Bearing</span>
19
- </div>
20
- <div class='ms-auto'>
21
- <TablerIconButton
22
- title='Close'
23
- @click='emit("close")'
24
- >
25
- <IconX
26
- :size='20'
27
- stroke='1'
28
- />
29
- </TablerIconButton>
30
- </div>
31
- </div>
32
- <div class='mx-2 my-2 row g-2'>
33
- <div class='col-12'>
34
- <TablerInput
35
- v-model='config.name'
36
- label='Name'
37
- @submit='submitPoint'
38
- />
39
- </div>
40
- <div class='col-12'>
41
- <Coordinate
42
- v-model='config.coordinates'
43
- :edit='true'
44
- :hover='true'
45
- :modes='["dd"]'
46
- @submit='submitPoint'
47
- />
48
- </div>
49
- <div class='col-12'>
50
- <PropertyBearing
51
- v-model='config.bearing'
52
- :edit='true'
53
- :hover='true'
54
- />
55
- </div>
56
- <div class='col-12'>
57
- <PropertyDistance
58
- v-model='config.range'
59
- :unit='mapStore.distanceUnit'
60
- :edit='true'
61
- :hover='true'
62
- />
63
- </div>
64
- <div class='col-12'>
65
- <button
66
- class='btn btn-primary w-100 mt-3'
67
- @click='submitPoint'
68
- >
69
- Save
70
- </button>
71
- </div>
72
- </div>
73
- </div>
74
- </template>
75
-
76
- <script setup lang='ts'>
77
- import { v4 as randomUUID } from 'uuid';
78
- import { ref, toRaw } from 'vue'
79
- import { destination } from '@turf/destination'
80
- import Coordinate from './util/Coordinate.vue';
81
- import PropertyBearing from './util/PropertyBearing.vue';
82
- import PropertyDistance from './util/PropertyDistance.vue';
83
- import {
84
- TablerInput,
85
- TablerIconButton
86
- } from '@tak-ps/vue-tabler';
87
-
88
- import {
89
- IconX,
90
- IconCompass
91
- } from '@tabler/icons-vue';
92
-
93
- import type { LngLatLike } from 'maplibre-gl'
94
- import { useMapStore } from '../../stores/map.ts';
95
- const mapStore = useMapStore();
96
-
97
- const emit = defineEmits([ 'close' ]);
98
-
99
- const center = mapStore.map.getCenter();
100
-
101
- const config = ref({
102
- name: '',
103
- range: 1,
104
- bearing: 0,
105
- coordinates: [
106
- Math.round(center.lng * 1000000) / 1000000,
107
- Math.round(center.lat * 1000000) / 1000000,
108
- ]
109
- });
110
-
111
- async function submitPoint() {
112
- const id = randomUUID();
113
-
114
- const end = destination(
115
- config.value.coordinates,
116
- config.value.range,
117
- config.value.bearing
118
- )
119
-
120
- await mapStore.worker.db.add({
121
- id,
122
- type: 'Feature',
123
- path: '/',
124
- properties: {
125
- id,
126
- type: 'u-rb-a',
127
- how: 'h-g-i-g-o',
128
- color: '#00FF00',
129
- archived: true,
130
- time: new Date().toISOString(),
131
- start: new Date().toISOString(),
132
- stale: new Date().toISOString(),
133
- center: toRaw(config.value.coordinates),
134
- bearing: config.value.bearing,
135
- range: config.value.range,
136
- callsign: toRaw(config.value.name || 'New Feature'),
137
- },
138
- geometry: {
139
- type: 'LineString',
140
- coordinates: [toRaw(config.value.coordinates), end.geometry.coordinates]
141
- }
142
- }, {
143
- authored: true
144
- });
145
-
146
- if (mapStore.map) {
147
- mapStore.map.flyTo({
148
- center: config.value.coordinates as LngLatLike,
149
- zoom: 14
150
- });
151
- }
152
-
153
- emit('close');
154
- }
155
- </script>
@@ -1,269 +0,0 @@
1
- <template>
2
- <TablerModal size='md'>
3
- <div class='modal-status bg-blue' />
4
- <button
5
- type='button'
6
- class='btn-close'
7
- aria-label='Close'
8
- @click='emit("close")'
9
- />
10
- <div class='modal-header text-white'>
11
- <div class='modal-title d-flex align-items-center'>
12
- <IconTarget
13
- :size='32'
14
- stroke='1'
15
- />
16
- <span class='mx-2'>Range Rings</span>
17
- </div>
18
- </div>
19
- <div class='modal-body text-white'>
20
- <div class='mx-2 my-2'>
21
- <TablerInput
22
- v-model='config.name'
23
- label='Name'
24
- @submit='submitRings'
25
- />
26
- </div>
27
-
28
- <Coordinate
29
- v-model='config.coordinates'
30
- label='Origin'
31
- :edit='true'
32
- :hover='true'
33
- :modes='["dd"]'
34
- @submit='submitRings'
35
- />
36
-
37
- <div class='mx-2 border my-2'>
38
- <template v-for='ring of config.rings'>
39
- <div class='position-relative'>
40
- <div
41
- v-if='config.rings.length > 1'
42
- class='position-absolute cursor-pointer'
43
- style='
44
- top: 4px;
45
- right: 4px;
46
- '
47
- @click='config.rings.splice(config.rings.indexOf(ring), 1)'
48
- >
49
- <IconTrash
50
- :size='18'
51
- stroke='1'
52
- />
53
- </div>
54
-
55
- <PropertyDistance
56
- v-model='ring.distance'
57
- class='py-2'
58
- label='Ring Diameter'
59
- :edit='true'
60
- :hover='true'
61
- />
62
- </div>
63
- </template>
64
-
65
- <div class='col-12 px-2 py-2'>
66
- <button
67
- class='btn btn-secondary btn-sm w-100'
68
- @click='config.rings.push({ distance: 1 })'
69
- >
70
- <IconPlus
71
- :size='18'
72
- stroke='1'
73
- />
74
- <span class='ms-2'>Add Ring</span>
75
- </button>
76
- </div>
77
- </div>
78
-
79
- <div class='mx-2 my-2'>
80
- <TablerSlidedown
81
- :arrow='true'
82
- :click-anywhere-expand='true'
83
- >
84
- <div class='d-flex align-items-center w-100'>
85
- <span>Style Options</span>
86
- <div :style='previewStyle' />
87
- </div>
88
- <template #expanded>
89
- <TablerColour
90
- v-model='config.color'
91
- label='Color'
92
- />
93
- <TablerEnum
94
- v-model='config.style'
95
- label='Style'
96
- :options='["solid", "dashed", "dotted", "outlined"]'
97
- />
98
- <TablerRange
99
- v-model='config.width'
100
- label='Width'
101
- :min='1'
102
- :max='10'
103
- :step='1'
104
- />
105
- <TablerRange
106
- v-model='config.opacity'
107
- label='Opacity'
108
- :min='0'
109
- :max='1'
110
- :step='0.1'
111
- />
112
- </template>
113
- </TablerSlidedown>
114
- </div>
115
-
116
- <button
117
- class='btn btn-primary w-100 mt-3'
118
- @click='submitRings'
119
- >
120
- Save
121
- </button>
122
- </div>
123
- </TablerModal>
124
- </template>
125
-
126
- <script setup lang='ts'>
127
- import { v4 as randomUUID } from 'uuid';
128
- import { ref, toRaw, computed } from 'vue'
129
- import Coordinate from './util/Coordinate.vue';
130
- import PropertyDistance from './util/PropertyDistance.vue';
131
- import Ellipse from '@turf/ellipse'
132
- import {
133
- IconPlus,
134
- IconTarget,
135
- IconTrash
136
- } from '@tabler/icons-vue';
137
- import {
138
- TablerInput,
139
- TablerModal,
140
- TablerColour,
141
- TablerEnum,
142
- TablerRange,
143
- TablerSlidedown
144
- } from '@tak-ps/vue-tabler';
145
- import type { LngLatLike } from 'maplibre-gl'
146
- import { useMapStore } from '../../stores/map.ts';
147
- const mapStore = useMapStore();
148
-
149
- const emit = defineEmits([ 'close' ]);
150
-
151
- const center = mapStore.map.getCenter();
152
-
153
- const config = ref({
154
- name: '',
155
- type: 'u-d-p',
156
- rings: [{
157
- distance: 1
158
- }],
159
- coordinates: [
160
- Math.round(center.lng * 1000000) / 1000000,
161
- Math.round(center.lat * 1000000) / 1000000,
162
- ],
163
- color: '#d63939',
164
- style: 'solid',
165
- width: 3,
166
- opacity: 1
167
- });
168
-
169
- const previewStyle = computed(() => {
170
- const style = config.value.style === 'outlined' ? 'solid' : config.value.style;
171
-
172
- return {
173
- width: '100px',
174
- borderTopWidth: `${config.value.width}px`,
175
- borderTopStyle: style as 'solid' | 'dashed' | 'dotted',
176
- borderTopColor: config.value.color,
177
- opacity: config.value.opacity,
178
- marginLeft: 'auto',
179
- marginRight: '1rem'
180
- };
181
- });
182
-
183
- async function submitRings() {
184
- const id = randomUUID();
185
-
186
- await mapStore.worker.db.add({
187
- id,
188
- type: 'Feature',
189
- path: '/',
190
- properties: {
191
- id,
192
- type: toRaw(config.value.type),
193
- how: 'h-g-i-g-o',
194
- color: toRaw(config.value.color),
195
- archived: true,
196
- 'marker-color': toRaw(config.value.color),
197
- 'marker-opacity': toRaw(config.value.opacity),
198
- time: new Date().toISOString(),
199
- start: new Date().toISOString(),
200
- stale: new Date().toISOString(),
201
- center: toRaw(config.value.coordinates),
202
- callsign: toRaw((config.value.name || '') + " Origin"),
203
- },
204
- geometry: {
205
- type: 'Point',
206
- coordinates: toRaw(config.value.coordinates)
207
- }
208
- }, {
209
- authored: true
210
- });
211
-
212
- for (let i = 0; i < config.value.rings.length; i++) {
213
- const ring = config.value.rings[i];
214
-
215
- if (ring.distance === 0) continue;
216
-
217
- const ringid = randomUUID();
218
-
219
- await mapStore.worker.db.add({
220
- id: ringid,
221
- type: 'Feature',
222
- path: '/',
223
- properties: {
224
- id: ringid,
225
- type: 'u-d-c-c',
226
- how: 'h-g-i-g-o',
227
- color: toRaw(config.value.color),
228
- stroke: toRaw(config.value.color),
229
- 'stroke-width': toRaw(config.value.width),
230
- 'stroke-style': toRaw(config.value.style),
231
- 'stroke-opacity': toRaw(config.value.opacity),
232
- archived: true,
233
- shape: {
234
- ellipse: {
235
- major: ring.distance * 1000,
236
- minor: ring.distance * 1000,
237
- angle: 360
238
- }
239
- },
240
- 'fill-opacity': 0,
241
- time: new Date().toISOString(),
242
- start: new Date().toISOString(),
243
- stale: new Date().toISOString(),
244
- center: toRaw(config.value.coordinates),
245
- callsign: toRaw((config.value.name || '') + " Ring #" + (i + 1)),
246
- },
247
- geometry: Ellipse(
248
- config.value.coordinates,
249
- ring.distance,
250
- ring.distance,
251
- {
252
- angle: 360
253
- }
254
- ).geometry
255
- }, {
256
- authored: true
257
- });
258
- }
259
-
260
- if (mapStore.map) {
261
- mapStore.map.flyTo({
262
- center: config.value.coordinates as LngLatLike,
263
- zoom: 14
264
- });
265
- }
266
-
267
- emit('close');
268
- }
269
- </script>