@vcmap/ui 6.0.0-rc.7 → 6.0.0-rc.9
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/build/buildHelpers.js +1 -1
- package/config/base.config.json +3 -1
- package/config/dev.config.json +1 -3
- package/config/www.config.json +1 -3
- package/dist/assets/{cesium-2afc3568.js → cesium-a21a380a.js} +4672 -4704
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-3fd82bc2.js → core-ccecb5f4.js} +4953 -4782
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol-edf7bfb3.js → ol-3c6b9b5b.js} +12074 -11458
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-8a8aef2a.css +1 -0
- package/dist/assets/{ui-c6eb55a5.js → ui-8a8aef2a.js} +6906 -6784
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-c3b6c9b3.css → vuetify-ac50bfc8.css} +1 -1
- package/dist/assets/{vuetify-c3b6c9b3.js → vuetify-ac50bfc8.js} +4795 -4779
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -0
- package/lib/olLib.js +6 -0
- package/package.json +4 -4
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +5 -2
- package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +3 -4
- package/plugins/package.json +19 -3
- package/src/actions/StyleSelector.vue +1 -1
- package/src/application/VcsApp.vue +29 -1
- package/src/application/VcsApp.vue.d.ts +8 -1
- package/src/application/VcsAppWrapper.vue +1 -1
- package/src/application/VcsAttributions.vue +1 -1
- package/src/application/VcsAttributionsFooter.vue +3 -1
- package/src/application/VcsContainer.vue.d.ts +8 -1
- package/src/application/VcsMainMap.vue +1 -1
- package/src/application/VcsMap.vue +1 -0
- package/src/application/VcsNavbar.vue +1 -1
- package/src/application/VcsPositionDisplay.vue +3 -3
- package/src/application/VcsSettings.vue +1 -1
- package/src/application/VcsSplashScreen.vue +1 -0
- package/src/application/VcsTextPage.vue +1 -1
- package/src/application/VcsTextPageFooter.vue +3 -1
- package/src/components/buttons/VcsActionButtonList.vue +5 -1
- package/src/components/buttons/VcsButton.vue +5 -5
- package/src/components/buttons/VcsButton.vue.d.ts +1 -1
- package/src/components/buttons/VcsFormButton.vue +4 -4
- package/src/components/buttons/VcsFormButton.vue.d.ts +1 -1
- package/src/components/buttons/VcsToolButton.vue +4 -4
- 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/extent/VcsExtent.vue +1 -1
- package/src/components/extent/VcsExtentEditor.vue +1 -0
- package/src/components/flight/VcsFlightAnchorsComponent.vue +1 -0
- package/src/components/flight/VcsFlightComponent.vue +1 -1
- package/src/components/flight/VcsFlightEditor.vue +1 -0
- package/src/components/flight/VcsFlightPlayer.vue +1 -1
- 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/VcsFileInput.vue +2 -2
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsSelect.vue +2 -2
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +1 -1
- 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 +3 -3
- package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsWizardStep.vue +3 -2
- package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +1 -1
- package/src/components/form-output/VcsMarkdown.vue +1 -1
- package/src/components/import/VcsFileDrop.vue +1 -1
- package/src/components/import/VcsImportComponent.vue +1 -1
- package/src/components/lists/VcsList.vue +14 -10
- package/src/components/lists/VcsListItemComponent.vue +18 -12
- package/src/components/lists/VcsListItemComponent.vue.d.ts +9 -5
- package/src/components/lists/VcsTreeview.vue +2 -2
- package/src/components/lists/VcsTreeview.vue.d.ts +1 -1
- package/src/components/lists/VcsTreeviewSearchbar.vue +1 -1
- package/src/components/lists/VcsTreeviewTitle.vue +1 -1
- package/src/components/notification/VcsBadge.vue +2 -2
- package/src/components/notification/VcsHelp.vue +1 -1
- package/src/components/plugins/AbstractConfigEditor.vue +1 -1
- package/src/components/section/VcsExpansionPanel.vue +5 -1
- package/src/components/style/MenuWrapper.vue +1 -1
- package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
- package/src/components/style/VcsFillMenu.vue +1 -0
- package/src/components/style/VcsFillSelector.vue +1 -0
- package/src/components/style/VcsImageMenu.vue +1 -0
- package/src/components/style/VcsImageSelector.vue +1 -1
- package/src/components/style/VcsStrokeMenu.vue +1 -0
- package/src/components/style/VcsStrokeSelector.vue +1 -1
- package/src/components/style/VcsTextMenu.vue +1 -0
- package/src/components/style/VcsTextSelector.vue +1 -1
- package/src/components/style/VcsVectorStyleComponent.vue +1 -1
- package/src/components/tables/VcsDataTable.vue +3 -3
- package/src/components/tables/VcsDataTable.vue.d.ts +1 -1
- package/src/components/tables/VcsTable.vue +1 -0
- package/src/components/tables/VcsTableCell.vue +1 -1
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +1 -1
- package/src/components/vector-properties/VcsFeatureTransforms.vue +1 -1
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -0
- package/src/components/viewpoint/VcsViewpointComponent.vue +1 -1
- package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
- package/src/contentTree/LayerTree.vue +1 -1
- package/src/contentTree/obliqueCollectionContentTreeItem.js +6 -1
- package/src/featureInfo/AddressBalloonComponent.vue +1 -1
- package/src/featureInfo/BalloonComponent.vue +1 -1
- package/src/featureInfo/IframeComponent.vue +6 -1
- package/src/featureInfo/MarkdownBalloonComponent.vue +1 -1
- package/src/featureInfo/abstractFeatureInfoView.js +3 -2
- package/src/i18n/de.d.ts +35 -30
- package/src/i18n/de.js +5 -0
- package/src/i18n/en.d.ts +35 -30
- package/src/i18n/en.js +5 -0
- package/src/legend/StyleLegendItem.vue +1 -1
- package/src/legend/VcsLegend.vue +1 -1
- package/src/manager/collectionManager/CollectionComponent.vue +1 -0
- package/src/manager/collectionManager/collectionComponentClass.js +5 -1
- package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
- package/src/manager/panel/PanelManagerComponent.vue +2 -2
- package/src/manager/toolbox/GroupToolboxComponent.vue +2 -2
- package/src/manager/toolbox/SelectToolboxComponent.vue +2 -2
- package/src/manager/toolbox/ToolboxManagerComponent.vue +13 -2
- package/src/manager/window/WindowComponent.vue +1 -1
- package/src/manager/window/WindowManager.vue +4 -1
- package/src/manager/window/windowManager.d.ts +59 -3
- package/src/manager/window/windowManager.js +23 -2
- package/src/navigation/MapNavigation.vue +4 -1
- package/src/navigation/ObliqueRotation.vue +2 -2
- package/src/navigation/OrientationToolsButton.vue +1 -1
- package/src/navigation/TiltSlider.vue +1 -0
- package/src/navigation/VcsCompass.vue +1 -1
- package/src/navigation/VcsZoomButton.vue +1 -1
- package/src/notifier/NotifierComponent.vue +1 -1
- package/src/obliqueFallbackWarnings.d.ts +5 -0
- package/src/obliqueFallbackWarnings.js +54 -0
- package/src/search/ResultItem.vue +1 -1
- package/src/search/ResultsComponent.vue +1 -1
- package/src/search/SearchComponent.vue +3 -1
- package/src/uiConfig.d.ts +16 -4
- package/src/uiConfig.js +3 -2
- package/src/vcsUiApp.d.ts +43 -17
- package/src/vcsUiApp.js +17 -11
- package/src/vuePlugins/i18n.js +1 -0
- package/dist/assets/ui-c6eb55a5.css +0 -1
- /package/dist/assets/{vue-aefad438.js → vue-bcc58dd1.js} +0 -0
@@ -17,7 +17,7 @@ export function isSlotPosition(windowPosition: WindowPosition): boolean;
|
|
17
17
|
* parentId?: string,
|
18
18
|
* component: import("vue").Component<T>,
|
19
19
|
* headerComponent?: import("vue").Component<T>,
|
20
|
-
* state? :
|
20
|
+
* state? : WindowStateOptions,
|
21
21
|
* position? : Partial<WindowPositionOptions>,
|
22
22
|
* slot?: WindowSlot,
|
23
23
|
* props?: T,
|
@@ -28,16 +28,34 @@ export function isSlotPosition(windowPosition: WindowPosition): boolean;
|
|
28
28
|
* @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
|
29
29
|
* @property {import("vue").Component<T, unknown, unknown>} component Main Component which is shown below the header.
|
30
30
|
* @property {import("vue").Component<T, unknown, unknown>} [headerComponent] Replaces the Header Component.
|
31
|
-
* @property {
|
31
|
+
* @property {WindowStateOptions} [state]
|
32
32
|
* @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
|
33
33
|
* @property {WindowSlot} [slot]
|
34
34
|
* @property {T} [props]
|
35
35
|
* @property {Object} [provides]
|
36
36
|
*/
|
37
|
+
/**
|
38
|
+
* @typedef {T|import('vue').Ref<T>|import('vue').ComputedRef<T>} OptionsOrRef
|
39
|
+
* @template T
|
40
|
+
*/
|
41
|
+
/**
|
42
|
+
* @typedef {Object} WindowStateOptions
|
43
|
+
* @property {OptionsOrRef<boolean>} [hideHeader] be used to not show the header.
|
44
|
+
* @property {OptionsOrRef<boolean>} [hidePin] be used to not show the pin button.
|
45
|
+
* @property {OptionsOrRef<string|string[]>} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
46
|
+
* @property {OptionsOrRef<string>} [headerIcon]
|
47
|
+
* @property {OptionsOrRef<Array<import("../../actions/actionHelper.js").VcsAction>>} [headerActions]
|
48
|
+
* @property {OptionsOrRef<number>} [headerActionsOverflow]
|
49
|
+
* @property {OptionsOrRef<string>} [infoUrl] An optional url referencing help or further information on the window's content.
|
50
|
+
* @property {OptionsOrRef<function():string>} [infoUrlCallback] An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
|
51
|
+
* @property {Record<string, string>} [styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
|
52
|
+
* @property {Array<string>|Record<string,string>} [classes] Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
|
53
|
+
*/
|
37
54
|
/**
|
38
55
|
* @typedef {Object} WindowState
|
39
56
|
* @property {string} id
|
40
57
|
* @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
|
58
|
+
* @property {string|undefined} parentId - the parent of this window
|
41
59
|
* @property {boolean} [hideHeader] be used to not show the header.
|
42
60
|
* @property {boolean} [hidePin] be used to not show the pin button.
|
43
61
|
* @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
@@ -134,18 +152,56 @@ export type WindowComponentOptions<T = any> = {
|
|
134
152
|
parentId?: string;
|
135
153
|
component: import("vue").Component<T>;
|
136
154
|
headerComponent?: import("vue").Component<T>;
|
137
|
-
state?:
|
155
|
+
state?: WindowStateOptions;
|
138
156
|
position?: Partial<WindowPositionOptions>;
|
139
157
|
slot?: WindowSlot;
|
140
158
|
props?: T;
|
141
159
|
provides?: Record<string, unknown>;
|
142
160
|
};
|
161
|
+
export type OptionsOrRef<T> = T | import('vue').Ref<T> | import('vue').ComputedRef<T>;
|
162
|
+
export type WindowStateOptions = {
|
163
|
+
/**
|
164
|
+
* be used to not show the header.
|
165
|
+
*/
|
166
|
+
hideHeader?: OptionsOrRef<boolean> | undefined;
|
167
|
+
/**
|
168
|
+
* be used to not show the pin button.
|
169
|
+
*/
|
170
|
+
hidePin?: OptionsOrRef<boolean> | undefined;
|
171
|
+
/**
|
172
|
+
* An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
173
|
+
*/
|
174
|
+
headerTitle?: OptionsOrRef<string | string[]> | undefined;
|
175
|
+
headerIcon?: OptionsOrRef<string> | undefined;
|
176
|
+
headerActions?: OptionsOrRef<import("../../actions/actionHelper.js").VcsAction[]> | undefined;
|
177
|
+
headerActionsOverflow?: OptionsOrRef<number> | undefined;
|
178
|
+
/**
|
179
|
+
* An optional url referencing help or further information on the window's content.
|
180
|
+
*/
|
181
|
+
infoUrl?: OptionsOrRef<string> | undefined;
|
182
|
+
/**
|
183
|
+
* An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
|
184
|
+
*/
|
185
|
+
infoUrlCallback?: OptionsOrRef<() => string> | undefined;
|
186
|
+
/**
|
187
|
+
* Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
|
188
|
+
*/
|
189
|
+
styles?: Record<string, string> | undefined;
|
190
|
+
/**
|
191
|
+
* Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
|
192
|
+
*/
|
193
|
+
classes?: string[] | Record<string, string> | undefined;
|
194
|
+
};
|
143
195
|
export type WindowState = {
|
144
196
|
id: string;
|
145
197
|
/**
|
146
198
|
* Owner of the window, set by windowManager on add
|
147
199
|
*/
|
148
200
|
owner: string | symbol;
|
201
|
+
/**
|
202
|
+
* - the parent of this window
|
203
|
+
*/
|
204
|
+
parentId: string | undefined;
|
149
205
|
/**
|
150
206
|
* be used to not show the header.
|
151
207
|
*/
|
@@ -107,7 +107,7 @@ export function isSlotPosition(windowPosition) {
|
|
107
107
|
* parentId?: string,
|
108
108
|
* component: import("vue").Component<T>,
|
109
109
|
* headerComponent?: import("vue").Component<T>,
|
110
|
-
* state? :
|
110
|
+
* state? : WindowStateOptions,
|
111
111
|
* position? : Partial<WindowPositionOptions>,
|
112
112
|
* slot?: WindowSlot,
|
113
113
|
* props?: T,
|
@@ -118,17 +118,37 @@ export function isSlotPosition(windowPosition) {
|
|
118
118
|
* @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
|
119
119
|
* @property {import("vue").Component<T, unknown, unknown>} component Main Component which is shown below the header.
|
120
120
|
* @property {import("vue").Component<T, unknown, unknown>} [headerComponent] Replaces the Header Component.
|
121
|
-
* @property {
|
121
|
+
* @property {WindowStateOptions} [state]
|
122
122
|
* @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
|
123
123
|
* @property {WindowSlot} [slot]
|
124
124
|
* @property {T} [props]
|
125
125
|
* @property {Object} [provides]
|
126
126
|
*/
|
127
127
|
|
128
|
+
/**
|
129
|
+
* @typedef {T|import('vue').Ref<T>|import('vue').ComputedRef<T>} OptionsOrRef
|
130
|
+
* @template T
|
131
|
+
*/
|
132
|
+
|
133
|
+
/**
|
134
|
+
* @typedef {Object} WindowStateOptions
|
135
|
+
* @property {OptionsOrRef<boolean>} [hideHeader] be used to not show the header.
|
136
|
+
* @property {OptionsOrRef<boolean>} [hidePin] be used to not show the pin button.
|
137
|
+
* @property {OptionsOrRef<string|string[]>} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
138
|
+
* @property {OptionsOrRef<string>} [headerIcon]
|
139
|
+
* @property {OptionsOrRef<Array<import("../../actions/actionHelper.js").VcsAction>>} [headerActions]
|
140
|
+
* @property {OptionsOrRef<number>} [headerActionsOverflow]
|
141
|
+
* @property {OptionsOrRef<string>} [infoUrl] An optional url referencing help or further information on the window's content.
|
142
|
+
* @property {OptionsOrRef<function():string>} [infoUrlCallback] An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
|
143
|
+
* @property {Record<string, string>} [styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
|
144
|
+
* @property {Array<string>|Record<string,string>} [classes] Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
|
145
|
+
*/
|
146
|
+
|
128
147
|
/**
|
129
148
|
* @typedef {Object} WindowState
|
130
149
|
* @property {string} id
|
131
150
|
* @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
|
151
|
+
* @property {string|undefined} parentId - the parent of this window
|
132
152
|
* @property {boolean} [hideHeader] be used to not show the header.
|
133
153
|
* @property {boolean} [hidePin] be used to not show the pin button.
|
134
154
|
* @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
|
@@ -599,6 +619,7 @@ class WindowManager {
|
|
599
619
|
? [...(windowComponentOptions?.state?.classes ?? [])]
|
600
620
|
: { ...windowComponentOptions?.state?.classes };
|
601
621
|
|
622
|
+
/** @type {WindowState} */
|
602
623
|
const state = reactive({
|
603
624
|
id,
|
604
625
|
parentId,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div class="d-inline-flex rounded
|
2
|
+
<div class="d-inline-flex rounded oblique-orientation">
|
3
3
|
<div class="d-inline-flex rounded inner">
|
4
4
|
<OrientationToolsButton
|
5
5
|
@click="input(-90)"
|
@@ -56,7 +56,7 @@
|
|
56
56
|
</script>
|
57
57
|
|
58
58
|
<style lang="scss" scoped>
|
59
|
-
.
|
59
|
+
.oblique-orientation {
|
60
60
|
box-shadow: rgba(0, 0, 0, 0.15) 0 2px 2px 0;
|
61
61
|
.inner {
|
62
62
|
box-shadow: rgba(0, 0, 0, 0.25) 0 -2px 2px 0 inset;
|
@@ -4,7 +4,7 @@
|
|
4
4
|
transform: `rotate(${compassRotation}deg)`,
|
5
5
|
}"
|
6
6
|
@click="$emit('update:modelValue', 0)"
|
7
|
-
class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none transition-transform-200-ease"
|
7
|
+
class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none transition-transform-200-ease vcs-compass"
|
8
8
|
elevation="1"
|
9
9
|
:height="height"
|
10
10
|
:width="width"
|
@@ -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
|
+
}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<template>
|
2
2
|
<v-sheet>
|
3
|
-
<span
|
3
|
+
<span
|
4
|
+
class="d-flex justify-space-between align-center mt-1 ml-2 search-component"
|
5
|
+
>
|
4
6
|
<v-icon class="pa-1" :size="searchIconSize"> $vcsSearch </v-icon>
|
5
7
|
<VcsTextField
|
6
8
|
class="d-inline-block user-select-none w-100 mx-1"
|
package/src/uiConfig.d.ts
CHANGED
@@ -137,9 +137,13 @@ export type UiConfigObject = {
|
|
137
137
|
*/
|
138
138
|
displayQuality?: import("@vcmap/core").DisplayQualityOptions | undefined;
|
139
139
|
/**
|
140
|
-
* - Vuetify Theming, also see vuetify
|
140
|
+
* - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
141
141
|
*/
|
142
142
|
vuetifyTheme?: any;
|
143
|
+
/**
|
144
|
+
* - open the legend window, if new layer has a config
|
145
|
+
*/
|
146
|
+
openLegendOnAdd?: boolean | undefined;
|
143
147
|
};
|
144
148
|
/**
|
145
149
|
* @typedef {{
|
@@ -206,7 +210,8 @@ export type UiConfigObject = {
|
|
206
210
|
* @property {boolean} [hideSettings] - can be used to hide the settings Window
|
207
211
|
* @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
|
208
212
|
* @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
|
209
|
-
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify
|
213
|
+
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
214
|
+
* @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
|
210
215
|
*/
|
211
216
|
/**
|
212
217
|
* @extends {Collection<UiConfigurationItem<unknown>>}
|
@@ -233,7 +238,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
233
238
|
*/
|
234
239
|
private _listeners;
|
235
240
|
/**
|
236
|
-
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<
|
241
|
+
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Record<string, *> & UiConfigObject>>}
|
237
242
|
*/
|
238
243
|
get config(): {
|
239
244
|
readonly [x: string]: any;
|
@@ -451,6 +456,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
451
456
|
readonly fogScreenSpaceErrorFactor?: number | undefined;
|
452
457
|
readonly resolutionScale?: number | undefined;
|
453
458
|
readonly layerSSEFactor?: number | undefined;
|
459
|
+
readonly msaa?: 1 | 2 | 4 | 8 | undefined;
|
454
460
|
} | undefined;
|
455
461
|
readonly medium?: {
|
456
462
|
readonly sse?: number | undefined;
|
@@ -460,6 +466,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
460
466
|
readonly fogScreenSpaceErrorFactor?: number | undefined;
|
461
467
|
readonly resolutionScale?: number | undefined;
|
462
468
|
readonly layerSSEFactor?: number | undefined;
|
469
|
+
readonly msaa?: 1 | 2 | 4 | 8 | undefined;
|
463
470
|
} | undefined;
|
464
471
|
readonly high?: {
|
465
472
|
readonly sse?: number | undefined;
|
@@ -469,12 +476,17 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
|
|
469
476
|
readonly fogScreenSpaceErrorFactor?: number | undefined;
|
470
477
|
readonly resolutionScale?: number | undefined;
|
471
478
|
readonly layerSSEFactor?: number | undefined;
|
479
|
+
readonly msaa?: 1 | 2 | 4 | 8 | undefined;
|
472
480
|
} | undefined;
|
473
481
|
} | undefined;
|
474
482
|
/**
|
475
|
-
* - Vuetify Theming, also see vuetify
|
483
|
+
* - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
476
484
|
*/
|
477
485
|
readonly vuetifyTheme?: any;
|
486
|
+
/**
|
487
|
+
* - open the legend window, if new layer has a config
|
488
|
+
*/
|
489
|
+
readonly openLegendOnAdd?: boolean | undefined;
|
478
490
|
};
|
479
491
|
}
|
480
492
|
import { Collection } from '@vcmap/core';
|
package/src/uiConfig.js
CHANGED
@@ -70,7 +70,8 @@ import { reactive, readonly } from 'vue';
|
|
70
70
|
* @property {boolean} [hideSettings] - can be used to hide the settings Window
|
71
71
|
* @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
|
72
72
|
* @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
|
73
|
-
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify
|
73
|
+
* @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
|
74
|
+
* @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
|
74
75
|
*/
|
75
76
|
|
76
77
|
/**
|
@@ -117,7 +118,7 @@ class UiConfig extends Collection {
|
|
117
118
|
}
|
118
119
|
|
119
120
|
/**
|
120
|
-
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<
|
121
|
+
* @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Record<string, *> & UiConfigObject>>}
|
121
122
|
*/
|
122
123
|
get config() {
|
123
124
|
return this._readonlyConfig;
|
package/src/vcsUiApp.d.ts
CHANGED
@@ -70,20 +70,21 @@ declare class VcsUiApp extends VcsApp {
|
|
70
70
|
*/
|
71
71
|
themeChanged: VcsEvent<void>;
|
72
72
|
/**
|
73
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
73
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
74
74
|
* @private
|
75
75
|
*/
|
76
76
|
private _plugins;
|
77
77
|
/**
|
78
|
-
*
|
78
|
+
* I18n Collection adds plugin listener first, so the plugin i18n data is available on plugin initialize
|
79
|
+
* @type {I18nCollection<Object>}
|
79
80
|
* @private
|
80
81
|
*/
|
81
|
-
private
|
82
|
+
private _i18n;
|
82
83
|
/**
|
83
|
-
* @type {
|
84
|
+
* @type {Array<function():void>}
|
84
85
|
* @private
|
85
86
|
*/
|
86
|
-
private
|
87
|
+
private _pluginListeners;
|
87
88
|
/**
|
88
89
|
*
|
89
90
|
* @type {import("vue-i18n").I18n}
|
@@ -194,10 +195,11 @@ declare class VcsUiApp extends VcsApp {
|
|
194
195
|
*/
|
195
196
|
mounted: import("@vcmap/core").VcsEvent<string>;
|
196
197
|
_destroySiteConfig: () => void;
|
198
|
+
_destroyObliqueFallback: () => void;
|
197
199
|
/**
|
198
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
200
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
199
201
|
*/
|
200
|
-
get plugins(): import("@vcmap/core").OverrideCollection<
|
202
|
+
get plugins(): import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>;
|
201
203
|
/**
|
202
204
|
* @type {import("@vcmap/core").OverrideCollection<ContentTreeItem, ContentTreeCollection>}
|
203
205
|
*/
|
@@ -253,10 +255,6 @@ declare class VcsUiApp extends VcsApp {
|
|
253
255
|
install: (app: import("vue").App<any>) => void;
|
254
256
|
defaults: import("vue").Ref<import("vuetify").DefaultsInstance>;
|
255
257
|
display: import("vuetify").DisplayInstance;
|
256
|
-
/**
|
257
|
-
* @type {NavbarManager}
|
258
|
-
* @private
|
259
|
-
*/
|
260
258
|
theme: import("vuetify").ThemeInstance & {
|
261
259
|
install: (app: import("vue").App<any>) => void;
|
262
260
|
};
|
@@ -284,17 +282,39 @@ declare class VcsUiApp extends VcsApp {
|
|
284
282
|
formats?: any;
|
285
283
|
}) => import("vuetify").DateInstance) | import("vuetify").DateInstance;
|
286
284
|
formats?: Record<string, any> | undefined;
|
287
|
-
locale: Record<string, any>;
|
285
|
+
locale: Record<string, any>; /**
|
286
|
+
* Interface for VcsPlugins.
|
287
|
+
* The function implementing the interface should not throw!
|
288
|
+
* @typedef {{
|
289
|
+
* name: string,
|
290
|
+
* version: string,
|
291
|
+
* mapVersion: string,
|
292
|
+
* i18n?: Object<string, unknown>,
|
293
|
+
* initialize?: function(import("@src/vcsUiApp.js").default, S=):void|Promise<void>,
|
294
|
+
* onVcsAppMounted?: function(import("@src/vcsUiApp.js").default):void,
|
295
|
+
* toJSON?: function(): C,
|
296
|
+
* getDefaultOptions?: function(): C,
|
297
|
+
* getState?: function(boolean=):S|Promise<S>,
|
298
|
+
* getConfigEditors?: function():Array<PluginConfigEditor<object>>,
|
299
|
+
* destroy?: function(): void
|
300
|
+
* }} VcsPlugin
|
301
|
+
* @template {Object} C - plugin config
|
302
|
+
* @template {Object} S - plugin state
|
303
|
+
* @property {Object<string, *>} [i18n] - the i18n messages of this plugin
|
304
|
+
* @property {function(import("@src/vcsUiApp.js").default, S=)} initialize - called on plugin added. Is passed the VcsUiApp and optionally, the state for the plugin
|
305
|
+
* @property {function(import("@src/vcsUiApp.js").default)} onVcsAppMounted - called on mounted of VcsApp.vue
|
306
|
+
* @property {function():C} [toJSON] - should return the plugin's serialization excluding all default values
|
307
|
+
* @property {function():C} [getDefaultOptions] - should return the plugin's default options
|
308
|
+
* @property {function(boolean=):S|Promise<S>} [getState] - should return the plugin's state or a promise for said state. is passed a "for url" flag. If true, only the state relevant for sharing a URL should be passed and short keys shall be used
|
309
|
+
* @property {Array<PluginConfigEditor>} [getConfigEditors] - should return components for configuring the plugin or custom items defined by the plugin
|
310
|
+
* @api
|
311
|
+
*/
|
288
312
|
};
|
289
313
|
instance: {
|
290
314
|
locale?: any;
|
291
315
|
date: (value?: any) => unknown;
|
292
316
|
format: (date: unknown, formatString: string) => string;
|
293
317
|
toJsDate: (value: unknown) => Date;
|
294
|
-
/**
|
295
|
-
* @type {OverviewMap}
|
296
|
-
* @private
|
297
|
-
*/
|
298
318
|
parseISO: (date: string) => unknown;
|
299
319
|
toISO: (date: unknown) => string;
|
300
320
|
startOfDay: (date: unknown) => unknown;
|
@@ -303,6 +323,10 @@ declare class VcsUiApp extends VcsApp {
|
|
303
323
|
endOfWeek: (date: unknown) => unknown;
|
304
324
|
startOfMonth: (date: unknown) => unknown;
|
305
325
|
endOfMonth: (date: unknown) => unknown;
|
326
|
+
/**
|
327
|
+
* @type {ContextMenuManager}
|
328
|
+
* @private
|
329
|
+
*/
|
306
330
|
startOfYear: (date: unknown) => unknown;
|
307
331
|
endOfYear: (date: unknown) => unknown;
|
308
332
|
isAfter: (date: unknown, comparing: unknown) => boolean;
|
@@ -324,7 +348,9 @@ declare class VcsUiApp extends VcsApp {
|
|
324
348
|
getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
|
325
349
|
getWeekArray: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown[][];
|
326
350
|
getWeekdays: (firstDayOfWeek?: string | number | undefined) => string[];
|
327
|
-
getMonth: (date: unknown) => number;
|
351
|
+
getMonth: (date: unknown) => number; /**
|
352
|
+
* @type {import("@vcmap/core").OverrideClassRegistry<typeof AbstractFeatureInfoView>}
|
353
|
+
*/
|
328
354
|
setMonth: (date: unknown, month: number) => unknown;
|
329
355
|
getDate: (date: unknown) => number;
|
330
356
|
setDate: (date: unknown, day: number) => unknown;
|
package/src/vcsUiApp.js
CHANGED
@@ -45,6 +45,7 @@ import { createVueI18n, setupI18n } from './vuePlugins/i18n.js';
|
|
45
45
|
import { callbackClassRegistry } from './callback/vcsCallback.js';
|
46
46
|
import createSiteConfig from './siteConfig.js';
|
47
47
|
import { createVcsVuetify } from './vuePlugins/vuetify.js';
|
48
|
+
import createObliqueFallbackWarnings from './obliqueFallbackWarnings.js';
|
48
49
|
|
49
50
|
/**
|
50
51
|
* @typedef {import("@vcmap/core").VcsModuleConfig & {
|
@@ -170,7 +171,7 @@ class VcsUiApp extends VcsApp {
|
|
170
171
|
*/
|
171
172
|
this.themeChanged = new VcsEvent();
|
172
173
|
/**
|
173
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
174
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
174
175
|
* @private
|
175
176
|
*/
|
176
177
|
this._plugins = makeOverrideCollection(
|
@@ -179,6 +180,17 @@ class VcsUiApp extends VcsApp {
|
|
179
180
|
serializePlugin,
|
180
181
|
deserializePlugin,
|
181
182
|
);
|
183
|
+
|
184
|
+
/**
|
185
|
+
* I18n Collection adds plugin listener first, so the plugin i18n data is available on plugin initialize
|
186
|
+
* @type {I18nCollection<Object>}
|
187
|
+
* @private
|
188
|
+
*/
|
189
|
+
this._i18n = makeOverrideCollection(
|
190
|
+
new I18nCollection(this._plugins),
|
191
|
+
() => this.dynamicModuleId,
|
192
|
+
);
|
193
|
+
|
182
194
|
/**
|
183
195
|
* @type {Array<function():void>}
|
184
196
|
* @private
|
@@ -222,15 +234,6 @@ class VcsUiApp extends VcsApp {
|
|
222
234
|
}),
|
223
235
|
];
|
224
236
|
|
225
|
-
/**
|
226
|
-
* @type {I18nCollection<Object>}
|
227
|
-
* @private
|
228
|
-
*/
|
229
|
-
this._i18n = makeOverrideCollection(
|
230
|
-
new I18nCollection(this._plugins),
|
231
|
-
() => this.dynamicModuleId,
|
232
|
-
);
|
233
|
-
|
234
237
|
/**
|
235
238
|
*
|
236
239
|
* @type {import("vue-i18n").I18n}
|
@@ -372,10 +375,12 @@ class VcsUiApp extends VcsApp {
|
|
372
375
|
this.mounted = new VcsEvent();
|
373
376
|
|
374
377
|
this._destroySiteConfig = createSiteConfig(this._uiConfig);
|
378
|
+
|
379
|
+
this._destroyObliqueFallback = createObliqueFallbackWarnings(this);
|
375
380
|
}
|
376
381
|
|
377
382
|
/**
|
378
|
-
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin
|
383
|
+
* @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>, Object>}
|
379
384
|
*/
|
380
385
|
get plugins() {
|
381
386
|
return this._plugins;
|
@@ -751,6 +756,7 @@ class VcsUiApp extends VcsApp {
|
|
751
756
|
this._featureInfo.destroy();
|
752
757
|
this._uiConfig.destroy();
|
753
758
|
this._destroySiteConfig();
|
759
|
+
this._destroyObliqueFallback();
|
754
760
|
super.destroy();
|
755
761
|
}
|
756
762
|
}
|