@vcmap/ui 5.0.1 → 5.1.0-rc.1

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 (444) hide show
  1. package/README.md +2 -2
  2. package/build/buildTypes.js +176 -0
  3. package/build/lintTypes.js +30 -0
  4. package/config/aerowest.config.json +4 -0
  5. package/config/base.config.json +24 -2
  6. package/config/dev.config.json +176 -5
  7. package/config/www.config.json +25 -1
  8. package/dist/assets/{cesium.888ef7.js → cesium.e9b3ca.js} +1859 -1828
  9. package/dist/assets/cesium.js +1 -1
  10. package/dist/assets/{core.860907.js → core.a9fe5a.js} +5865 -5041
  11. package/dist/assets/core.js +1 -1
  12. package/dist/assets/index-bb2549d6.js +1 -0
  13. package/dist/assets/{ol.5e8a90.js → ol.5f0496.js} +7257 -7252
  14. package/dist/assets/ol.js +1 -1
  15. package/dist/assets/{ui.7758a8.css → ui.3c73c2.css} +2 -2
  16. package/dist/assets/{ui.7758a8.js → ui.3c73c2.js} +14281 -9264
  17. package/dist/assets/ui.js +1 -1
  18. package/dist/assets/{vue.9771b3.js → vue.4fe14e.js} +1243 -1234
  19. package/dist/assets/vue.js +2 -2
  20. package/dist/assets/{vuetify.2818ff.css → vuetify.260d9a.css} +1 -1
  21. package/dist/assets/{vuetify.2818ff.js → vuetify.260d9a.js} +155 -154
  22. package/dist/assets/vuetify.js +2 -2
  23. package/dist/index.html +2 -2
  24. package/index.d.ts +256 -0
  25. package/index.html +1 -1
  26. package/index.js +48 -11
  27. package/package.json +22 -15
  28. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +3 -0
  29. package/plugins/@vcmap-show-case/category-tester/src/CategoriesExample.vue +312 -43
  30. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +48 -182
  31. package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +118 -0
  32. package/plugins/@vcmap-show-case/category-tester/src/importExportHelper.js +29 -0
  33. package/plugins/@vcmap-show-case/category-tester/src/index.js +16 -0
  34. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +2 -1
  35. package/plugins/@vcmap-show-case/collection-manager-example/src/index.js +8 -4
  36. package/plugins/@vcmap-show-case/extent-example/README.md +3 -0
  37. package/plugins/@vcmap-show-case/extent-example/package.json +5 -0
  38. package/plugins/@vcmap-show-case/extent-example/src/ExtentExample.vue +71 -0
  39. package/plugins/@vcmap-show-case/extent-example/src/index.js +68 -0
  40. package/plugins/@vcmap-show-case/flight-component-example/README.md +3 -0
  41. package/plugins/@vcmap-show-case/flight-component-example/package.json +5 -0
  42. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +53 -0
  43. package/plugins/@vcmap-show-case/flight-component-example/src/index.js +42 -0
  44. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +78 -5
  45. package/plugins/@vcmap-show-case/hello-world/src/helloWorld.vue +2 -2
  46. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +22 -10
  47. package/plugins/@vcmap-show-case/toolbox-example/README.md +9 -0
  48. package/plugins/@vcmap-show-case/toolbox-example/package.json +5 -0
  49. package/plugins/@vcmap-show-case/toolbox-example/src/TriStateExampleWindow.vue +21 -0
  50. package/plugins/@vcmap-show-case/toolbox-example/src/dummyToolboxActions.js +94 -0
  51. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +260 -0
  52. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +12 -2
  53. package/plugins/@vcmap-show-case/viewpoint-component-example/README.md +3 -0
  54. package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +5 -0
  55. package/plugins/@vcmap-show-case/viewpoint-component-example/src/ViewpointExample.vue +52 -0
  56. package/plugins/@vcmap-show-case/viewpoint-component-example/src/index.js +42 -0
  57. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +31 -1
  58. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +20 -16
  59. package/plugins/@vcmap-show-case/window-tester/src/index.js +2 -17
  60. package/plugins/package.json +3 -1
  61. package/src/actions/StyleSelector.vue +8 -7
  62. package/src/actions/StyleSelector.vue.d.ts +27 -0
  63. package/src/actions/actionHelper.d.ts +153 -0
  64. package/src/actions/actionHelper.js +48 -21
  65. package/src/actions/extentActions.d.ts +40 -0
  66. package/src/actions/extentActions.js +359 -0
  67. package/src/actions/flightActions.d.ts +59 -0
  68. package/src/actions/flightActions.js +232 -0
  69. package/src/actions/listActions.d.ts +63 -0
  70. package/src/actions/listActions.js +185 -0
  71. package/src/actions/stateRefAction.d.ts +19 -0
  72. package/src/actions/stateRefAction.js +1 -1
  73. package/src/application/VcsApp.vue +103 -28
  74. package/src/application/VcsApp.vue.d.ts +86 -0
  75. package/src/application/VcsAppWrapper.vue.d.ts +12 -0
  76. package/src/application/VcsAttributions.vue.d.ts +14 -0
  77. package/src/application/VcsAttributionsFooter.vue +1 -4
  78. package/src/application/VcsAttributionsFooter.vue.d.ts +26 -0
  79. package/src/application/VcsMap.vue.d.ts +12 -0
  80. package/src/application/VcsNavbar.vue.d.ts +45 -0
  81. package/src/application/VcsPositionDisplay.vue +208 -0
  82. package/src/application/VcsPositionDisplay.vue.d.ts +18 -0
  83. package/src/application/VcsSettings.vue.d.ts +5 -0
  84. package/src/application/VcsTextPage.vue +65 -0
  85. package/src/application/VcsTextPage.vue.d.ts +16 -0
  86. package/src/application/VcsTextPageFooter.vue +89 -0
  87. package/src/application/VcsTextPageFooter.vue.d.ts +22 -0
  88. package/src/application/attributionsHelper.d.ts +64 -0
  89. package/src/application/attributionsHelper.js +1 -1
  90. package/src/application/markdownHelper.d.ts +5 -0
  91. package/src/application/markdownHelper.js +11 -0
  92. package/src/application/positionDisplayInteraction.d.ts +42 -0
  93. package/src/application/positionDisplayInteraction.js +65 -0
  94. package/src/callback/activateLayersCallback.d.ts +29 -0
  95. package/src/callback/activateLayersCallback.js +2 -2
  96. package/src/callback/applyLayerStyleCallback.d.ts +36 -0
  97. package/src/callback/applyLayerStyleCallback.js +2 -2
  98. package/src/callback/deactivateLayersCallback.d.ts +29 -0
  99. package/src/callback/deactivateLayersCallback.js +2 -2
  100. package/src/callback/goToViewpointCallback.d.ts +29 -0
  101. package/src/callback/goToViewpointCallback.js +2 -2
  102. package/src/callback/vcsCallback.d.ts +44 -0
  103. package/src/callback/vcsCallback.js +4 -9
  104. package/src/components/ImageElementInjector.vue.d.ts +24 -0
  105. package/src/components/buttons/VcsActionButtonList.vue +24 -16
  106. package/src/components/buttons/VcsActionButtonList.vue.d.ts +68 -0
  107. package/src/components/buttons/VcsButton.vue +7 -0
  108. package/src/components/buttons/VcsButton.vue.d.ts +89 -0
  109. package/src/components/buttons/VcsFormButton.vue +9 -0
  110. package/src/components/buttons/VcsFormButton.vue.d.ts +91 -0
  111. package/src/components/buttons/VcsToolButton.vue +9 -0
  112. package/src/components/buttons/VcsToolButton.vue.d.ts +91 -0
  113. package/src/components/flight/VcsFlightAnchorsComponent.vue +329 -0
  114. package/src/components/flight/VcsFlightAnchorsComponent.vue.d.ts +45 -0
  115. package/src/components/flight/VcsFlightComponent.vue +284 -0
  116. package/src/components/flight/VcsFlightComponent.vue.d.ts +104 -0
  117. package/src/components/flight/VcsFlightEditor.vue +77 -0
  118. package/src/components/flight/VcsFlightEditor.vue.d.ts +34 -0
  119. package/src/components/flight/VcsFlightPlayer.vue +124 -0
  120. package/src/components/flight/VcsFlightPlayer.vue.d.ts +25 -0
  121. package/src/components/flight/composables.d.ts +11 -0
  122. package/src/components/flight/composables.js +39 -0
  123. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +18 -0
  124. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +82 -0
  125. package/src/components/form-inputs-controls/VcsCoordinate.vue +152 -0
  126. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +90 -0
  127. package/src/components/form-inputs-controls/VcsDatePicker.vue +2 -2
  128. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +31 -0
  129. package/src/components/form-inputs-controls/VcsExtent.vue +122 -0
  130. package/src/components/form-inputs-controls/VcsExtent.vue.d.ts +36 -0
  131. package/src/components/form-inputs-controls/VcsFormSection.vue +6 -1
  132. package/src/components/form-inputs-controls/VcsFormSection.vue.d.ts +75 -0
  133. package/src/components/form-inputs-controls/VcsLabel.vue +18 -0
  134. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +41 -0
  135. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +32 -0
  136. package/src/components/form-inputs-controls/VcsRadioGrid.vue.d.ts +35 -0
  137. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +31 -0
  138. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +2 -0
  139. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +22 -0
  140. package/src/components/form-inputs-controls/VcsTextField.vue +57 -10
  141. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +65 -0
  142. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +14 -0
  143. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +89 -0
  144. package/src/components/form-inputs-controls/composables.d.ts +7 -0
  145. package/src/components/form-inputs-controls/composables.js +1 -1
  146. package/src/components/form-output/VcsFormattedNumber.vue +13 -2
  147. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +89 -0
  148. package/src/components/icons/+all.d.ts +9 -0
  149. package/src/components/icons/+all.js +16 -0
  150. package/src/components/icons/2DAreaIcon.vue.d.ts +2 -0
  151. package/src/components/icons/2DDistanceIcon.vue.d.ts +2 -0
  152. package/src/components/icons/2DHeightObliqueIcon.vue +20 -0
  153. package/src/components/icons/2DHeightObliqueIcon.vue.d.ts +2 -0
  154. package/src/components/icons/3DAreaIcon.vue.d.ts +2 -0
  155. package/src/components/icons/3DDistanceIcon.vue.d.ts +2 -0
  156. package/src/components/icons/3DHeightIcon.vue.d.ts +2 -0
  157. package/src/components/icons/AngleIcon.vue.d.ts +2 -0
  158. package/src/components/icons/AssociationsIcon.vue.d.ts +2 -0
  159. package/src/components/icons/AxisIcon.vue.d.ts +2 -0
  160. package/src/components/icons/BoundingBoxIcon.vue.d.ts +2 -0
  161. package/src/components/icons/CheckboxCheckedIcon.vue.d.ts +2 -0
  162. package/src/components/icons/CheckboxIcon.vue.d.ts +2 -0
  163. package/src/components/icons/CheckboxIndeterminateIcon.vue.d.ts +2 -0
  164. package/src/components/icons/CircleIcon.vue.d.ts +2 -0
  165. package/src/components/icons/ClippingHorizontalIcon.vue.d.ts +2 -0
  166. package/src/components/icons/ClippingIcon.vue.d.ts +2 -0
  167. package/src/components/icons/ClippingVerticalIcon.vue.d.ts +2 -0
  168. package/src/components/icons/ColorPickerIcon.vue.d.ts +2 -0
  169. package/src/components/icons/ColorSwatchIcon.vue.d.ts +2 -0
  170. package/src/components/icons/CommentIcon.vue.d.ts +2 -0
  171. package/src/components/icons/CompassIcon.vue.d.ts +2 -0
  172. package/src/components/icons/ComponentsIcon.vue.d.ts +2 -0
  173. package/src/components/icons/ComponentsPlusIcon.vue +17 -0
  174. package/src/components/icons/ComponentsPlusIcon.vue.d.ts +2 -0
  175. package/src/components/icons/ConeIcon.vue.d.ts +2 -0
  176. package/src/components/icons/DimensionsHouseIcon.vue.d.ts +2 -0
  177. package/src/components/icons/EditIcon.vue.d.ts +2 -0
  178. package/src/components/icons/EditVerticesIcon.vue.d.ts +2 -0
  179. package/src/components/icons/ElevationProfileIcon.vue.d.ts +2 -0
  180. package/src/components/icons/ExportAreaIcon.vue.d.ts +2 -0
  181. package/src/components/icons/ExportFlightIcon.vue.d.ts +2 -0
  182. package/src/components/icons/ExportIcon.vue.d.ts +2 -0
  183. package/src/components/icons/ExternalLinkIcon.vue.d.ts +2 -0
  184. package/src/components/icons/EyeIcon.vue.d.ts +2 -0
  185. package/src/components/icons/FastForwardIcon.vue.d.ts +2 -0
  186. package/src/components/icons/FilterIcon.vue.d.ts +2 -0
  187. package/src/components/icons/GlobalTerrainIcon.vue.d.ts +2 -0
  188. package/src/components/icons/GlobeNatureIcon.vue.d.ts +2 -0
  189. package/src/components/icons/GroundIcon.vue.d.ts +2 -0
  190. package/src/components/icons/HealthCareIndustriesIcon.vue.d.ts +2 -0
  191. package/src/components/icons/HelpIcon.vue.d.ts +2 -0
  192. package/src/components/icons/HideIcon.vue.d.ts +2 -0
  193. package/src/components/icons/HomePointIcon.vue.d.ts +2 -0
  194. package/src/components/icons/HospitalsIcon.vue.d.ts +2 -0
  195. package/src/components/icons/HouseIcon.vue.d.ts +2 -0
  196. package/src/components/icons/ImportIcon.vue.d.ts +2 -0
  197. package/src/components/icons/InfoIcon.vue.d.ts +2 -0
  198. package/src/components/icons/KebabIcon.vue.d.ts +2 -0
  199. package/src/components/icons/LabelIcon.vue.d.ts +2 -0
  200. package/src/components/icons/LayersIcon.vue.d.ts +2 -0
  201. package/src/components/icons/LegendIcon.vue.d.ts +2 -0
  202. package/src/components/icons/LineIcon.vue.d.ts +2 -0
  203. package/src/components/icons/LinkIcon.vue.d.ts +2 -0
  204. package/src/components/icons/LogoutIcon.vue.d.ts +2 -0
  205. package/src/components/icons/MapIcon.vue.d.ts +2 -0
  206. package/src/components/icons/MenuIcon.vue.d.ts +2 -0
  207. package/src/components/icons/MinusIcon.vue.d.ts +2 -0
  208. package/src/components/icons/MultiViewIcon.vue +16 -0
  209. package/src/components/icons/MultiViewIcon.vue.d.ts +2 -0
  210. package/src/components/icons/ObjectAttributeIcon.vue.d.ts +2 -0
  211. package/src/components/icons/ObjectSelectIcon.vue.d.ts +2 -0
  212. package/src/components/icons/ObliqueViewIcon.vue.d.ts +2 -0
  213. package/src/components/icons/PdfIcon.vue.d.ts +2 -0
  214. package/src/components/icons/PedestrianIcon.vue.d.ts +2 -0
  215. package/src/components/icons/PenIcon.vue.d.ts +2 -0
  216. package/src/components/icons/PlayCircleIcon.vue.d.ts +2 -0
  217. package/src/components/icons/PlusIcon.vue.d.ts +2 -0
  218. package/src/components/icons/PoiIcon.vue.d.ts +2 -0
  219. package/src/components/icons/PointIcon.vue.d.ts +2 -0
  220. package/src/components/icons/PointMeasurementIcon.vue +36 -0
  221. package/src/components/icons/PointMeasurementIcon.vue.d.ts +2 -0
  222. package/src/components/icons/PointSelectIcon.vue.d.ts +2 -0
  223. package/src/components/icons/PresentationModeIcon.vue.d.ts +2 -0
  224. package/src/components/icons/ProgressIcon.vue.d.ts +2 -0
  225. package/src/components/icons/QueryIcon.vue.d.ts +2 -0
  226. package/src/components/icons/RectangleIcon.vue.d.ts +2 -0
  227. package/src/components/icons/ReturnIcon.vue.d.ts +2 -0
  228. package/src/components/icons/RewindIcon.vue.d.ts +2 -0
  229. package/src/components/icons/RotateLeftIcon.vue.d.ts +2 -0
  230. package/src/components/icons/RotateRightIcon.vue.d.ts +2 -0
  231. package/src/components/icons/ScreenshotIcon.vue.d.ts +2 -0
  232. package/src/components/icons/SearchIcon.vue.d.ts +2 -0
  233. package/src/components/icons/ShadowIcon.vue.d.ts +2 -0
  234. package/src/components/icons/ShapesIcon.vue.d.ts +2 -0
  235. package/src/components/icons/ShareIcon.vue.d.ts +2 -0
  236. package/src/components/icons/SimpleCircleFilledIcon.vue.d.ts +2 -0
  237. package/src/components/icons/SimpleCircleHalfFilledIcon.vue.d.ts +2 -0
  238. package/src/components/icons/SimpleCircleOutlinedIcon.vue.d.ts +2 -0
  239. package/src/components/icons/SkipNextIcon.vue.d.ts +2 -0
  240. package/src/components/icons/SkipPreviousIcon.vue.d.ts +2 -0
  241. package/src/components/icons/SplitViewIcon.vue.d.ts +2 -0
  242. package/src/components/icons/TerrainBoxIcon.vue.d.ts +2 -0
  243. package/src/components/icons/TextStyleIcon.vue.d.ts +2 -0
  244. package/src/components/icons/ThreeDimensionsIcon.vue.d.ts +2 -0
  245. package/src/components/icons/ToolsIcon.vue.d.ts +2 -0
  246. package/src/components/icons/TouchIcon.vue.d.ts +2 -0
  247. package/src/components/icons/TrashCanIcon.vue.d.ts +2 -0
  248. package/src/components/icons/TriangleIcon.vue.d.ts +2 -0
  249. package/src/components/icons/TwoDimensionsIcon.vue.d.ts +2 -0
  250. package/src/components/icons/UploadIcon.vue.d.ts +2 -0
  251. package/src/components/icons/UserProfileIcon.vue.d.ts +2 -0
  252. package/src/components/icons/UserShareIcon.vue.d.ts +2 -0
  253. package/src/components/icons/VideoRecorderIcon.vue.d.ts +2 -0
  254. package/src/components/icons/ViewpointFlightIcon.vue.d.ts +2 -0
  255. package/src/components/icons/ViewpointIcon.vue.d.ts +2 -0
  256. package/src/components/icons/Viewshed360Icon.vue.d.ts +2 -0
  257. package/src/components/icons/ViewshedConeIcon.vue.d.ts +2 -0
  258. package/src/components/icons/ViewshedIcon.vue.d.ts +2 -0
  259. package/src/components/icons/WalkingIcon.vue.d.ts +2 -0
  260. package/src/components/icons/WallIcon.vue.d.ts +2 -0
  261. package/src/components/icons/WandIcon.vue.d.ts +2 -0
  262. package/src/components/import/FileDrop.vue +69 -0
  263. package/src/components/import/FileDrop.vue.d.ts +26 -0
  264. package/src/components/import/ImportComponent.vue +78 -0
  265. package/src/components/import/ImportComponent.vue.d.ts +34 -0
  266. package/src/components/lists/VcsActionList.vue +8 -15
  267. package/src/components/lists/VcsActionList.vue.d.ts +66 -0
  268. package/src/components/lists/VcsList.vue +207 -116
  269. package/src/components/lists/VcsList.vue.d.ts +227 -0
  270. package/src/components/lists/VcsTreeview.vue +3 -1
  271. package/src/components/lists/VcsTreeview.vue.d.ts +28 -0
  272. package/src/components/lists/VcsTreeviewLeaf.vue +1 -0
  273. package/src/components/lists/VcsTreeviewLeaf.vue.d.ts +19 -0
  274. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +41 -0
  275. package/src/components/notification/VcsBadge.vue.d.ts +14 -0
  276. package/src/components/notification/VcsHelp.vue.d.ts +22 -0
  277. package/src/components/notification/VcsTooltip.vue.d.ts +27 -0
  278. package/src/components/notification/validation.d.ts +8 -0
  279. package/src/components/notification/validation.js +3 -2
  280. package/src/components/plugins/AbstractConfigEditor.vue +25 -4
  281. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +55 -0
  282. package/src/components/style/MenuWrapper.vue.d.ts +55 -0
  283. package/src/components/style/VcsFeatureStyleComponent.vue +389 -0
  284. package/src/components/style/VcsFeatureStyleComponent.vue.d.ts +31 -0
  285. package/src/components/style/VcsFillMenu.vue.d.ts +34 -0
  286. package/src/components/style/VcsFillSelector.vue.d.ts +22 -0
  287. package/src/components/style/VcsImageMenu.vue.d.ts +43 -0
  288. package/src/components/style/VcsImageSelector.vue.d.ts +128 -0
  289. package/src/components/style/VcsStrokeMenu.vue.d.ts +34 -0
  290. package/src/components/style/VcsStrokeSelector.vue.d.ts +23 -0
  291. package/src/components/style/VcsTextMenu.vue.d.ts +52 -0
  292. package/src/components/style/VcsTextSelector.vue.d.ts +58 -0
  293. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +76 -0
  294. package/src/components/style/composables.d.ts +43 -0
  295. package/src/components/style/composables.js +11 -8
  296. package/src/components/tables/VcsDataTable.vue +11 -3
  297. package/src/components/tables/VcsDataTable.vue.d.ts +142 -0
  298. package/src/components/tables/VcsTable.vue +71 -2
  299. package/src/components/tables/VcsTable.vue.d.ts +88 -0
  300. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +392 -0
  301. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +87 -0
  302. package/src/components/vector-properties/VcsFeatureTransforms.vue +217 -0
  303. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +45 -0
  304. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +96 -52
  305. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +119 -0
  306. package/src/components/vector-properties/composables.d.ts +33 -0
  307. package/src/components/vector-properties/composables.js +21 -14
  308. package/src/components/viewpoint/VcsViewpointComponent.vue +514 -0
  309. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +126 -0
  310. package/src/components/viewpoint/VcsViewpointEditor.vue +87 -0
  311. package/src/components/viewpoint/VcsViewpointEditor.vue.d.ts +25 -0
  312. package/src/contentTree/LayerTree.vue.d.ts +15 -0
  313. package/src/contentTree/contentTreeCollection.d.ts +113 -0
  314. package/src/contentTree/contentTreeCollection.js +10 -20
  315. package/src/contentTree/contentTreeItem.d.ts +334 -0
  316. package/src/contentTree/contentTreeItem.js +31 -17
  317. package/src/contentTree/flightContentTreeItem.d.ts +53 -0
  318. package/src/contentTree/flightContentTreeItem.js +201 -0
  319. package/src/contentTree/groupContentTreeItem.d.ts +14 -0
  320. package/src/contentTree/groupContentTreeItem.js +2 -2
  321. package/src/contentTree/layerContentTreeItem.d.ts +76 -0
  322. package/src/contentTree/layerContentTreeItem.js +7 -9
  323. package/src/contentTree/layerGroupContentTreeItem.d.ts +50 -0
  324. package/src/contentTree/layerGroupContentTreeItem.js +2 -3
  325. package/src/contentTree/nodeContentTreeItem.d.ts +10 -0
  326. package/src/contentTree/nodeContentTreeItem.js +2 -2
  327. package/src/contentTree/obliqueCollectionContentTreeItem.d.ts +46 -0
  328. package/src/contentTree/obliqueCollectionContentTreeItem.js +3 -5
  329. package/src/contentTree/subContentTreeItem.d.ts +15 -0
  330. package/src/contentTree/subContentTreeItem.js +3 -3
  331. package/src/contentTree/vcsObjectContentTreeItem.d.ts +56 -0
  332. package/src/contentTree/vcsObjectContentTreeItem.js +3 -4
  333. package/src/contentTree/viewpointContentTreeItem.d.ts +46 -0
  334. package/src/contentTree/viewpointContentTreeItem.js +3 -4
  335. package/src/downloadHelper.d.ts +27 -0
  336. package/src/featureInfo/AddressBalloonComponent.vue.d.ts +2 -0
  337. package/src/featureInfo/BalloonComponent.vue +16 -3
  338. package/src/featureInfo/BalloonComponent.vue.d.ts +61 -0
  339. package/src/featureInfo/abstractFeatureInfoView.d.ts +199 -0
  340. package/src/featureInfo/abstractFeatureInfoView.js +82 -18
  341. package/src/featureInfo/addressBalloonFeatureInfoView.d.ts +67 -0
  342. package/src/featureInfo/addressBalloonFeatureInfoView.js +9 -2
  343. package/src/featureInfo/balloonFeatureInfoView.d.ts +49 -0
  344. package/src/featureInfo/balloonFeatureInfoView.js +12 -11
  345. package/src/featureInfo/balloonHelper.d.ts +31 -0
  346. package/src/featureInfo/balloonHelper.js +6 -6
  347. package/src/featureInfo/featureInfo.d.ts +146 -0
  348. package/src/featureInfo/featureInfo.js +11 -16
  349. package/src/featureInfo/featureInfoInteraction.d.ts +21 -0
  350. package/src/featureInfo/featureInfoInteraction.js +2 -2
  351. package/src/featureInfo/iframeFeatureInfoView.d.ts +48 -0
  352. package/src/featureInfo/iframeFeatureInfoView.js +3 -5
  353. package/src/featureInfo/tableFeatureInfoView.d.ts +75 -0
  354. package/src/featureInfo/tableFeatureInfoView.js +19 -9
  355. package/src/i18n/de.d.ts +353 -0
  356. package/src/i18n/de.js +114 -2
  357. package/src/i18n/en.d.ts +352 -0
  358. package/src/i18n/en.js +113 -1
  359. package/src/i18n/i18nCollection.d.ts +82 -0
  360. package/src/i18n/i18nCollection.js +3 -3
  361. package/src/init.d.ts +58 -0
  362. package/src/init.js +3 -5
  363. package/src/legend/StyleLegendItem.vue.d.ts +25 -0
  364. package/src/legend/VcsLegend.vue.d.ts +20 -0
  365. package/src/legend/legendHelper.d.ts +172 -0
  366. package/src/legend/legendHelper.js +21 -21
  367. package/src/manager/buttonManager.d.ts +106 -0
  368. package/src/manager/buttonManager.js +8 -4
  369. package/src/manager/collectionManager/CollectionComponent.vue +38 -38
  370. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +17 -0
  371. package/src/manager/collectionManager/CollectionComponentList.vue +78 -24
  372. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +38 -0
  373. package/src/manager/collectionManager/CollectionComponentProvider.vue +3 -2
  374. package/src/manager/collectionManager/CollectionComponentProvider.vue.d.ts +12 -0
  375. package/src/manager/collectionManager/CollectionManager.vue +29 -4
  376. package/src/manager/collectionManager/CollectionManager.vue.d.ts +8 -0
  377. package/src/manager/collectionManager/categoryManager.d.ts +56 -0
  378. package/src/manager/collectionManager/categoryManager.js +21 -7
  379. package/src/manager/collectionManager/collectionComponentClass.d.ts +257 -0
  380. package/src/manager/collectionManager/{collectionComponent.js → collectionComponentClass.js} +210 -57
  381. package/src/manager/collectionManager/collectionManager.d.ts +200 -0
  382. package/src/manager/collectionManager/collectionManager.js +45 -39
  383. package/src/manager/collectionManager/editorCollectionComponentClass.d.ts +60 -0
  384. package/src/manager/collectionManager/editorCollectionComponentClass.js +295 -0
  385. package/src/manager/contextMenu/ContextMenuComponent.vue.d.ts +18 -0
  386. package/src/manager/contextMenu/contextMenuInteraction.d.ts +24 -0
  387. package/src/manager/contextMenu/contextMenuManager.d.ts +70 -0
  388. package/src/manager/contextMenu/contextMenuManager.js +5 -5
  389. package/src/manager/navbarManager.d.ts +60 -0
  390. package/src/manager/navbarManager.js +10 -6
  391. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +17 -0
  392. package/src/manager/toolbox/SelectToolboxComponent.vue +1 -0
  393. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +15 -0
  394. package/src/manager/toolbox/ToolboxManager.vue +33 -7
  395. package/src/manager/toolbox/ToolboxManager.vue.d.ts +21 -0
  396. package/src/manager/toolbox/toolboxManager.d.ts +177 -0
  397. package/src/manager/toolbox/toolboxManager.js +86 -31
  398. package/src/manager/window/WindowComponent.vue.d.ts +40 -0
  399. package/src/manager/window/WindowComponentHeader.vue +1 -1
  400. package/src/manager/window/WindowComponentHeader.vue.d.ts +36 -0
  401. package/src/manager/window/WindowManager.vue +1 -0
  402. package/src/manager/window/WindowManager.vue.d.ts +19 -0
  403. package/src/manager/window/windowHelper.d.ts +134 -0
  404. package/src/manager/window/windowHelper.js +20 -20
  405. package/src/manager/window/windowManager.d.ts +422 -0
  406. package/src/manager/window/windowManager.js +95 -40
  407. package/src/navigation/MapNavCompass.vue.d.ts +25 -0
  408. package/src/navigation/MapNavigation.vue +2 -2
  409. package/src/navigation/MapNavigation.vue.d.ts +46 -0
  410. package/src/navigation/ObliqueRotation.vue +8 -4
  411. package/src/navigation/ObliqueRotation.vue.d.ts +14 -0
  412. package/src/navigation/OrientationToolsButton.vue.d.ts +30 -0
  413. package/src/navigation/TiltSlider.vue.d.ts +19 -0
  414. package/src/navigation/VcsCompass.vue.d.ts +25 -0
  415. package/src/navigation/VcsZoomButton.vue +6 -3
  416. package/src/navigation/VcsZoomButton.vue.d.ts +2 -0
  417. package/src/navigation/overviewMap.d.ts +199 -0
  418. package/src/navigation/overviewMap.js +3 -7
  419. package/src/navigation/overviewMapClickedInteraction.d.ts +21 -0
  420. package/src/notifier/NotifierComponent.vue.d.ts +10 -0
  421. package/src/notifier/notifier.d.ts +53 -0
  422. package/src/notifier/notifier.js +0 -1
  423. package/src/pluginHelper.d.ts +67 -0
  424. package/src/pluginHelper.js +11 -9
  425. package/src/search/ResultItem.vue.d.ts +25 -0
  426. package/src/search/ResultsComponent.vue +1 -1
  427. package/src/search/ResultsComponent.vue.d.ts +24 -0
  428. package/src/search/SearchComponent.vue +1 -1
  429. package/src/search/SearchComponent.vue.d.ts +10 -0
  430. package/src/search/search.d.ts +129 -0
  431. package/src/search/search.js +8 -11
  432. package/src/setup.d.ts +1 -0
  433. package/src/state.d.ts +57 -0
  434. package/src/state.js +7 -5
  435. package/src/uiConfig.d.ts +99 -0
  436. package/src/uiConfig.js +17 -7
  437. package/src/vcsUiApp.d.ts +301 -0
  438. package/src/vcsUiApp.js +57 -53
  439. package/src/vuePlugins/i18n.d.ts +10 -0
  440. package/src/vuePlugins/i18n.js +3 -3
  441. package/src/vuePlugins/vuetify.d.ts +27 -0
  442. package/tsconfig.json +36 -0
  443. package/dist/assets/index-f265c560.js +0 -1
  444. package/plugins/@vcmap-show-case/window-tester/src/toolboxData.js +0 -288
@@ -0,0 +1,284 @@
1
+ <template>
2
+ <v-sheet>
3
+ <VcsFormSection
4
+ :heading="heading"
5
+ :expandable="expandable"
6
+ start-open
7
+ v-if="
8
+ !(
9
+ hideGeneral ||
10
+ (hideName &&
11
+ hideTitle &&
12
+ hideInterpolation &&
13
+ hideDuration &&
14
+ hideLoop)
15
+ )
16
+ "
17
+ >
18
+ <v-container class="py-0 px-1">
19
+ <v-row no-gutters v-if="!hideName">
20
+ <v-col cols="6">
21
+ <VcsLabel html-for="name" dense required>
22
+ {{ $t('components.flight.name') }}
23
+ </VcsLabel>
24
+ </v-col>
25
+ <v-col>
26
+ <VcsTextField id="name" dense clearable v-model="name" />
27
+ </v-col>
28
+ </v-row>
29
+ <v-row no-gutters v-if="!hideTitle">
30
+ <v-col cols="6">
31
+ <VcsLabel html-for="title" dense>
32
+ {{ $t('components.flight.title') }}
33
+ </VcsLabel>
34
+ </v-col>
35
+ <v-col>
36
+ <VcsTextField
37
+ id="title"
38
+ dense
39
+ clearable
40
+ :placeholder="$t('components.flight.titlePlaceholder')"
41
+ v-model="title"
42
+ />
43
+ </v-col>
44
+ </v-row>
45
+ <v-row no-gutters v-if="!hideInterpolation">
46
+ <v-col cols="6">
47
+ <VcsLabel html-for="interpolation" dense>
48
+ {{ $t('components.flight.interpolation') }}
49
+ </VcsLabel>
50
+ </v-col>
51
+ <v-col>
52
+ <VcsSelect
53
+ id="title"
54
+ dense
55
+ :items="[
56
+ { value: 'spline', text: 'components.flight.spline' },
57
+ { value: 'linear', text: 'components.flight.linear' },
58
+ ]"
59
+ v-model="interpolation"
60
+ />
61
+ </v-col>
62
+ </v-row>
63
+ <v-row no-gutters v-if="!hideDuration">
64
+ <v-col cols="6">
65
+ <VcsLabel html-for="duration" dense>
66
+ {{ $t('components.flight.duration') }}
67
+ </VcsLabel>
68
+ </v-col>
69
+ <v-col>
70
+ <VcsTextField
71
+ id="duration"
72
+ v-model.number="duration"
73
+ type="number"
74
+ unit="s"
75
+ step="1"
76
+ :decimals="2"
77
+ :rules="[durationRule]"
78
+ />
79
+ </v-col>
80
+ </v-row>
81
+ <v-row no-gutters v-if="!hideLoop">
82
+ <v-col cols="6">
83
+ <VcsCheckbox
84
+ id="animate"
85
+ label="components.flight.loop"
86
+ dense
87
+ v-model="loop"
88
+ />
89
+ </v-col>
90
+ </v-row>
91
+ </v-container>
92
+ </VcsFormSection>
93
+ <VcsFlightAnchorsComponent
94
+ :parent-id="parentId"
95
+ :owner="owner"
96
+ :expandable="expandable"
97
+ />
98
+ <v-divider class="mt-4" />
99
+ <VcsFlightPlayer :disabled="disablePlayer" />
100
+ </v-sheet>
101
+ </template>
102
+
103
+ <script>
104
+ import { computed, onUnmounted, ref, inject } from 'vue';
105
+ import { VSheet, VContainer, VRow, VCol, VDivider } from 'vuetify/lib';
106
+ import { getSplineAndTimesForInstance } from '@vcmap/core';
107
+ import VcsFormSection from '../form-inputs-controls/VcsFormSection.vue';
108
+ import VcsLabel from '../form-inputs-controls/VcsLabel.vue';
109
+ import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
110
+ import VcsSelect from '../form-inputs-controls/VcsSelect.vue';
111
+ import VcsCheckbox from '../form-inputs-controls/VcsCheckbox.vue';
112
+ import VcsFlightAnchorsComponent, {
113
+ durationRule,
114
+ } from './VcsFlightAnchorsComponent.vue';
115
+ import VcsFlightPlayer from './VcsFlightPlayer.vue';
116
+ import { vcsAppSymbol } from '../../pluginHelper.js';
117
+ import {
118
+ getProvidedFlightInstance,
119
+ setupFlightAnchorEditingListener,
120
+ } from './composables.js';
121
+
122
+ /**
123
+ * @param {import("@vcmap/core").FlightInstance} instance
124
+ * @returns {number}
125
+ */
126
+ function getFlightDuration(instance) {
127
+ if (instance.isValid()) {
128
+ const { times } = getSplineAndTimesForInstance(instance);
129
+ return times.at(-1);
130
+ }
131
+ return 0;
132
+ }
133
+
134
+ /**
135
+ * @description A component to model @vcmap/core/FlightInstanceOptions.
136
+ * Requires a flightInstance to be provided via vue-provide.
137
+ * If a reset functionality is required use shallowRef to provide the flightInstance.
138
+ * @vue-prop {string} heading - Title of flight settings.
139
+ * @vue-prop {boolean} [expandable] - Expandable sections.
140
+ * @vue-prop {boolean} hideName - Hide name input.
141
+ * @vue-prop {boolean} hideTitle - Hide title input.
142
+ * @vue-prop {boolean} hideInterpolation - Hide select interpolation input.
143
+ * @vue-prop {boolean} hideLoop - Hide loop input.
144
+ * @vue-prop {boolean} hideGeneral - Hide all general settings (name, title, animate).
145
+ * @vue-prop {string} [parentId] - id of the window, the VcsFlightComponent is used in
146
+ * @vue-prop {string} [owner] - owner of the window, e.g. a plugin name
147
+ */
148
+ export default {
149
+ name: 'VcsFlightComponent',
150
+ components: {
151
+ VcsFlightPlayer,
152
+ VcsFlightAnchorsComponent,
153
+ VSheet,
154
+ VContainer,
155
+ VRow,
156
+ VCol,
157
+ VDivider,
158
+ VcsFormSection,
159
+ VcsLabel,
160
+ VcsTextField,
161
+ VcsSelect,
162
+ VcsCheckbox,
163
+ },
164
+ props: {
165
+ heading: {
166
+ type: String,
167
+ default: 'components.flight.general',
168
+ },
169
+ expandable: {
170
+ type: Boolean,
171
+ default: false,
172
+ },
173
+ hideName: {
174
+ type: Boolean,
175
+ default: false,
176
+ },
177
+ hideTitle: {
178
+ type: Boolean,
179
+ default: false,
180
+ },
181
+ hideInterpolation: {
182
+ type: Boolean,
183
+ default: false,
184
+ },
185
+ hideDuration: {
186
+ type: Boolean,
187
+ default: false,
188
+ },
189
+ hideLoop: {
190
+ type: Boolean,
191
+ default: false,
192
+ },
193
+ hideGeneral: {
194
+ type: Boolean,
195
+ default: false,
196
+ },
197
+ parentId: {
198
+ type: String,
199
+ default: undefined,
200
+ },
201
+ owner: {
202
+ type: [String, Symbol],
203
+ default: vcsAppSymbol,
204
+ },
205
+ },
206
+ setup() {
207
+ const app = inject('vcsApp');
208
+ const flightInstance = getProvidedFlightInstance();
209
+ const flightDuration = ref(getFlightDuration(flightInstance));
210
+ const disablePlayer = ref(!(flightDuration.value > 0));
211
+ const flightDurationListener = [
212
+ flightInstance.anchorsChanged.addEventListener(() => {
213
+ flightDuration.value = getFlightDuration(flightInstance);
214
+ disablePlayer.value = !(flightDuration.value > 0);
215
+ }),
216
+ flightInstance.propertyChanged.addEventListener((prop) => {
217
+ if (prop === 'loop') {
218
+ flightDuration.value = getFlightDuration(flightInstance);
219
+ }
220
+ }),
221
+ ];
222
+ const editingListener = setupFlightAnchorEditingListener(
223
+ app.windowManager,
224
+ disablePlayer,
225
+ );
226
+
227
+ onUnmounted(() => {
228
+ flightDurationListener.forEach((cb) => cb());
229
+ editingListener();
230
+ });
231
+
232
+ return {
233
+ name: flightInstance.name,
234
+ title: computed({
235
+ get() {
236
+ return flightInstance?.properties?.title;
237
+ },
238
+ set(value) {
239
+ if (flightInstance.properties) {
240
+ flightInstance.properties.title = value;
241
+ } else {
242
+ flightInstance.properties = { title: value };
243
+ }
244
+ },
245
+ }),
246
+ interpolation: computed({
247
+ get() {
248
+ return flightInstance?.interpolation;
249
+ },
250
+ set(value) {
251
+ flightInstance.interpolation = value;
252
+ },
253
+ }),
254
+ duration: computed({
255
+ get() {
256
+ return flightDuration.value;
257
+ },
258
+ set(value) {
259
+ if (
260
+ Number.isFinite(value) &&
261
+ value > 0 &&
262
+ flightDuration.value > 0
263
+ ) {
264
+ const factor = value / flightDuration.value;
265
+ [...flightInstance.anchors].forEach((anchor) => {
266
+ anchor.duration *= factor;
267
+ });
268
+ }
269
+ },
270
+ }),
271
+ durationRule,
272
+ loop: computed({
273
+ get() {
274
+ return flightInstance?.loop;
275
+ },
276
+ set(value) {
277
+ flightInstance.loop = !!value;
278
+ },
279
+ }),
280
+ disablePlayer,
281
+ };
282
+ },
283
+ };
284
+ </script>
@@ -0,0 +1,104 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ heading: {
3
+ type: StringConstructor;
4
+ default: string;
5
+ };
6
+ expandable: {
7
+ type: BooleanConstructor;
8
+ default: boolean;
9
+ };
10
+ hideName: {
11
+ type: BooleanConstructor;
12
+ default: boolean;
13
+ };
14
+ hideTitle: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
18
+ hideInterpolation: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
22
+ hideDuration: {
23
+ type: BooleanConstructor;
24
+ default: boolean;
25
+ };
26
+ hideLoop: {
27
+ type: BooleanConstructor;
28
+ default: boolean;
29
+ };
30
+ hideGeneral: {
31
+ type: BooleanConstructor;
32
+ default: boolean;
33
+ };
34
+ parentId: {
35
+ type: StringConstructor;
36
+ default: undefined;
37
+ };
38
+ owner: {
39
+ type: (SymbolConstructor | StringConstructor)[];
40
+ default: symbol;
41
+ };
42
+ }, {
43
+ name: string;
44
+ title: import("vue").WritableComputedRef<unknown>;
45
+ interpolation: import("vue").WritableComputedRef<import("@vcmap/core").FlightInterpolation>;
46
+ duration: import("vue").WritableComputedRef<number>;
47
+ durationRule: typeof durationRule;
48
+ loop: import("vue").WritableComputedRef<boolean>;
49
+ disablePlayer: import("vue").Ref<boolean>;
50
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
51
+ heading: {
52
+ type: StringConstructor;
53
+ default: string;
54
+ };
55
+ expandable: {
56
+ type: BooleanConstructor;
57
+ default: boolean;
58
+ };
59
+ hideName: {
60
+ type: BooleanConstructor;
61
+ default: boolean;
62
+ };
63
+ hideTitle: {
64
+ type: BooleanConstructor;
65
+ default: boolean;
66
+ };
67
+ hideInterpolation: {
68
+ type: BooleanConstructor;
69
+ default: boolean;
70
+ };
71
+ hideDuration: {
72
+ type: BooleanConstructor;
73
+ default: boolean;
74
+ };
75
+ hideLoop: {
76
+ type: BooleanConstructor;
77
+ default: boolean;
78
+ };
79
+ hideGeneral: {
80
+ type: BooleanConstructor;
81
+ default: boolean;
82
+ };
83
+ parentId: {
84
+ type: StringConstructor;
85
+ default: undefined;
86
+ };
87
+ owner: {
88
+ type: (SymbolConstructor | StringConstructor)[];
89
+ default: symbol;
90
+ };
91
+ }>>, {
92
+ parentId: string;
93
+ owner: string | symbol;
94
+ heading: string;
95
+ expandable: boolean;
96
+ hideName: boolean;
97
+ hideTitle: boolean;
98
+ hideGeneral: boolean;
99
+ hideInterpolation: boolean;
100
+ hideDuration: boolean;
101
+ hideLoop: boolean;
102
+ }>;
103
+ export default _default;
104
+ import { durationRule } from './VcsFlightAnchorsComponent.vue';
@@ -0,0 +1,77 @@
1
+ <template>
2
+ <AbstractConfigEditor
3
+ @submit="apply"
4
+ @cancel="cancel"
5
+ @reset="reset"
6
+ v-bind="{ ...$attrs, ...$props }"
7
+ >
8
+ <VcsFlightComponent
9
+ :parent-id="$attrs['window-state'].id"
10
+ v-bind="{ ...$attrs, ...$props }"
11
+ />
12
+ </AbstractConfigEditor>
13
+ </template>
14
+
15
+ <script>
16
+ import { onUnmounted, provide } from 'vue';
17
+ import { FlightInstance } from '@vcmap/core';
18
+ import deepEqual from 'fast-deep-equal';
19
+ import AbstractConfigEditor from '../plugins/AbstractConfigEditor.vue';
20
+ import VcsFlightComponent from './VcsFlightComponent.vue';
21
+
22
+ /**
23
+ * An editor component for viewpoints using AbstractConfigEditor and VcsFlightComponent
24
+ * @vue-prop {() => import("@vcmap/core").FlightInstance} getProvidedFlightInstance
25
+ * @vue-prop {(instance: import("@vcmap/core).FlightInstance) => Promise<void>} setFlightInstance
26
+ */
27
+ export default {
28
+ name: 'VcsFlightEditor',
29
+ components: {
30
+ AbstractConfigEditor,
31
+ VcsFlightComponent,
32
+ },
33
+ props: {
34
+ getFlightInstance: {
35
+ type: Function,
36
+ required: true,
37
+ },
38
+ setFlightInstance: {
39
+ type: Function,
40
+ required: true,
41
+ },
42
+ resetFlightInstance: {
43
+ type: Function,
44
+ default: () => {},
45
+ },
46
+ },
47
+ setup(props, { emit }) {
48
+ const flightInstance = props.getFlightInstance();
49
+ let cancel = false;
50
+
51
+ const originalConfig = flightInstance.toJSON();
52
+ provide('flightInstance', flightInstance);
53
+
54
+ onUnmounted(() => {
55
+ if (!cancel && !deepEqual(originalConfig, flightInstance.toJSON())) {
56
+ props.setFlightInstance(flightInstance);
57
+ }
58
+ });
59
+
60
+ return {
61
+ async apply() {
62
+ emit('close');
63
+ },
64
+ async cancel() {
65
+ await props.resetFlightInstance(new FlightInstance(originalConfig));
66
+ cancel = true;
67
+ emit('close');
68
+ },
69
+ async reset() {
70
+ await props.resetFlightInstance(new FlightInstance(originalConfig));
71
+ },
72
+ };
73
+ },
74
+ };
75
+ </script>
76
+
77
+ <style scoped></style>
@@ -0,0 +1,34 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ getFlightInstance: {
3
+ type: FunctionConstructor;
4
+ required: true;
5
+ };
6
+ setFlightInstance: {
7
+ type: FunctionConstructor;
8
+ required: true;
9
+ };
10
+ resetFlightInstance: {
11
+ type: FunctionConstructor;
12
+ default: () => void;
13
+ };
14
+ }, {
15
+ apply(): Promise<void>;
16
+ cancel(): Promise<void>;
17
+ reset(): Promise<void>;
18
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
19
+ getFlightInstance: {
20
+ type: FunctionConstructor;
21
+ required: true;
22
+ };
23
+ setFlightInstance: {
24
+ type: FunctionConstructor;
25
+ required: true;
26
+ };
27
+ resetFlightInstance: {
28
+ type: FunctionConstructor;
29
+ default: () => void;
30
+ };
31
+ }>>, {
32
+ resetFlightInstance: Function;
33
+ }>;
34
+ export default _default;
@@ -0,0 +1,124 @@
1
+ <template>
2
+ <v-container class="py-0 px-1">
3
+ <VcsLabel>{{ $t('flight.player') }}</VcsLabel>
4
+ <VcsSlider
5
+ v-if="clock"
6
+ type="number"
7
+ v-model="clock.currentTime"
8
+ @change="setTime"
9
+ :step="0"
10
+ :min="clock.startTime"
11
+ :max="clock.endTime"
12
+ track-fill-color="primary"
13
+ :disabled="!isCurrentPlayer || disabled"
14
+ />
15
+ <div class="d-flex px-1 align-center justify-space-between">
16
+ <span>{{ clockTime(clock.currentTime) }}</span>
17
+ <VcsButton
18
+ class="d-flex"
19
+ v-for="(btn, index) in actions"
20
+ :key="`${btn.name}-${index}`"
21
+ :tooltip="btn.title"
22
+ :icon="btn.icon"
23
+ :active="btn.active"
24
+ :disabled="btn.disabled || disabled"
25
+ :has-update="btn.hasUpdate"
26
+ :background="btn.background"
27
+ @click.stop="btn.callback($event)"
28
+ v-bind="{ ...$attrs }"
29
+ v-on="{ ...$listeners, ...btn.listeners }"
30
+ />
31
+ <span>{{ clockTime(clock.endTime) }}</span>
32
+ </div>
33
+ </v-container>
34
+ </template>
35
+ <script>
36
+ import { inject, onMounted, onUnmounted, ref } from 'vue';
37
+ import { VContainer } from 'vuetify/lib';
38
+ import VcsSlider from '../form-inputs-controls/VcsSlider.vue';
39
+ import VcsLabel from '../form-inputs-controls/VcsLabel.vue';
40
+ import VcsButton from '../buttons/VcsButton.vue';
41
+ import { createFlightPlayerActions } from '../../actions/flightActions.js';
42
+ import { getProvidedFlightInstance } from './composables.js';
43
+
44
+ function getDefaultClock() {
45
+ return {
46
+ startTime: 0,
47
+ endTime: 0,
48
+ currentTime: 0,
49
+ times: [],
50
+ };
51
+ }
52
+
53
+ /**
54
+ * @description A component for editing flight anchors.
55
+ * Requires a flightInstance to be provided via vue-provide.
56
+ */
57
+ export default {
58
+ name: 'VcsFlightPlayer',
59
+ components: {
60
+ VcsLabel,
61
+ VcsButton,
62
+ VContainer,
63
+ VcsSlider,
64
+ },
65
+ props: {
66
+ disabled: {
67
+ type: Boolean,
68
+ default: false,
69
+ },
70
+ },
71
+ setup() {
72
+ const app = inject('vcsApp');
73
+ const flightInstance = getProvidedFlightInstance();
74
+ const clock = ref(getDefaultClock());
75
+ const isCurrentPlayer = ref(true);
76
+ let flightInstancePlayer;
77
+
78
+ const { actions, destroy } = createFlightPlayerActions(
79
+ app,
80
+ flightInstance,
81
+ );
82
+
83
+ const playerChangedListener = app.flights.playerChanged.addEventListener(
84
+ (player) => {
85
+ if (player?.flightInstanceName === flightInstance.name) {
86
+ isCurrentPlayer.value = true;
87
+ flightInstancePlayer = player;
88
+ clock.value = player.clock;
89
+ } else {
90
+ isCurrentPlayer.value = false;
91
+ flightInstancePlayer = undefined;
92
+ clock.value = getDefaultClock();
93
+ }
94
+ },
95
+ );
96
+
97
+ onMounted(async () => {
98
+ flightInstancePlayer =
99
+ await app.flights.setPlayerForFlight(flightInstance);
100
+ clock.value = flightInstancePlayer.clock;
101
+ });
102
+
103
+ onUnmounted(() => {
104
+ destroy();
105
+ playerChangedListener();
106
+ });
107
+
108
+ return {
109
+ clock,
110
+ actions,
111
+ isCurrentPlayer,
112
+ clockTime(seconds) {
113
+ const mins = Math.floor(seconds / 60);
114
+ const secs = Math.floor(seconds % 60);
115
+ return `${mins}:${secs < 10 ? 0 : ''}${secs}`;
116
+ },
117
+ setTime(seconds) {
118
+ flightInstancePlayer?.goToTime(seconds);
119
+ },
120
+ };
121
+ },
122
+ };
123
+ </script>
124
+ <style scoped lang="scss"></style>
@@ -0,0 +1,25 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ disabled: {
3
+ type: BooleanConstructor;
4
+ default: boolean;
5
+ };
6
+ }, {
7
+ clock: import("vue").Ref<{
8
+ startTime: number;
9
+ endTime: number;
10
+ currentTime: number;
11
+ times: never[];
12
+ }>;
13
+ actions: import("../../actions/actionHelper.js").VcsAction[];
14
+ isCurrentPlayer: import("vue").Ref<boolean>;
15
+ clockTime(seconds: any): string;
16
+ setTime(seconds: any): void;
17
+ }, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
18
+ disabled: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
22
+ }>>, {
23
+ disabled: boolean;
24
+ }>;
25
+ export default _default;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Unwraps the FlightInstance, if a shallowRef is provided
3
+ * @returns {import("@vcmap/core").FlightInstance}
4
+ */
5
+ export function getProvidedFlightInstance(): import("@vcmap/core").FlightInstance;
6
+ /**
7
+ * @param {import("../../manager/window/windowManager.js").default} windowManager
8
+ * @param {import("vue").Ref<boolean>} disabled
9
+ * @returns {(function(): void)}
10
+ */
11
+ export function setupFlightAnchorEditingListener(windowManager: import("../../manager/window/windowManager.js").default, disabled: import("vue").Ref<boolean>): (() => void);
@@ -0,0 +1,39 @@
1
+ import { inject, isRef, unref } from 'vue';
2
+ import VcsViewpointEditor from '../viewpoint/VcsViewpointEditor.vue';
3
+
4
+ /**
5
+ * Unwraps the FlightInstance, if a shallowRef is provided
6
+ * @returns {import("@vcmap/core").FlightInstance}
7
+ */
8
+ export function getProvidedFlightInstance() {
9
+ const injected = inject('flightInstance');
10
+ if (isRef(injected)) {
11
+ return unref(injected);
12
+ }
13
+ return injected;
14
+ }
15
+
16
+ /**
17
+ * @param {import("../../manager/window/windowManager.js").default} windowManager
18
+ * @param {import("vue").Ref<boolean>} disabled
19
+ * @returns {(function(): void)}
20
+ */
21
+ export function setupFlightAnchorEditingListener(windowManager, disabled) {
22
+ const editingAnchors = new Set();
23
+ const anchorEditorListeners = [
24
+ windowManager.added.addEventListener((added) => {
25
+ if (added.component === VcsViewpointEditor) {
26
+ editingAnchors.add(added.id);
27
+ }
28
+ }),
29
+ windowManager.removed.addEventListener((removed) => {
30
+ if (editingAnchors.has(removed.id)) {
31
+ editingAnchors.delete(removed.id);
32
+ }
33
+ disabled.value = editingAnchors.size > 0;
34
+ }),
35
+ ];
36
+ return () => {
37
+ anchorEditorListeners.forEach((cb) => cb());
38
+ };
39
+ }