@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.
- package/README.md +2 -0
- package/build/buildHelpers.js +1 -1
- package/build/commonViteConfig.js +7 -0
- package/config/aerowest.config.json +12 -2
- package/config/analysis.config.json +17 -0
- package/config/base.config.json +19 -5
- package/config/components-show-case.config.json +53 -0
- package/config/concepts-show-case.config.json +39 -0
- package/config/dev.config.json +164 -105
- package/config/dynamic-layer.config.json +32 -0
- package/config/hello-world.config.json +11 -0
- package/config/projects.config.json +9 -1
- package/config/solar.config.json +65 -0
- package/config/vectorTile.config.json +70 -0
- package/config/www.config.json +34 -13
- package/dist/assets/{cesium-2ec6aae0.js → cesium-00deba88.js} +4672 -4704
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-6f2522e5.js → core-a599e8b6.js} +7932 -7342
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol-b0e134cb.js → ol-21bbc740.js} +12206 -11711
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-adeddc7d.css +1 -0
- package/dist/assets/{ui-bf3d1f84.js → ui-adeddc7d.js} +10415 -9588
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-99bf601c.css → vuetify-c0e02f11.css} +1 -1
- package/dist/assets/{vuetify-99bf601c.js → vuetify-c0e02f11.js} +5313 -5294
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +4 -0
- package/index.js +2 -0
- package/lib/olLib.js +6 -0
- package/package.json +12 -12
- package/plugins/@vcmap-show-case/README.md +15 -6
- package/plugins/@vcmap-show-case/category-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +23 -23
- package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +2 -8
- package/plugins/@vcmap-show-case/collection-manager-example/package.json +1 -1
- package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +10 -8
- package/plugins/@vcmap-show-case/context-menu-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/extent-example/package.json +1 -1
- package/plugins/@vcmap-show-case/flight-component-example/package.json +1 -1
- package/plugins/@vcmap-show-case/form-inputs-example/package.json +1 -1
- package/plugins/@vcmap-show-case/hello-world/package.json +1 -1
- package/plugins/@vcmap-show-case/icons-example/package.json +1 -1
- package/plugins/@vcmap-show-case/notifier-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/panel-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/plugin-editors/package.json +1 -1
- package/plugins/@vcmap-show-case/plugin-editors/src/index.js +17 -6
- package/plugins/@vcmap-show-case/project-selector/package.json +1 -9
- package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +22 -31
- package/plugins/@vcmap-show-case/project-selector/src/ProjectSelectorComponent.vue +15 -23
- package/plugins/@vcmap-show-case/projection-example/README.md +3 -0
- package/plugins/@vcmap-show-case/projection-example/package.json +5 -0
- package/plugins/@vcmap-show-case/projection-example/src/ProjectionExample.vue +73 -0
- package/plugins/@vcmap-show-case/{table-example → projection-example}/src/index.js +22 -11
- package/plugins/@vcmap-show-case/search-example/package.json +1 -1
- package/plugins/@vcmap-show-case/simple-graph/package.json +1 -4
- package/plugins/@vcmap-show-case/style-input-example/package.json +1 -1
- package/plugins/@vcmap-show-case/switch-map-callback-example/README.md +2 -2
- package/plugins/@vcmap-show-case/switch-map-callback-example/package.json +2 -1
- package/plugins/@vcmap-show-case/switch-map-callback-example/src/index.js +4 -1
- package/plugins/@vcmap-show-case/theming-example/package.json +1 -1
- package/plugins/@vcmap-show-case/toolbox-example/package.json +1 -1
- package/plugins/@vcmap-show-case/vector-properties-example/package.json +1 -1
- package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +1 -1
- package/plugins/@vcmap-show-case/window-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +1 -1
- package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +5 -1
- package/plugins/@vcmap-show-case/wizard-example/package.json +1 -1
- package/plugins/package.json +23 -3
- package/src/actions/flightActions.js +40 -20
- package/src/actions/listActions.d.ts +1 -1
- package/src/actions/listActions.js +1 -1
- package/src/application/VcsApp.vue +3 -0
- package/src/application/VcsApp.vue.d.ts +15 -0
- package/src/application/VcsAttributions.vue +1 -1
- package/src/application/VcsAttributionsFooter.vue +1 -1
- package/src/application/VcsContainer.vue +0 -1
- package/src/application/VcsContainer.vue.d.ts +15 -0
- package/src/application/VcsObliqueFooter.vue +110 -0
- package/src/application/VcsObliqueFooter.vue.d.ts +4 -0
- package/src/application/VcsTextPageFooter.vue +1 -0
- package/src/application/attributionsHelper.js +10 -6
- package/src/components/buttons/VcsButton.vue +2 -2
- package/src/components/buttons/VcsButton.vue.d.ts +1 -1
- package/src/components/buttons/VcsFormButton.vue +2 -2
- package/src/components/buttons/VcsFormButton.vue.d.ts +1 -1
- package/src/components/buttons/VcsToolButton.vue +2 -2
- package/src/components/buttons/VcsToolButton.vue.d.ts +1 -1
- package/src/components/composables.d.ts +2 -2
- package/src/components/composables.js +3 -5
- package/src/components/flight/VcsFlightPlayer.vue +26 -20
- package/src/components/form-inputs-controls/VcsCheckbox.vue +11 -5
- package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +10 -1
- package/src/components/form-inputs-controls/VcsDatePicker.vue +23 -3
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsFileInput.vue +3 -3
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsLabel.vue +10 -1
- package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +9 -0
- package/src/components/form-inputs-controls/VcsRadio.vue +4 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +2 -2
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +3 -3
- package/src/components/form-inputs-controls/VcsSlider.vue +2 -2
- package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsTextArea.vue +2 -2
- package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsTextField.vue +3 -3
- package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +2 -2
- package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsWizardStep.vue +2 -2
- package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +3 -3
- package/src/components/import/VcsImportComponent.vue +3 -3
- package/src/components/lists/VcsActionList.vue +1 -1
- package/src/components/lists/VcsList.vue +56 -39
- package/src/components/lists/VcsListItemComponent.vue +14 -12
- package/src/components/lists/VcsListItemComponent.vue.d.ts +5 -28
- package/src/components/lists/VcsTreeview.vue +4 -2
- package/src/components/lists/VcsTreeview.vue.d.ts +1 -1
- package/src/components/notification/VcsHelp.vue +0 -1
- package/src/components/notification/VcsHelpTooltip.vue +48 -0
- package/src/components/notification/VcsHelpTooltip.vue.d.ts +25 -0
- package/src/components/projection/VcsProjection.vue +329 -0
- package/src/components/projection/VcsProjection.vue.d.ts +7 -0
- package/src/components/section/VcsFormSection.vue +0 -1
- package/src/components/section/VcsFormSection.vue.d.ts +1 -1
- package/src/components/tables/VcsDataTable.vue +15 -4
- package/src/components/tables/VcsDataTable.vue.d.ts +13 -2
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +17 -1
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +10 -1
- package/src/components/vector-properties/VcsFeatureTransforms.vue +39 -5
- package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +2 -1
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +44 -24
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +27 -2
- package/src/components/viewpoint/VcsViewpointComponent.vue +6 -6
- package/src/contentTree/contentTreeCollection.js +12 -1
- package/src/contentTree/obliqueCollectionContentTreeItem.js +6 -1
- package/src/featureInfo/abstractFeatureInfoView.d.ts +9 -0
- package/src/featureInfo/abstractFeatureInfoView.js +20 -3
- package/src/i18n/de.d.ts +93 -39
- package/src/i18n/de.js +68 -22
- package/src/i18n/en.d.ts +93 -39
- package/src/i18n/en.js +64 -18
- package/src/legend/StyleLegendItem.vue +1 -5
- package/src/legend/VcsLegend.vue +9 -10
- package/src/legend/VcsLegend.vue.d.ts +1 -1
- package/src/legend/legendHelper.js +6 -1
- package/src/manager/collectionManager/collectionComponentClass.js +9 -5
- package/src/manager/collectionManager/editorCollectionComponentClass.js +5 -3
- package/src/manager/toolbox/GroupToolboxComponent.vue +6 -1
- package/src/manager/toolbox/SelectToolboxComponent.vue +6 -2
- package/src/manager/toolbox/ToolboxManagerComponent.vue +7 -2
- package/src/manager/window/WindowComponentHeader.vue +1 -1
- package/src/manager/window/windowManager.d.ts +59 -3
- package/src/manager/window/windowManager.js +23 -2
- package/src/navigation/MapNavCompass.vue +166 -140
- package/src/navigation/MapNavCompass.vue.d.ts +3 -1
- package/src/navigation/MapNavigation.vue +22 -5
- package/src/navigation/VcsCompass.vue +2 -1
- package/src/navigation/overviewMap.js +4 -1
- package/src/obliqueFallbackWarnings.d.ts +5 -0
- package/src/obliqueFallbackWarnings.js +54 -0
- package/src/styles/main.scss +2 -2
- package/src/uiConfig.d.ts +30 -0
- package/src/uiConfig.js +3 -0
- package/src/vcsUiApp.d.ts +37 -10
- package/src/vcsUiApp.js +4 -0
- package/src/vuePlugins/i18n.js +1 -0
- package/src/vuePlugins/vuetify.js +2 -0
- package/dist/assets/ui-bf3d1f84.css +0 -1
- package/plugins/@vcmap-show-case/buttons-example/README.md +0 -4
- package/plugins/@vcmap-show-case/buttons-example/package.json +0 -5
- package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +0 -281
- package/plugins/@vcmap-show-case/buttons-example/src/index.js +0 -51
- package/plugins/@vcmap-show-case/config-editor/README.md +0 -3
- package/plugins/@vcmap-show-case/config-editor/package.json +0 -5
- package/plugins/@vcmap-show-case/config-editor/src/ConfigEditor.vue +0 -62
- package/plugins/@vcmap-show-case/config-editor/src/index.js +0 -49
- package/plugins/@vcmap-show-case/list-example/README.md +0 -3
- package/plugins/@vcmap-show-case/list-example/package.json +0 -5
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +0 -403
- package/plugins/@vcmap-show-case/list-example/src/index.js +0 -46
- package/plugins/@vcmap-show-case/table-example/README.md +0 -3
- package/plugins/@vcmap-show-case/table-example/package.json +0 -5
- package/plugins/@vcmap-show-case/table-example/src/DataTableExample.vue +0 -203
- package/plugins/@vcmap-show-case/textfields-example/README.md +0 -3
- package/plugins/@vcmap-show-case/textfields-example/package.json +0 -5
- package/plugins/@vcmap-show-case/textfields-example/src/TextfieldsExample.vue +0 -115
- package/plugins/@vcmap-show-case/textfields-example/src/index.js +0 -64
- /package/dist/assets/{vue-43880c5a.js → vue-8269279d.js} +0 -0
@@ -1,151 +1,172 @@
|
|
1
1
|
<template>
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
2
|
+
<span>
|
3
|
+
<v-tooltip location="start" target="parent" :disabled="!canEmit">
|
4
|
+
<template #activator="{ props }">
|
5
|
+
<svg
|
6
|
+
xmlns="http://www.w3.org/2000/svg"
|
7
|
+
width="58"
|
8
|
+
height="58"
|
9
|
+
viewBox="0 0 58 58"
|
10
|
+
>
|
11
|
+
<g
|
12
|
+
id="Group_1654"
|
13
|
+
data-name="Group 1654"
|
14
|
+
transform="translate(24)"
|
15
|
+
v-bind="props"
|
16
|
+
>
|
17
|
+
<path
|
18
|
+
:class="canEmit ? 'cursor-pointer hover' : ''"
|
19
|
+
id="north_arrow"
|
20
|
+
data-name="Polygon 14"
|
21
|
+
d="M4,0,8,13H0Z"
|
22
|
+
transform="translate(1)"
|
23
|
+
fill="currentColor"
|
24
|
+
@click="emit($event, 0)"
|
25
|
+
@mouseenter="alignment = 'alignNorth'"
|
26
|
+
/>
|
27
|
+
<path
|
28
|
+
:class="canEmit ? 'cursor-pointer hover' : ''"
|
29
|
+
id="south_arrow"
|
30
|
+
data-name="Polygon 17"
|
31
|
+
d="M4,0,8,13H0Z"
|
32
|
+
transform="translate(9 58) rotate(180)"
|
33
|
+
fill="rgba(88,88,88,0.51)"
|
34
|
+
@click="emit($event, 180)"
|
35
|
+
@mouseenter="alignment = 'alignSouth'"
|
36
|
+
/>
|
37
|
+
</g>
|
38
|
+
<g
|
39
|
+
id="Group_1653"
|
40
|
+
data-name="Group 1653"
|
41
|
+
transform="translate(0 33) rotate(-90)"
|
42
|
+
v-bind="props"
|
43
|
+
>
|
44
|
+
<path
|
45
|
+
:class="canEmit ? 'cursor-pointer hover' : ''"
|
46
|
+
id="west_arrow"
|
47
|
+
data-name="Polygon 14"
|
48
|
+
d="M4,0,8,13H0Z"
|
49
|
+
fill="rgba(88,88,88,0.51)"
|
50
|
+
@click="emit($event, 270)"
|
51
|
+
@mouseenter="alignment = 'alignWest'"
|
52
|
+
/>
|
53
|
+
<path
|
54
|
+
:class="canEmit ? 'cursor-pointer hover' : ''"
|
55
|
+
id="east_arrow"
|
56
|
+
data-name="Polygon 17"
|
57
|
+
d="M4,0,8,13H0Z"
|
58
|
+
transform="translate(8 58) rotate(180)"
|
59
|
+
fill="rgba(88,88,88,0.51)"
|
60
|
+
@click="emit($event, 90)"
|
61
|
+
@mouseenter="alignment = 'alignEast'"
|
62
|
+
/>
|
63
|
+
</g>
|
64
|
+
<g
|
65
|
+
id="Group_1672"
|
66
|
+
data-name="Group 1672"
|
67
|
+
transform="translate(1)"
|
68
|
+
v-if="!hideTicks"
|
69
|
+
>
|
70
|
+
<line
|
71
|
+
id="Line_289-2"
|
72
|
+
data-name="Line 289"
|
73
|
+
x2="6.079"
|
74
|
+
transform="translate(3.751 15) rotate(30)"
|
75
|
+
fill="none"
|
76
|
+
stroke="#707070"
|
77
|
+
stroke-linecap="round"
|
78
|
+
stroke-width="1"
|
79
|
+
/>
|
80
|
+
<line
|
81
|
+
id="Line_290-2"
|
82
|
+
data-name="Line 290"
|
83
|
+
x2="4.665"
|
84
|
+
transform="translate(48.208 40.667) rotate(30)"
|
85
|
+
fill="none"
|
86
|
+
stroke="#707070"
|
87
|
+
stroke-linecap="round"
|
88
|
+
stroke-width="1"
|
89
|
+
/>
|
90
|
+
<line
|
91
|
+
id="Line_289-4"
|
92
|
+
data-name="Line 289"
|
93
|
+
x2="6.079"
|
94
|
+
transform="translate(14 53.249) rotate(-60)"
|
95
|
+
fill="none"
|
96
|
+
stroke="#707070"
|
97
|
+
stroke-linecap="round"
|
98
|
+
stroke-width="1"
|
99
|
+
/>
|
100
|
+
<line
|
101
|
+
id="Line_290-3"
|
102
|
+
data-name="Line 290"
|
103
|
+
x2="4.665"
|
104
|
+
transform="translate(39.668 8.792) rotate(-60)"
|
105
|
+
fill="none"
|
106
|
+
stroke="#707070"
|
107
|
+
stroke-linecap="round"
|
108
|
+
stroke-width="1"
|
109
|
+
/>
|
110
|
+
<line
|
111
|
+
id="Line_289-5"
|
112
|
+
data-name="Line 289"
|
113
|
+
x2="6.079"
|
114
|
+
transform="translate(14 4.751) rotate(60)"
|
115
|
+
fill="none"
|
116
|
+
stroke="#707070"
|
117
|
+
stroke-linecap="round"
|
118
|
+
stroke-width="1"
|
119
|
+
/>
|
120
|
+
<line
|
121
|
+
id="Line_290-4"
|
122
|
+
data-name="Line 290"
|
123
|
+
x2="4.665"
|
124
|
+
transform="translate(39.667 49.208) rotate(60)"
|
125
|
+
fill="none"
|
126
|
+
stroke="#707070"
|
127
|
+
stroke-linecap="round"
|
128
|
+
stroke-width="1"
|
129
|
+
/>
|
130
|
+
<line
|
131
|
+
id="Line_289-6"
|
132
|
+
data-name="Line 289"
|
133
|
+
x2="6.079"
|
134
|
+
transform="translate(3.752 43) rotate(-30)"
|
135
|
+
fill="none"
|
136
|
+
stroke="#707070"
|
137
|
+
stroke-linecap="round"
|
138
|
+
stroke-width="1"
|
139
|
+
/>
|
140
|
+
<line
|
141
|
+
id="Line_290-5"
|
142
|
+
data-name="Line 290"
|
143
|
+
x2="4.665"
|
144
|
+
transform="translate(48.209 17.333) rotate(-30)"
|
145
|
+
fill="none"
|
146
|
+
stroke="#707070"
|
147
|
+
stroke-linecap="round"
|
148
|
+
stroke-width="1"
|
149
|
+
/>
|
150
|
+
</g>
|
151
|
+
</svg>
|
152
|
+
</template>
|
153
|
+
<span>{{ $st(`navigation.compass.${alignment}`) }}</span>
|
154
|
+
</v-tooltip>
|
155
|
+
</span>
|
139
156
|
</template>
|
140
157
|
|
141
158
|
<script>
|
159
|
+
import { ref } from 'vue';
|
160
|
+
import { VTooltip } from 'vuetify/components';
|
161
|
+
|
142
162
|
/**
|
143
|
-
* @description The compass with ticks along the border
|
163
|
+
* @description The compass with ticks along the border and alignment tooltips on arrows.
|
144
164
|
* @vue-prop {boolean} [canEmit=true] - whether to emit click events on cardinal direction arrows or not
|
145
165
|
* @vue-prop {boolean} [hideTicks=false] - hide ticks on navigation rose
|
146
166
|
* @vue-event {HTMLEvent} direction-click - raised when a cardinal direction arrow is clicked
|
147
167
|
*/
|
148
168
|
export default {
|
169
|
+
components: { VTooltip },
|
149
170
|
props: {
|
150
171
|
canEmit: {
|
151
172
|
type: Boolean,
|
@@ -165,6 +186,9 @@
|
|
165
186
|
}
|
166
187
|
},
|
167
188
|
},
|
189
|
+
setup() {
|
190
|
+
return { alignment: ref('') };
|
191
|
+
},
|
168
192
|
};
|
169
193
|
</script>
|
170
194
|
|
@@ -174,8 +198,10 @@
|
|
174
198
|
height: 85%;
|
175
199
|
margin: 7.5%;
|
176
200
|
}
|
177
|
-
|
178
|
-
|
201
|
+
svg g:focus {
|
202
|
+
outline: none;
|
203
|
+
}
|
204
|
+
.hover:hover {
|
179
205
|
fill: var(--v-primary-lighten1) !important;
|
180
206
|
}
|
181
207
|
</style>
|
@@ -7,7 +7,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
7
7
|
type: BooleanConstructor;
|
8
8
|
default: boolean;
|
9
9
|
};
|
10
|
-
},
|
10
|
+
}, {
|
11
|
+
alignment: import("vue").Ref<string>;
|
12
|
+
}, any, {}, {
|
11
13
|
emit(event: any, dir: any): void;
|
12
14
|
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
13
15
|
canEmit: {
|
@@ -60,9 +60,10 @@
|
|
60
60
|
|
61
61
|
<script>
|
62
62
|
import { computed, inject, ref, reactive, onUnmounted } from 'vue';
|
63
|
-
import { ObliqueMap, CesiumMap } from '@vcmap/core';
|
63
|
+
import { ObliqueMap, CesiumMap, ObliqueViewDirection } from '@vcmap/core';
|
64
64
|
import { VContainer, VRow } from 'vuetify/components';
|
65
65
|
import { useDisplay } from 'vuetify';
|
66
|
+
import { Math as CesiumMath } from '@vcmap-cesium/engine';
|
66
67
|
import { createOverviewMapAction } from '../actions/actionHelper.js';
|
67
68
|
import { createLocatorAction } from './locatorHelper.js';
|
68
69
|
import {
|
@@ -185,6 +186,16 @@
|
|
185
186
|
};
|
186
187
|
}
|
187
188
|
|
189
|
+
/**
|
190
|
+
* @enum {number}
|
191
|
+
*/
|
192
|
+
const directionToDegrees = {
|
193
|
+
[ObliqueViewDirection.NORTH]: 0,
|
194
|
+
[ObliqueViewDirection.EAST]: 90,
|
195
|
+
[ObliqueViewDirection.SOUTH]: 180,
|
196
|
+
[ObliqueViewDirection.WEST]: 270,
|
197
|
+
};
|
198
|
+
|
188
199
|
export default {
|
189
200
|
components: {
|
190
201
|
OrientationToolsButton,
|
@@ -204,10 +215,16 @@
|
|
204
215
|
|
205
216
|
const handleRenderEvent = ({ map }) => {
|
206
217
|
viewMode.value = getViewModeForMap(map);
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
218
|
+
if (map instanceof ObliqueMap && map.currentImage) {
|
219
|
+
headingRef.value = map.currentImage.viewDirectionAngle
|
220
|
+
? 90 - CesiumMath.toDegrees(map.currentImage.viewDirectionAngle)
|
221
|
+
: directionToDegrees[map.currentImage.viewDirection];
|
222
|
+
} else {
|
223
|
+
const vp = map.getViewpointSync();
|
224
|
+
if (vp) {
|
225
|
+
headingRef.value = vp.heading;
|
226
|
+
tiltRef.value = vp.pitch;
|
227
|
+
}
|
211
228
|
}
|
212
229
|
};
|
213
230
|
|
@@ -2,9 +2,10 @@
|
|
2
2
|
<v-sheet
|
3
3
|
:style="{
|
4
4
|
transform: `rotate(${compassRotation}deg)`,
|
5
|
+
transition: 'transform 0.2s ease',
|
5
6
|
}"
|
6
7
|
@click="$emit('update:modelValue', 0)"
|
7
|
-
class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none
|
8
|
+
class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none vcs-compass"
|
8
9
|
elevation="1"
|
9
10
|
:height="height"
|
10
11
|
:width="width"
|
@@ -232,7 +232,10 @@ class OverviewMap {
|
|
232
232
|
this._collectionListeners = [
|
233
233
|
this._app.maps.layerCollection.added.addEventListener((layer) => {
|
234
234
|
if (layer.properties.showInOverviewMap) {
|
235
|
-
const clone = deserializeLayer(this._app,
|
235
|
+
const clone = deserializeLayer(this._app, {
|
236
|
+
...layer.toJSON(),
|
237
|
+
mapNames: [this._map.name],
|
238
|
+
});
|
236
239
|
clone.activate();
|
237
240
|
const idx = this._map.layerCollection.indexOf(clone);
|
238
241
|
if (idx < 0) {
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import { ObliqueMap } from '@vcmap/core';
|
2
|
+
import { NotificationType } from './notifier/notifier.js';
|
3
|
+
|
4
|
+
function createNotification(app) {
|
5
|
+
app.notifier.add({
|
6
|
+
title: 'navigation.obliqueFallback.title',
|
7
|
+
type: NotificationType.WARNING,
|
8
|
+
message: 'navigation.obliqueFallback.message',
|
9
|
+
});
|
10
|
+
}
|
11
|
+
|
12
|
+
/**
|
13
|
+
* @param {import("./vcsUiApp.js").default} app
|
14
|
+
* @returns {() => void}
|
15
|
+
*/
|
16
|
+
export default function createObliqueFallbackWarnings(app) {
|
17
|
+
const fallbackMapEventListener =
|
18
|
+
app.maps.fallbackMapActivated.addEventListener(() => {
|
19
|
+
createNotification(app);
|
20
|
+
});
|
21
|
+
|
22
|
+
const mapListeners = new Map();
|
23
|
+
const setMapListener = (map) => {
|
24
|
+
mapListeners.set(
|
25
|
+
map,
|
26
|
+
map.failedToSetCollection.addEventListener(() => {
|
27
|
+
createNotification(app);
|
28
|
+
}),
|
29
|
+
);
|
30
|
+
};
|
31
|
+
|
32
|
+
app.maps.getByType(ObliqueMap.className).forEach(setMapListener);
|
33
|
+
|
34
|
+
const mapAddedListener = app.maps.added.addEventListener((map) => {
|
35
|
+
if (map instanceof ObliqueMap) {
|
36
|
+
setMapListener(map);
|
37
|
+
}
|
38
|
+
});
|
39
|
+
|
40
|
+
const mapRemovedListener = app.maps.removed.addEventListener((map) => {
|
41
|
+
mapListeners.get(map)?.();
|
42
|
+
mapListeners.delete(map);
|
43
|
+
});
|
44
|
+
|
45
|
+
return () => {
|
46
|
+
fallbackMapEventListener();
|
47
|
+
mapAddedListener();
|
48
|
+
mapRemovedListener();
|
49
|
+
[...mapListeners.values()].forEach((cb) => {
|
50
|
+
cb();
|
51
|
+
});
|
52
|
+
mapListeners.clear();
|
53
|
+
};
|
54
|
+
}
|
package/src/styles/main.scss
CHANGED
package/src/uiConfig.d.ts
CHANGED
@@ -56,6 +56,10 @@ export type UiConfigObject = {
|
|
56
56
|
* - mouse event, when position display is updated. Either 'click' (default) or 'move'.
|
57
57
|
*/
|
58
58
|
positionDisplayEventType?: string | undefined;
|
59
|
+
/**
|
60
|
+
* - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
|
61
|
+
*/
|
62
|
+
obliqueFooterTemplate?: string | undefined;
|
59
63
|
/**
|
60
64
|
* - an optional URL to a help landing page
|
61
65
|
*/
|
@@ -128,10 +132,18 @@ export type UiConfigObject = {
|
|
128
132
|
* - can be used to hide the settings Window
|
129
133
|
*/
|
130
134
|
hideSettings?: boolean | undefined;
|
135
|
+
/**
|
136
|
+
* - can be used to hide the oblique name in the footer
|
137
|
+
*/
|
138
|
+
hideObliqueFooter?: boolean | undefined;
|
131
139
|
/**
|
132
140
|
* - can be used to activate the overviewMap on startup
|
133
141
|
*/
|
134
142
|
overviewMapActiveOnStartup?: boolean | undefined;
|
143
|
+
/**
|
144
|
+
* - can be used to activate a contentTree on startup
|
145
|
+
*/
|
146
|
+
contentTreeActiveOnStartup?: boolean | undefined;
|
135
147
|
/**
|
136
148
|
* - the display quality settings
|
137
149
|
*/
|
@@ -190,6 +202,7 @@ export type UiConfigObject = {
|
|
190
202
|
* @property {string} [primaryColor] - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
|
191
203
|
* @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
|
192
204
|
* @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
|
205
|
+
* @property {string} [obliqueFooterTemplate] - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
|
193
206
|
* @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
|
194
207
|
* @property {TextPageType} [imprint] - an option imprint, will show a link in the footer. Default title is 'footer.imprint.title'.
|
195
208
|
* @property {TextPageType} [dataProtection] - an option dataProtection, will show a link in the footer. Default title is 'footer.dataProtection.title'.
|
@@ -208,7 +221,9 @@ export type UiConfigObject = {
|
|
208
221
|
* @property {boolean} [hideContentTree] - can be used to hide the contentTree
|
209
222
|
* @property {boolean} [hideLegend] - can be used to hide the legend
|
210
223
|
* @property {boolean} [hideSettings] - can be used to hide the settings Window
|
224
|
+
* @property {boolean} [hideObliqueFooter] - can be used to hide the oblique name in the footer
|
211
225
|
* @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
|
226
|
+
* @property {boolean} [contentTreeActiveOnStartup] - can be used to activate a contentTree on startup
|
212
227
|
* @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
|
213
228
|
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
214
229
|
* @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
|
@@ -266,6 +281,10 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
266
281
|
* - mouse event, when position display is updated. Either 'click' (default) or 'move'.
|
267
282
|
*/
|
268
283
|
readonly positionDisplayEventType?: string | undefined;
|
284
|
+
/**
|
285
|
+
* - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
|
286
|
+
*/
|
287
|
+
readonly obliqueFooterTemplate?: string | undefined;
|
269
288
|
/**
|
270
289
|
* - an optional URL to a help landing page
|
271
290
|
*/
|
@@ -438,10 +457,18 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
438
457
|
* - can be used to hide the settings Window
|
439
458
|
*/
|
440
459
|
readonly hideSettings?: boolean | undefined;
|
460
|
+
/**
|
461
|
+
* - can be used to hide the oblique name in the footer
|
462
|
+
*/
|
463
|
+
readonly hideObliqueFooter?: boolean | undefined;
|
441
464
|
/**
|
442
465
|
* - can be used to activate the overviewMap on startup
|
443
466
|
*/
|
444
467
|
readonly overviewMapActiveOnStartup?: boolean | undefined;
|
468
|
+
/**
|
469
|
+
* - can be used to activate a contentTree on startup
|
470
|
+
*/
|
471
|
+
readonly contentTreeActiveOnStartup?: boolean | undefined;
|
445
472
|
/**
|
446
473
|
* - the display quality settings
|
447
474
|
*/
|
@@ -456,6 +483,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
456
483
|
readonly fogScreenSpaceErrorFactor?: number | undefined;
|
457
484
|
readonly resolutionScale?: number | undefined;
|
458
485
|
readonly layerSSEFactor?: number | undefined;
|
486
|
+
readonly msaa?: 1 | 2 | 4 | 8 | undefined;
|
459
487
|
} | undefined;
|
460
488
|
readonly medium?: {
|
461
489
|
readonly sse?: number | undefined;
|
@@ -465,6 +493,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
465
493
|
readonly fogScreenSpaceErrorFactor?: number | undefined;
|
466
494
|
readonly resolutionScale?: number | undefined;
|
467
495
|
readonly layerSSEFactor?: number | undefined;
|
496
|
+
readonly msaa?: 1 | 2 | 4 | 8 | undefined;
|
468
497
|
} | undefined;
|
469
498
|
readonly high?: {
|
470
499
|
readonly sse?: number | undefined;
|
@@ -474,6 +503,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
474
503
|
readonly fogScreenSpaceErrorFactor?: number | undefined;
|
475
504
|
readonly resolutionScale?: number | undefined;
|
476
505
|
readonly layerSSEFactor?: number | undefined;
|
506
|
+
readonly msaa?: 1 | 2 | 4 | 8 | undefined;
|
477
507
|
} | undefined;
|
478
508
|
} | undefined;
|
479
509
|
/**
|
package/src/uiConfig.js
CHANGED
@@ -50,6 +50,7 @@ import { reactive, readonly } from 'vue';
|
|
50
50
|
* @property {string} [primaryColor] - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
|
51
51
|
* @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
|
52
52
|
* @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
|
53
|
+
* @property {string} [obliqueFooterTemplate] - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
|
53
54
|
* @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
|
54
55
|
* @property {TextPageType} [imprint] - an option imprint, will show a link in the footer. Default title is 'footer.imprint.title'.
|
55
56
|
* @property {TextPageType} [dataProtection] - an option dataProtection, will show a link in the footer. Default title is 'footer.dataProtection.title'.
|
@@ -68,7 +69,9 @@ import { reactive, readonly } from 'vue';
|
|
68
69
|
* @property {boolean} [hideContentTree] - can be used to hide the contentTree
|
69
70
|
* @property {boolean} [hideLegend] - can be used to hide the legend
|
70
71
|
* @property {boolean} [hideSettings] - can be used to hide the settings Window
|
72
|
+
* @property {boolean} [hideObliqueFooter] - can be used to hide the oblique name in the footer
|
71
73
|
* @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
|
74
|
+
* @property {boolean} [contentTreeActiveOnStartup] - can be used to activate a contentTree on startup
|
72
75
|
* @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
|
73
76
|
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
74
77
|
* @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
|