@vcmap/ui 6.0.0-rc.8 → 6.0.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 (191) hide show
  1. package/README.md +2 -0
  2. package/build/buildHelpers.js +1 -1
  3. package/build/commonViteConfig.js +7 -0
  4. package/config/aerowest.config.json +12 -2
  5. package/config/analysis.config.json +17 -0
  6. package/config/base.config.json +19 -5
  7. package/config/components-show-case.config.json +53 -0
  8. package/config/concepts-show-case.config.json +39 -0
  9. package/config/dev.config.json +164 -105
  10. package/config/dynamic-layer.config.json +32 -0
  11. package/config/hello-world.config.json +11 -0
  12. package/config/projects.config.json +9 -1
  13. package/config/solar.config.json +65 -0
  14. package/config/vectorTile.config.json +70 -0
  15. package/config/www.config.json +34 -13
  16. package/dist/assets/{cesium-2ec6aae0.js → cesium-00deba88.js} +4672 -4704
  17. package/dist/assets/cesium.js +1 -1
  18. package/dist/assets/{core-6f2522e5.js → core-a599e8b6.js} +7932 -7342
  19. package/dist/assets/core.js +1 -1
  20. package/dist/assets/{ol-b0e134cb.js → ol-21bbc740.js} +12206 -11711
  21. package/dist/assets/ol.js +1 -1
  22. package/dist/assets/ui-adeddc7d.css +1 -0
  23. package/dist/assets/{ui-bf3d1f84.js → ui-adeddc7d.js} +10415 -9588
  24. package/dist/assets/ui.js +1 -1
  25. package/dist/assets/vue.js +1 -1
  26. package/dist/assets/{vuetify-99bf601c.css → vuetify-c0e02f11.css} +1 -1
  27. package/dist/assets/{vuetify-99bf601c.js → vuetify-c0e02f11.js} +5313 -5294
  28. package/dist/assets/vuetify.js +1 -1
  29. package/index.d.ts +4 -0
  30. package/index.js +2 -0
  31. package/lib/olLib.js +6 -0
  32. package/package.json +12 -12
  33. package/plugins/@vcmap-show-case/README.md +15 -6
  34. package/plugins/@vcmap-show-case/category-tester/package.json +1 -1
  35. package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +23 -23
  36. package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +2 -8
  37. package/plugins/@vcmap-show-case/collection-manager-example/package.json +1 -1
  38. package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +10 -8
  39. package/plugins/@vcmap-show-case/context-menu-tester/package.json +1 -1
  40. package/plugins/@vcmap-show-case/extent-example/package.json +1 -1
  41. package/plugins/@vcmap-show-case/flight-component-example/package.json +1 -1
  42. package/plugins/@vcmap-show-case/form-inputs-example/package.json +1 -1
  43. package/plugins/@vcmap-show-case/hello-world/package.json +1 -1
  44. package/plugins/@vcmap-show-case/icons-example/package.json +1 -1
  45. package/plugins/@vcmap-show-case/notifier-tester/package.json +1 -1
  46. package/plugins/@vcmap-show-case/panel-tester/package.json +1 -1
  47. package/plugins/@vcmap-show-case/plugin-editors/package.json +1 -1
  48. package/plugins/@vcmap-show-case/plugin-editors/src/index.js +17 -6
  49. package/plugins/@vcmap-show-case/project-selector/package.json +1 -9
  50. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +22 -31
  51. package/plugins/@vcmap-show-case/project-selector/src/ProjectSelectorComponent.vue +15 -23
  52. package/plugins/@vcmap-show-case/projection-example/README.md +3 -0
  53. package/plugins/@vcmap-show-case/projection-example/package.json +5 -0
  54. package/plugins/@vcmap-show-case/projection-example/src/ProjectionExample.vue +73 -0
  55. package/plugins/@vcmap-show-case/{table-example → projection-example}/src/index.js +22 -11
  56. package/plugins/@vcmap-show-case/search-example/package.json +1 -1
  57. package/plugins/@vcmap-show-case/simple-graph/package.json +1 -4
  58. package/plugins/@vcmap-show-case/style-input-example/package.json +1 -1
  59. package/plugins/@vcmap-show-case/switch-map-callback-example/README.md +2 -2
  60. package/plugins/@vcmap-show-case/switch-map-callback-example/package.json +2 -1
  61. package/plugins/@vcmap-show-case/switch-map-callback-example/src/index.js +4 -1
  62. package/plugins/@vcmap-show-case/theming-example/package.json +1 -1
  63. package/plugins/@vcmap-show-case/toolbox-example/package.json +1 -1
  64. package/plugins/@vcmap-show-case/vector-properties-example/package.json +1 -1
  65. package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +1 -1
  66. package/plugins/@vcmap-show-case/window-tester/package.json +1 -1
  67. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +1 -1
  68. package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +5 -1
  69. package/plugins/@vcmap-show-case/wizard-example/package.json +1 -1
  70. package/plugins/package.json +23 -3
  71. package/src/actions/flightActions.js +40 -20
  72. package/src/actions/listActions.d.ts +1 -1
  73. package/src/actions/listActions.js +1 -1
  74. package/src/application/VcsApp.vue +3 -0
  75. package/src/application/VcsApp.vue.d.ts +15 -0
  76. package/src/application/VcsAttributions.vue +1 -1
  77. package/src/application/VcsAttributionsFooter.vue +1 -1
  78. package/src/application/VcsContainer.vue +0 -1
  79. package/src/application/VcsContainer.vue.d.ts +15 -0
  80. package/src/application/VcsObliqueFooter.vue +110 -0
  81. package/src/application/VcsObliqueFooter.vue.d.ts +4 -0
  82. package/src/application/VcsTextPageFooter.vue +1 -0
  83. package/src/application/attributionsHelper.js +10 -6
  84. package/src/components/buttons/VcsButton.vue +2 -2
  85. package/src/components/buttons/VcsButton.vue.d.ts +1 -1
  86. package/src/components/buttons/VcsFormButton.vue +2 -2
  87. package/src/components/buttons/VcsFormButton.vue.d.ts +1 -1
  88. package/src/components/buttons/VcsToolButton.vue +2 -2
  89. package/src/components/buttons/VcsToolButton.vue.d.ts +1 -1
  90. package/src/components/composables.d.ts +2 -2
  91. package/src/components/composables.js +3 -5
  92. package/src/components/flight/VcsFlightPlayer.vue +26 -20
  93. package/src/components/form-inputs-controls/VcsCheckbox.vue +11 -5
  94. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +10 -1
  95. package/src/components/form-inputs-controls/VcsDatePicker.vue +23 -3
  96. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -1
  97. package/src/components/form-inputs-controls/VcsFileInput.vue +3 -3
  98. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -1
  99. package/src/components/form-inputs-controls/VcsLabel.vue +10 -1
  100. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +9 -0
  101. package/src/components/form-inputs-controls/VcsRadio.vue +4 -0
  102. package/src/components/form-inputs-controls/VcsSelect.vue +2 -2
  103. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +3 -3
  104. package/src/components/form-inputs-controls/VcsSlider.vue +2 -2
  105. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +1 -1
  106. package/src/components/form-inputs-controls/VcsTextArea.vue +2 -2
  107. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -1
  108. package/src/components/form-inputs-controls/VcsTextField.vue +3 -3
  109. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +1 -1
  110. package/src/components/form-inputs-controls/VcsWizard.vue +2 -2
  111. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +1 -1
  112. package/src/components/form-inputs-controls/VcsWizardStep.vue +2 -2
  113. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +3 -3
  114. package/src/components/import/VcsImportComponent.vue +3 -3
  115. package/src/components/lists/VcsActionList.vue +1 -1
  116. package/src/components/lists/VcsList.vue +56 -39
  117. package/src/components/lists/VcsListItemComponent.vue +14 -12
  118. package/src/components/lists/VcsListItemComponent.vue.d.ts +5 -28
  119. package/src/components/lists/VcsTreeview.vue +4 -2
  120. package/src/components/lists/VcsTreeview.vue.d.ts +1 -1
  121. package/src/components/notification/VcsHelp.vue +0 -1
  122. package/src/components/notification/VcsHelpTooltip.vue +48 -0
  123. package/src/components/notification/VcsHelpTooltip.vue.d.ts +25 -0
  124. package/src/components/projection/VcsProjection.vue +329 -0
  125. package/src/components/projection/VcsProjection.vue.d.ts +7 -0
  126. package/src/components/section/VcsFormSection.vue +0 -1
  127. package/src/components/section/VcsFormSection.vue.d.ts +1 -1
  128. package/src/components/tables/VcsDataTable.vue +15 -4
  129. package/src/components/tables/VcsDataTable.vue.d.ts +13 -2
  130. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +17 -1
  131. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +10 -1
  132. package/src/components/vector-properties/VcsFeatureTransforms.vue +39 -5
  133. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +2 -1
  134. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +44 -24
  135. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +27 -2
  136. package/src/components/viewpoint/VcsViewpointComponent.vue +6 -6
  137. package/src/contentTree/contentTreeCollection.js +12 -1
  138. package/src/contentTree/obliqueCollectionContentTreeItem.js +6 -1
  139. package/src/featureInfo/abstractFeatureInfoView.d.ts +9 -0
  140. package/src/featureInfo/abstractFeatureInfoView.js +20 -3
  141. package/src/i18n/de.d.ts +93 -39
  142. package/src/i18n/de.js +68 -22
  143. package/src/i18n/en.d.ts +93 -39
  144. package/src/i18n/en.js +64 -18
  145. package/src/legend/StyleLegendItem.vue +1 -5
  146. package/src/legend/VcsLegend.vue +9 -10
  147. package/src/legend/VcsLegend.vue.d.ts +1 -1
  148. package/src/legend/legendHelper.js +6 -1
  149. package/src/manager/collectionManager/collectionComponentClass.js +9 -5
  150. package/src/manager/collectionManager/editorCollectionComponentClass.js +5 -3
  151. package/src/manager/toolbox/GroupToolboxComponent.vue +6 -1
  152. package/src/manager/toolbox/SelectToolboxComponent.vue +6 -2
  153. package/src/manager/toolbox/ToolboxManagerComponent.vue +7 -2
  154. package/src/manager/window/WindowComponentHeader.vue +1 -1
  155. package/src/manager/window/windowManager.d.ts +59 -3
  156. package/src/manager/window/windowManager.js +23 -2
  157. package/src/navigation/MapNavCompass.vue +166 -140
  158. package/src/navigation/MapNavCompass.vue.d.ts +3 -1
  159. package/src/navigation/MapNavigation.vue +22 -5
  160. package/src/navigation/VcsCompass.vue +2 -1
  161. package/src/navigation/overviewMap.js +4 -1
  162. package/src/obliqueFallbackWarnings.d.ts +5 -0
  163. package/src/obliqueFallbackWarnings.js +54 -0
  164. package/src/styles/main.scss +2 -2
  165. package/src/uiConfig.d.ts +30 -0
  166. package/src/uiConfig.js +3 -0
  167. package/src/vcsUiApp.d.ts +37 -10
  168. package/src/vcsUiApp.js +4 -0
  169. package/src/vuePlugins/i18n.js +1 -0
  170. package/src/vuePlugins/vuetify.js +2 -0
  171. package/dist/assets/ui-bf3d1f84.css +0 -1
  172. package/plugins/@vcmap-show-case/buttons-example/README.md +0 -4
  173. package/plugins/@vcmap-show-case/buttons-example/package.json +0 -5
  174. package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +0 -281
  175. package/plugins/@vcmap-show-case/buttons-example/src/index.js +0 -51
  176. package/plugins/@vcmap-show-case/config-editor/README.md +0 -3
  177. package/plugins/@vcmap-show-case/config-editor/package.json +0 -5
  178. package/plugins/@vcmap-show-case/config-editor/src/ConfigEditor.vue +0 -62
  179. package/plugins/@vcmap-show-case/config-editor/src/index.js +0 -49
  180. package/plugins/@vcmap-show-case/list-example/README.md +0 -3
  181. package/plugins/@vcmap-show-case/list-example/package.json +0 -5
  182. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +0 -403
  183. package/plugins/@vcmap-show-case/list-example/src/index.js +0 -46
  184. package/plugins/@vcmap-show-case/table-example/README.md +0 -3
  185. package/plugins/@vcmap-show-case/table-example/package.json +0 -5
  186. package/plugins/@vcmap-show-case/table-example/src/DataTableExample.vue +0 -203
  187. package/plugins/@vcmap-show-case/textfields-example/README.md +0 -3
  188. package/plugins/@vcmap-show-case/textfields-example/package.json +0 -5
  189. package/plugins/@vcmap-show-case/textfields-example/src/TextfieldsExample.vue +0 -115
  190. package/plugins/@vcmap-show-case/textfields-example/src/index.js +0 -64
  191. /package/dist/assets/{vue-43880c5a.js → vue-8269279d.js} +0 -0
@@ -0,0 +1,73 @@
1
+ <script setup lang="ts">
2
+ import { ref, toRaw } from 'vue';
3
+ import { mercatorProjection } from '@vcmap/core';
4
+ import { VContainer, VCol, VRow, VSwitch } from 'vuetify/components';
5
+ import { VcsProjection, VcsFormButton, VcsLabel } from '@vcmap/ui';
6
+
7
+ const projectionOptions = ref(mercatorProjection.toJSON());
8
+ const required = ref(false);
9
+ const hideRequestButton = ref(false);
10
+ const hideAlias = ref(false);
11
+ function reset() {
12
+ projectionOptions.value = mercatorProjection.toJSON();
13
+ console.log(mercatorProjection.toJSON());
14
+ }
15
+ </script>
16
+
17
+ <template>
18
+ <div>
19
+ <v-container>
20
+ <v-row no-gutters>
21
+ <v-col>
22
+ <VcsLabel>
23
+ {{ $t('required') }}
24
+ </VcsLabel>
25
+ </v-col>
26
+ <v-col>
27
+ <v-switch v-model="required" />
28
+ </v-col>
29
+ </v-row>
30
+ <v-row no-gutters>
31
+ <v-col>
32
+ <VcsLabel>
33
+ {{ $t('hideRequestButton') }}
34
+ </VcsLabel>
35
+ </v-col>
36
+ <v-col>
37
+ <v-switch v-model="hideRequestButton" />
38
+ </v-col>
39
+ </v-row>
40
+ <v-row no-gutters>
41
+ <v-col>
42
+ <VcsLabel>
43
+ {{ $t('hideAlias') }}
44
+ </VcsLabel>
45
+ </v-col>
46
+ <v-col>
47
+ <v-switch v-model="hideAlias" />
48
+ </v-col>
49
+ </v-row>
50
+ <v-row no-gutters>
51
+ <v-col>
52
+ <vcs-form-button @click="reset" class="w-100"
53
+ >Reset Web Mercator</vcs-form-button
54
+ >
55
+ </v-col>
56
+ </v-row>
57
+ </v-container>
58
+ <vcs-projection
59
+ v-model="projectionOptions"
60
+ :required="required"
61
+ :hide-request-button="hideRequestButton"
62
+ :hide-alias="hideAlias"
63
+ class="pa-1"
64
+ ></vcs-projection>
65
+ <div class="d-flex gc-2 justify-end mr-2">
66
+ <vcs-form-button @click="console.log(toRaw(projectionOptions))">{{
67
+ $t('projectionExample.log')
68
+ }}</vcs-form-button>
69
+ </div>
70
+ </div>
71
+ </template>
72
+
73
+ <style scoped lang="scss"></style>
@@ -1,11 +1,11 @@
1
1
  import { ButtonLocation, createToggleAction, WindowSlot } from '@vcmap/ui';
2
2
  import packageJSON from '../package.json';
3
- import DataTableExample from './DataTableExample.vue';
3
+ import ProjectionExample from './ProjectionExample.vue';
4
4
 
5
5
  /**
6
6
  * @returns {VcsPlugin}
7
7
  */
8
- export default async function iconsExample() {
8
+ export default async function projectionExample() {
9
9
  return {
10
10
  get name() {
11
11
  return packageJSON.name;
@@ -16,21 +16,20 @@ export default async function iconsExample() {
16
16
  get mapVersion() {
17
17
  return packageJSON.mapVersion;
18
18
  },
19
- onVcsAppMounted(app) {
19
+ initialize(app) {
20
20
  const { action, destroy } = createToggleAction(
21
21
  {
22
- name: 'Table Example',
23
- title: 'Table Example Plugin',
22
+ name: 'Projection Example',
23
+ title: 'Projection Example Plugin',
24
+ icon: '$vcsBoundingBox',
24
25
  },
25
26
  {
26
- id: 'table-example',
27
- component: DataTableExample,
27
+ id: 'projection-example',
28
+ component: ProjectionExample,
28
29
  slot: WindowSlot.DYNAMIC_LEFT,
29
30
  state: {
30
- headerTitle: 'Table Example',
31
- },
32
- position: {
33
- width: 500,
31
+ headerTitle: 'Projection Example',
32
+ headerIcon: '$vcsBoundingBox',
34
33
  },
35
34
  },
36
35
  app.windowManager,
@@ -39,6 +38,18 @@ export default async function iconsExample() {
39
38
  app.navbarManager.add({ action }, packageJSON.name, ButtonLocation.TOOL);
40
39
  this._destroyAction = destroy;
41
40
  },
41
+ i18n: {
42
+ de: {
43
+ projectionExample: {
44
+ openDialog: 'Dialog öffnen',
45
+ log: 'Log',
46
+ },
47
+ },
48
+ en: {
49
+ openDialog: 'Open Dialog',
50
+ log: 'Log',
51
+ },
52
+ },
42
53
  destroy() {
43
54
  if (this._destroyAction) {
44
55
  this._destroyAction();
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/search-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^6.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,11 +1,8 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/simple-graph",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0",
4
+ "mapVersion": "^6.0",
5
5
  "dependencies": {
6
6
  "@vcsuite/parsers": "^1.0.1"
7
- },
8
- "peerDependencies": {
9
- "@vcmap/ui": "5.0.0-rc.2"
10
7
  }
11
8
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/style-input-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,9 +1,9 @@
1
1
  # @vcmap-show-case/switch-map-callback-example
2
2
 
3
- This plugin adds a MapSwitcherCallback to the uiApp.
3
+ This plugin demonstrates the concept of `VcsCallback` by adding a MapSwitcherCallback to the uiApp.
4
4
 
5
5
  This can be used to switch the map i the ContentTree,
6
- on Click of an Item.
6
+ on Click of a ContentTreeItem.
7
7
 
8
8
  ```json
9
9
 
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/switch-map-callback-example",
3
3
  "version": "1.0.0",
4
- "description": "An Example plugin to add a Map Switcher Callback"
4
+ "description": "An Example plugin to add a Map Switcher Callback",
5
+ "mapVersion": "^6.0"
5
6
  }
@@ -1,4 +1,4 @@
1
- import { version, name } from '../package.json';
1
+ import { version, mapVersion, name } from '../package.json';
2
2
  import SwitchMapCallback from './switchMapCallback.js';
3
3
 
4
4
  /**
@@ -13,6 +13,9 @@ export default function switchMapCallbackExample() {
13
13
  get version() {
14
14
  return version;
15
15
  },
16
+ get mapVersion() {
17
+ return mapVersion;
18
+ },
16
19
  /**
17
20
  * @param {import("@vcmap/ui").VcsUiApp} vcsUiApp
18
21
  */
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/theming-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^6.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/toolbox-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/vector-properties-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/viewpoint-component-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/window-tester",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -4,7 +4,7 @@
4
4
  v-for="(example, index) in examples"
5
5
  :key="`b-${index}`"
6
6
  @click="(e) => toggle(e, example)"
7
- class="pa-1"
7
+ class="ma-1"
8
8
  >
9
9
  toggle {{ example }}
10
10
  </VcsFormButton>
@@ -1,6 +1,10 @@
1
1
  <template>
2
2
  <v-container>
3
- <VcsFormButton v-for="num in [1, 2]" :key="num" @click.stop="toggle(num)"
3
+ <VcsFormButton
4
+ v-for="num in [1, 2]"
5
+ :key="num"
6
+ @click.stop="toggle(num)"
7
+ class="ma-1"
4
8
  >toggle child {{ num }}</VcsFormButton
5
9
  >
6
10
  </v-container>
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@vcmap-show-case/wizard-example",
3
3
  "version": "1.0.0",
4
- "mapVersion": "^5.0.0"
4
+ "mapVersion": "^6.0"
5
5
  }
@@ -1,11 +1,31 @@
1
1
  {
2
2
  "dependencies": {
3
3
  "@vcmap/print": "https://github.com/virtualcitySYSTEMS/map-print.git#main",
4
- "@vcmap/multi-view": "https://github.com/virtualcitySYSTEMS/map-multi-view.git",
5
- "@vcmap/transparent-terrain": "https://github.com/virtualcitySYSTEMS/map-transparent-terrain.git",
6
4
  "@vcmap/walk": "https://github.com/virtualcitySYSTEMS/map-walk.git#main",
7
5
  "@vcmap/clipping-tool": "https://github.com/virtualcitySYSTEMS/map-clipping-tool.git#main",
6
+ "@vcmap/transparent-terrain": "https://github.com/virtualcitySYSTEMS/map-transparent-terrain.git#main",
7
+ "@vcmap/height-profile": "https://github.com/virtualcitySYSTEMS/map-heightprofile.git#main",
8
+ "@vcmap/flight": "https://github.com/virtualcitySYSTEMS/map-flight.git#main",
9
+ "@vcmap/swipe-tool": "https://github.com/virtualcitySYSTEMS/map-swipe-tool.git#main",
10
+ "@vcmap/export": "https://github.com/virtualcitySYSTEMS/map-export.git#main",
8
11
  "@vcmap/viewshed": "https://github.com/virtualcitySYSTEMS/map-viewshed.git#main",
9
- "@vcmap/link-button": "https://github.com/virtualcitySYSTEMS/map-link-button.git#main"
12
+ "@vcmap/measurement": "^2.0.0-rc.2",
13
+ "@vcmap/multi-view": "https://github.com/virtualcitySYSTEMS/map-multi-view.git#main",
14
+ "@vcmap/draw": "https://github.com/virtualcitySYSTEMS/map-draw.git#main",
15
+ "@vcmap/shadow": "https://github.com/virtualcitySYSTEMS/map-shadow.git#main",
16
+ "@vcmap/search-wfs": "https://github.com/virtualcitySYSTEMS/map-search-wfs.git#main",
17
+ "@vcmap/search-esri": "https://github.com/virtualcitySYSTEMS/map-search-esri.git#main",
18
+ "@vcmap/search-coordinate": "https://github.com/virtualcitySYSTEMS/map-search-coordinate.git#main",
19
+ "@vcmap/link-button": "https://github.com/virtualcitySYSTEMS/map-link-button.git#main",
20
+ "@vcmap/cesium-filters": "https://github.com/virtualcitySYSTEMS/map-cesium-filters.git#main",
21
+ "@vcmap/search-nominatim": "https://github.com/virtualcitySYSTEMS/map-search-nominatim.git#main",
22
+ "@vcmap/create-link": "https://github.com/virtualcitySYSTEMS/map-create-link.git#main",
23
+ "@vcmap/module-selector": "^2.0.0",
24
+ "@vcmap/dynamic-layer": "git+ssh://git@gitlab.virtualcitysystems.de/vcsuite/npm/vcmap/dynamic-layer.git#feature-idra-catalogue",
25
+ "@vcmap/line-of-sight": "git+ssh://git@gitlab.virtualcitysystems.de/vcsuite/npm/vcmap/line-of-sight.git#feature-v1"
26
+ },
27
+ "optionalDependencies": {
28
+ "@vcmap/planning": "^6.0.0-rc.2",
29
+ "@vcmap/solar-revenue": "^2.0.0-rc.1"
10
30
  }
11
31
  }
@@ -36,33 +36,54 @@ export function createPlayAction(app, instance) {
36
36
  } else {
37
37
  player = await app.flights.setPlayerForFlight(instance);
38
38
  if (player) {
39
- stateListener = player.stateChanged.addEventListener((state) => {
40
- if (state === 'stopped') {
41
- action.icon = '$vcsPlayCircle';
42
- action.title = 'flight.playTooltip';
43
- } else if (state === 'paused') {
44
- action.icon = '$vcsPlayCircle';
45
- action.title = 'flight.playTooltip';
46
- } else {
47
- action.icon = 'mdi-pause';
48
- action.title = 'flight.pauseTooltip';
49
- }
50
- });
51
- destroyListener = player.destroyed.addEventListener(() => {
52
- player = null;
53
- action.icon = '$vcsPlayCircle';
54
- stateListener();
55
- destroyListener();
56
- });
57
39
  player.play();
58
40
  }
59
41
  }
60
42
  },
61
43
  });
62
44
 
45
+ function updateAction(state) {
46
+ if (state === 'stopped' || state === 'paused') {
47
+ action.icon = '$vcsPlayCircle';
48
+ action.title = 'flight.playTooltip';
49
+ } else {
50
+ action.icon = 'mdi-pause';
51
+ action.title = 'flight.pauseTooltip';
52
+ }
53
+ }
54
+
55
+ function destroyPlayer() {
56
+ player = undefined;
57
+ updateAction('stopped');
58
+ stateListener?.();
59
+ destroyListener?.();
60
+ }
61
+
62
+ function checkPlayer(_player) {
63
+ if (_player?.flightInstanceName === instance.name) {
64
+ player = _player;
65
+ updateAction(player.state);
66
+ stateListener = player.stateChanged.addEventListener((state) => {
67
+ updateAction(state);
68
+ });
69
+ destroyListener = player.destroyed.addEventListener(() => {
70
+ destroyPlayer();
71
+ });
72
+ } else {
73
+ destroyPlayer();
74
+ }
75
+ }
76
+ const playerListener = app.flights.playerChanged.addEventListener(
77
+ (_player) => {
78
+ checkPlayer(_player);
79
+ },
80
+ );
81
+ checkPlayer(app.flights.player);
82
+
63
83
  return {
64
84
  action,
65
85
  destroy: () => {
86
+ playerListener();
66
87
  if (player) {
67
88
  player.stop();
68
89
  player.destroy();
@@ -348,7 +369,7 @@ export async function createFlightVisualizationAction(
348
369
  const action = reactive({
349
370
  name: 'components.flight.hidePath',
350
371
  title: 'components.flight.hidePath',
351
- icon: 'mdi-eye-outline',
372
+ icon: '$vcsEye',
352
373
  active,
353
374
  async callback() {
354
375
  if (!flightVis) {
@@ -360,7 +381,6 @@ export async function createFlightVisualizationAction(
360
381
  await flightVis.activate();
361
382
  }
362
383
  this.active = !this.active;
363
- this.icon = this.active ? 'mdi-eye-outline' : 'mdi-eye-off-outline';
364
384
  },
365
385
  });
366
386
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Creates an action for renaming an item in a VcsList.
2
+ * Creates an action for deleting an item in a VcsList.
3
3
  * @param {import("@vcmap/core").Collection<T>} collection
4
4
  * @param {T} item
5
5
  * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
@@ -9,7 +9,7 @@ import { vcsAppSymbol } from '../pluginHelper.js';
9
9
  import { NotificationType } from '../notifier/notifier.js';
10
10
 
11
11
  /**
12
- * Creates an action for renaming an item in a VcsList.
12
+ * Creates an action for deleting an item in a VcsList.
13
13
  * @param {import("@vcmap/core").Collection<T>} collection
14
14
  * @param {T} item
15
15
  * @param {Partial<import("./actionHelper.js").ActionOptions>} [actionOptions={}]
@@ -15,6 +15,7 @@
15
15
  class="d-flex gc-1 pa-0"
16
16
  >
17
17
  <VcsPositionDisplay />
18
+ <VcsObliqueFooter />
18
19
  <VcsTextPageFooter
19
20
  v-if="imprint"
20
21
  :text-page="imprint"
@@ -66,6 +67,7 @@
66
67
  import VcsLegend from '../legend/VcsLegend.vue';
67
68
  import { getLegendEntries } from '../legend/legendHelper.js';
68
69
  import VcsAttributionsFooter from './VcsAttributionsFooter.vue';
70
+ import VcsObliqueFooter from './VcsObliqueFooter.vue';
69
71
  import VcsTextPageFooter from './VcsTextPageFooter.vue';
70
72
  import VcsSplashScreen from './VcsSplashScreen.vue';
71
73
  import VcsTextPage from './VcsTextPage.vue';
@@ -723,6 +725,7 @@
723
725
  VcsPositionDisplay,
724
726
  VcsAttributionsFooter,
725
727
  VcsTextPageFooter,
728
+ VcsObliqueFooter,
726
729
  VcsSplashScreen,
727
730
  VcsNavbar,
728
731
  VContainer,
@@ -110,6 +110,10 @@ declare const _default: import("vue").DefineComponent<{
110
110
  * - mouse event, when position display is updated. Either 'click' (default) or 'move'.
111
111
  */
112
112
  readonly positionDisplayEventType?: string | undefined;
113
+ /**
114
+ * - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
115
+ */
116
+ readonly obliqueFooterTemplate?: string | undefined;
113
117
  /**
114
118
  * - an optional URL to a help landing page
115
119
  */
@@ -282,10 +286,18 @@ declare const _default: import("vue").DefineComponent<{
282
286
  * - can be used to hide the settings Window
283
287
  */
284
288
  readonly hideSettings?: boolean | undefined;
289
+ /**
290
+ * - can be used to hide the oblique name in the footer
291
+ */
292
+ readonly hideObliqueFooter?: boolean | undefined;
285
293
  /**
286
294
  * - can be used to activate the overviewMap on startup
287
295
  */
288
296
  readonly overviewMapActiveOnStartup?: boolean | undefined;
297
+ /**
298
+ * - can be used to activate a contentTree on startup
299
+ */
300
+ readonly contentTreeActiveOnStartup?: boolean | undefined;
289
301
  /**
290
302
  * - the display quality settings
291
303
  */
@@ -300,6 +312,7 @@ declare const _default: import("vue").DefineComponent<{
300
312
  readonly fogScreenSpaceErrorFactor?: number | undefined;
301
313
  readonly resolutionScale?: number | undefined;
302
314
  readonly layerSSEFactor?: number | undefined;
315
+ readonly msaa?: 1 | 2 | 4 | 8 | undefined;
303
316
  } | undefined;
304
317
  readonly medium?: {
305
318
  readonly sse?: number | undefined;
@@ -309,6 +322,7 @@ declare const _default: import("vue").DefineComponent<{
309
322
  readonly fogScreenSpaceErrorFactor?: number | undefined;
310
323
  readonly resolutionScale?: number | undefined;
311
324
  readonly layerSSEFactor?: number | undefined;
325
+ readonly msaa?: 1 | 2 | 4 | 8 | undefined;
312
326
  } | undefined;
313
327
  readonly high?: {
314
328
  readonly sse?: number | undefined;
@@ -318,6 +332,7 @@ declare const _default: import("vue").DefineComponent<{
318
332
  readonly fogScreenSpaceErrorFactor?: number | undefined;
319
333
  readonly resolutionScale?: number | undefined;
320
334
  readonly layerSSEFactor?: number | undefined;
335
+ readonly msaa?: 1 | 2 | 4 | 8 | undefined;
321
336
  } | undefined;
322
337
  } | undefined;
323
338
  /**
@@ -12,7 +12,7 @@
12
12
  :key="attribution.provider"
13
13
  :title="`${$st(attribution.provider)} ${attribution.year}`"
14
14
  >
15
- <a :href="attribution.url" target="_blank">
15
+ <a :href="attribution.url ? attribution.url : null" target="_blank">
16
16
  {{ $st(attribution.provider) }} {{ attribution.year }}
17
17
  </a>
18
18
  </v-list-item-subtitle>
@@ -8,7 +8,7 @@
8
8
  class="attribution"
9
9
  :key="attribution.provider"
10
10
  >
11
- <a :href="attribution.url" target="_blank">
11
+ <a :href="attribution.url ? attribution.url : null" target="_blank">
12
12
  {{ $st(attribution.provider) }} <span>{{ attribution.years }}</span>
13
13
  </a>
14
14
  </span>
@@ -9,7 +9,6 @@
9
9
  }"
10
10
  fluid
11
11
  absolute
12
- style="background: #1b5e20"
13
12
  >
14
13
  <template v-if="xs">
15
14
  <img
@@ -30,6 +30,10 @@ declare const _default: import("vue").DefineComponent<{
30
30
  * - mouse event, when position display is updated. Either 'click' (default) or 'move'.
31
31
  */
32
32
  readonly positionDisplayEventType?: string | undefined;
33
+ /**
34
+ * - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
35
+ */
36
+ readonly obliqueFooterTemplate?: string | undefined;
33
37
  /**
34
38
  * - an optional URL to a help landing page
35
39
  */
@@ -202,10 +206,18 @@ declare const _default: import("vue").DefineComponent<{
202
206
  * - can be used to hide the settings Window
203
207
  */
204
208
  readonly hideSettings?: boolean | undefined;
209
+ /**
210
+ * - can be used to hide the oblique name in the footer
211
+ */
212
+ readonly hideObliqueFooter?: boolean | undefined;
205
213
  /**
206
214
  * - can be used to activate the overviewMap on startup
207
215
  */
208
216
  readonly overviewMapActiveOnStartup?: boolean | undefined;
217
+ /**
218
+ * - can be used to activate a contentTree on startup
219
+ */
220
+ readonly contentTreeActiveOnStartup?: boolean | undefined;
209
221
  /**
210
222
  * - the display quality settings
211
223
  */
@@ -220,6 +232,7 @@ declare const _default: import("vue").DefineComponent<{
220
232
  readonly fogScreenSpaceErrorFactor?: number | undefined;
221
233
  readonly resolutionScale?: number | undefined;
222
234
  readonly layerSSEFactor?: number | undefined;
235
+ readonly msaa?: 1 | 2 | 4 | 8 | undefined;
223
236
  } | undefined;
224
237
  readonly medium?: {
225
238
  readonly sse?: number | undefined;
@@ -229,6 +242,7 @@ declare const _default: import("vue").DefineComponent<{
229
242
  readonly fogScreenSpaceErrorFactor?: number | undefined;
230
243
  readonly resolutionScale?: number | undefined;
231
244
  readonly layerSSEFactor?: number | undefined;
245
+ readonly msaa?: 1 | 2 | 4 | 8 | undefined;
232
246
  } | undefined;
233
247
  readonly high?: {
234
248
  readonly sse?: number | undefined;
@@ -238,6 +252,7 @@ declare const _default: import("vue").DefineComponent<{
238
252
  readonly fogScreenSpaceErrorFactor?: number | undefined;
239
253
  readonly resolutionScale?: number | undefined;
240
254
  readonly layerSSEFactor?: number | undefined;
255
+ readonly msaa?: 1 | 2 | 4 | 8 | undefined;
241
256
  } | undefined;
242
257
  } | undefined;
243
258
  /**