@vcmap/ui 6.0.14 → 6.1.0-rc.2
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/config/base.config.json +25 -3
- package/config/dev.config.json +17 -3
- package/config/splashscreen.config.json +13 -0
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-882e211a.js → core-fd079400.js} +6861 -5788
- package/dist/assets/core.js +1 -1
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-5135917c.css +1 -0
- package/dist/assets/{ui-b6bff1d9.js → ui-5135917c.js} +16764 -18447
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-2d64c180.js → vuetify-f02b7bb9.js} +1 -1
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +13 -1
- package/index.js +7 -0
- package/package.json +2 -2
- package/plugins/@vcmap-show-case/dev-tools/package.json +5 -0
- package/plugins/@vcmap-show-case/dev-tools/src/eventLogger.js +35 -0
- package/plugins/@vcmap-show-case/dev-tools/src/index.js +59 -0
- package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +10 -0
- package/src/application/VcsApp.vue.d.ts +26 -0
- package/src/application/VcsContainer.vue +5 -3
- package/src/application/VcsContainer.vue.d.ts +21 -0
- package/src/application/VcsNavbar.vue +10 -6
- package/src/application/VcsNavbar.vue.d.ts +2 -0
- package/src/application/VcsSplashScreen.vue +35 -28
- package/src/application/VcsSplashScreen.vue.d.ts +1 -0
- package/src/callback/addModuleCallback.d.ts +29 -0
- package/src/callback/addModuleCallback.js +61 -0
- package/src/callback/removeModuleCallback.d.ts +29 -0
- package/src/callback/removeModuleCallback.js +53 -0
- package/src/callback/startRotationCallback.d.ts +37 -0
- package/src/callback/startRotationCallback.js +67 -0
- package/src/callback/stopRotationCallback.d.ts +8 -0
- package/src/callback/stopRotationCallback.js +37 -0
- package/src/components/buttons/VcsActionButtonList.vue +6 -4
- package/src/components/buttons/VcsToolButton.vue +0 -1
- package/src/components/form-inputs-controls/VcsDatePicker.vue +7 -1
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +9 -0
- package/src/components/form-inputs-controls/VcsTextArea.vue +1 -1
- package/src/components/icons/+all.js +4 -0
- package/src/components/icons/View360Icon.vue +55 -0
- package/src/components/icons/View360Icon.vue.d.ts +2 -0
- package/src/components/import/VcsImportComponent.vue +2 -0
- package/src/components/lists/VcsList.vue +15 -11
- package/src/components/lists/VcsList.vue.d.ts +9 -0
- package/src/components/lists/VcsTreeNode.vue +244 -0
- package/src/components/lists/VcsTreeNode.vue.d.ts +31 -0
- package/src/components/lists/VcsTreeview.vue +111 -173
- package/src/components/lists/VcsTreeview.vue.d.ts +58 -4
- package/src/components/lists/VcsTreeviewTitle.vue +10 -3
- package/src/components/lists/VcsTreeviewTitle.vue.d.ts +2 -0
- package/src/components/tables/VcsDataTable.vue +14 -3
- package/src/components/tables/VcsDataTable.vue.d.ts +9 -0
- package/src/featureInfo/BalloonComponent.vue +18 -47
- package/src/featureInfo/BalloonComponent.vue.d.ts +0 -1
- package/src/featureInfo/IframeComponent.vue +1 -32
- package/src/featureInfo/IframeComponent.vue.d.ts +1 -4
- package/src/i18n/de.d.ts +1 -0
- package/src/i18n/de.js +1 -0
- package/src/i18n/en.d.ts +1 -0
- package/src/i18n/en.js +1 -0
- package/src/init.d.ts +6 -0
- package/src/init.js +26 -14
- package/src/legend/VcsLegend.vue +1 -1
- package/src/manager/toolbox/ToolboxManagerComponent.vue +4 -4
- package/src/manager/toolbox/ToolboxManagerComponent.vue.d.ts +2 -2
- package/src/manager/toolbox/toolboxManager.d.ts +5 -0
- package/src/manager/toolbox/toolboxManager.js +7 -1
- package/src/manager/window/WindowComponent.vue +11 -1
- package/src/manager/window/WindowComponent.vue.d.ts +1 -0
- package/src/manager/window/WindowManager.vue +14 -4
- package/src/manager/window/WindowManager.vue.d.ts +1 -0
- package/src/navigation/MapNavigation.vue +87 -5
- package/src/navigation/MapNavigation.vue.d.ts +3 -1
- package/src/navigation/overviewMap.d.ts +6 -0
- package/src/navigation/overviewMap.js +14 -1
- package/src/pluginHelper.d.ts +0 -7
- package/src/pluginHelper.js +4 -18
- package/src/search/ResultItem.vue +1 -10
- package/src/search/ResultsComponent.vue +11 -1
- package/src/search/ResultsComponent.vue.d.ts +9 -0
- package/src/search/SearchComponent.vue +88 -11
- package/src/search/SearchComponent.vue.d.ts +7 -0
- package/src/search/markText.d.ts +1 -1
- package/src/search/markText.js +4 -4
- package/src/search/search.d.ts +3 -0
- package/src/search/search.js +3 -2
- package/src/state.d.ts +2 -4
- package/src/state.js +31 -54
- package/src/uiConfig.d.ts +40 -0
- package/src/uiConfig.js +6 -0
- package/src/vcsUiApp.js +11 -7
- package/src/vuePlugins/vuetify.js +2 -0
- package/dist/assets/ui-b6bff1d9.css +0 -1
- /package/dist/assets/{cesium-615823f2.js → cesium-57fbd309.js} +0 -0
- /package/dist/assets/{ol-7fc05707.js → ol-50dfef96.js} +0 -0
- /package/dist/assets/{vue-74e8343e.js → vue-c3c55d88.js} +0 -0
- /package/dist/assets/{vuetify-2d64c180.css → vuetify-f02b7bb9.css} +0 -0
package/dist/assets/ui.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "./ui-
|
1
|
+
export * from "./ui-5135917c.js";
|
package/dist/assets/vue.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "./vue-
|
1
|
+
export * from "./vue-c3c55d88.js";
|
@@ -10,7 +10,7 @@ function loadCss(href) {
|
|
10
10
|
elem.onerror = reject;
|
11
11
|
document.head.appendChild(elem);
|
12
12
|
});
|
13
|
-
} await loadCss('./assets/vuetify-
|
13
|
+
} await loadCss('./assets/vuetify-f02b7bb9.css');import { watch as X, onScopeDispose as tt, effectScope as Ul, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Ne, toRefs as Wt, capitalize as On, isVNode as Oc, Comment as Rc, unref as ot, warn as Ha, getCurrentInstance as Nc, ref as W, provide as Ae, inject as ye, defineComponent as Hc, camelize as Ir, h as jt, toRaw as Ee, createVNode as r, mergeProps as N, onBeforeUnmount as nt, readonly as Kl, onDeactivated as _r, onActivated as zc, onMounted as Ke, nextTick as Se, TransitionGroup as ql, Transition as Ht, isRef as _n, toRef as F, onBeforeMount as Xl, withDirectives as $e, resolveDirective as dt, vShow as xt, onUpdated as Wc, Text as jc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Uc, cloneVNode as Kc, createTextVNode as Pt, onUnmounted as qc, onBeforeUpdate as Xc, withModifiers as Pl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Tr } from "./vue-c3c55d88.js";
|
14
14
|
function rt(e, n) {
|
15
15
|
let t;
|
16
16
|
function a() {
|
package/dist/assets/vuetify.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "./vuetify-
|
1
|
+
export * from "./vuetify-f02b7bb9.js";
|
package/index.d.ts
CHANGED
@@ -8,6 +8,14 @@ export { default as GoToViewpointCallback } from "./src/callback/goToViewpointCa
|
|
8
8
|
export type * from "./src/callback/goToViewpointCallback.d.ts";
|
9
9
|
export { default as ApplyLayerStyleCallback } from "./src/callback/applyLayerStyleCallback.js";
|
10
10
|
export type * from "./src/callback/applyLayerStyleCallback.d.ts";
|
11
|
+
export { default as StopRotationCallback } from "./src/callback/stopRotationCallback.js";
|
12
|
+
export type * from "./src/callback/stopRotationCallback.d.ts";
|
13
|
+
export { default as StartRotationCallback } from "./src/callback/startRotationCallback.js";
|
14
|
+
export type * from "./src/callback/startRotationCallback.d.ts";
|
15
|
+
export { default as AddModuleCallback } from "./src/callback/addModuleCallback.js";
|
16
|
+
export type * from "./src/callback/addModuleCallback.d.ts";
|
17
|
+
export { default as RemoveModuleCallback } from "./src/callback/removeModuleCallback.js";
|
18
|
+
export type * from "./src/callback/removeModuleCallback.d.ts";
|
11
19
|
export { default as VcsNavbar } from "./src/application/VcsNavbar.vue";
|
12
20
|
export type * from "./src/application/VcsNavbar.vue.d.ts";
|
13
21
|
export { default as VcsAppWrapper } from "./src/application/VcsAppWrapper.vue";
|
@@ -164,6 +172,8 @@ export { default as VcsListItemComponent } from "./src/components/lists/VcsListI
|
|
164
172
|
export type * from "./src/components/lists/VcsListItemComponent.vue.d.ts";
|
165
173
|
export { default as VcsTreeview } from "./src/components/lists/VcsTreeview.vue";
|
166
174
|
export type * from "./src/components/lists/VcsTreeview.vue.d.ts";
|
175
|
+
export { default as VcsTreeNode } from "./src/components/lists/VcsTreeNode.vue";
|
176
|
+
export type * from "./src/components/lists/VcsTreeNode.vue.d.ts";
|
167
177
|
export { default as VcsTreeviewTitle } from "./src/components/lists/VcsTreeviewTitle.vue";
|
168
178
|
export type * from "./src/components/lists/VcsTreeviewTitle.vue.d.ts";
|
169
179
|
export { default as VcsTreeviewSearchbar } from "./src/components/lists/VcsTreeviewSearchbar.vue";
|
@@ -230,6 +240,8 @@ export * from "./src/components/composables.js";
|
|
230
240
|
export type * from "./src/components/composables.d.ts";
|
231
241
|
export { default as Search } from "./src/search/search.js";
|
232
242
|
export type * from "./src/search/search.d.ts";
|
243
|
+
export { markText } from "./src/search/markText.js";
|
244
|
+
export type * from "./src/search/markText.d.ts";
|
233
245
|
export { default as ResultItemComponent } from "./src/search/ResultItem.vue";
|
234
246
|
export type * from "./src/search/ResultItem.vue.d.ts";
|
235
247
|
export { default as ResultsComponent } from "./src/search/ResultsComponent.vue";
|
@@ -286,7 +298,7 @@ export { createVcsThemes, createVcsVuetify, isDark, getDefaultPrimaryColor, getC
|
|
286
298
|
export type * from "./src/vuePlugins/vuetify.d.ts";
|
287
299
|
export { downloadURI, downloadBlob, downloadText, downloadCanvas } from "./src/downloadHelper.js";
|
288
300
|
export type * from "./src/downloadHelper.d.ts";
|
289
|
-
export { default as initApp, VcsUiAppConfigPattern, initAppFromModule, initAppFromAppConfig } from "./src/init.js";
|
301
|
+
export { default as initApp, VcsUiAppConfigPattern, initAppFromModule, initAppFromAppConfig, createModuleFromObjectOrUrl } from "./src/init.js";
|
290
302
|
export type * from "./src/init.d.ts";
|
291
303
|
export { vcsAppSymbol, pluginFactorySymbol, pluginBaseUrlSymbol, pluginModuleUrlSymbol, getPluginAssetUrl, isValidPackageName, loadPlugin, serializePlugin, deserializePlugin } from "./src/pluginHelper.js";
|
292
304
|
export type * from "./src/pluginHelper.d.ts";
|
package/index.js
CHANGED
@@ -52,6 +52,10 @@ export { default as ActivateLayersCallback } from './src/callback/activateLayers
|
|
52
52
|
export { default as DeactivateLayersCallback } from './src/callback/deactivateLayersCallback.js';
|
53
53
|
export { default as GoToViewpointCallback } from './src/callback/goToViewpointCallback.js';
|
54
54
|
export { default as ApplyLayerStyleCallback } from './src/callback/applyLayerStyleCallback.js';
|
55
|
+
export { default as StopRotationCallback } from './src/callback/stopRotationCallback.js';
|
56
|
+
export { default as StartRotationCallback } from './src/callback/startRotationCallback.js';
|
57
|
+
export { default as AddModuleCallback } from './src/callback/addModuleCallback.js';
|
58
|
+
export { default as RemoveModuleCallback } from './src/callback/removeModuleCallback.js';
|
55
59
|
export { default as VcsNavbar } from './src/application/VcsNavbar.vue';
|
56
60
|
export {
|
57
61
|
default as VcsApp,
|
@@ -210,6 +214,7 @@ export {
|
|
210
214
|
VcsUiAppConfigPattern,
|
211
215
|
initAppFromModule,
|
212
216
|
initAppFromAppConfig,
|
217
|
+
createModuleFromObjectOrUrl,
|
213
218
|
} from './src/init.js';
|
214
219
|
export {
|
215
220
|
vcsAppSymbol,
|
@@ -266,6 +271,7 @@ export {
|
|
266
271
|
export { default as VcsList } from './src/components/lists/VcsList.vue';
|
267
272
|
export { default as VcsListItemComponent } from './src/components/lists/VcsListItemComponent.vue';
|
268
273
|
export { default as VcsTreeview } from './src/components/lists/VcsTreeview.vue';
|
274
|
+
export { default as VcsTreeNode } from './src/components/lists/VcsTreeNode.vue';
|
269
275
|
export { default as VcsTreeviewTitle } from './src/components/lists/VcsTreeviewTitle.vue';
|
270
276
|
export { default as VcsTreeviewSearchbar } from './src/components/lists/VcsTreeviewSearchbar.vue';
|
271
277
|
export { default as VcsBadge } from './src/components/notification/VcsBadge.vue';
|
@@ -319,5 +325,6 @@ export * from './src/components/modelHelper.js';
|
|
319
325
|
export * from './src/components/composables.js';
|
320
326
|
export { LegendType, StyleRowType } from './src/legend/legendHelper.js';
|
321
327
|
export { default as Search } from './src/search/search.js';
|
328
|
+
export { markText } from './src/search/markText.js';
|
322
329
|
export { default as ResultItemComponent } from './src/search/ResultItem.vue';
|
323
330
|
export { default as ResultsComponent } from './src/search/ResultsComponent.vue';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vcmap/ui",
|
3
|
-
"version": "6.0.
|
3
|
+
"version": "6.1.0-rc.2",
|
4
4
|
"author": "Virtual City Systems",
|
5
5
|
"license": "MIT",
|
6
6
|
"scripts": {
|
@@ -57,7 +57,7 @@
|
|
57
57
|
},
|
58
58
|
"peerDependencies": {
|
59
59
|
"@vcmap-cesium/engine": "^11.0.2",
|
60
|
-
"@vcmap/core": "^6.0.
|
60
|
+
"@vcmap/core": "^6.1.0-rc.1",
|
61
61
|
"ol": "^10.2.1",
|
62
62
|
"vue": "~3.4.38",
|
63
63
|
"vuetify": "^3.7.3"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { AbstractInteraction, EventType } from '@vcmap/core';
|
2
|
+
|
3
|
+
export default class EventLogger extends AbstractInteraction {
|
4
|
+
constructor() {
|
5
|
+
super();
|
6
|
+
|
7
|
+
this.setActive(false);
|
8
|
+
}
|
9
|
+
|
10
|
+
pipe(event) {
|
11
|
+
console.log(event);
|
12
|
+
this.lastEvent = event;
|
13
|
+
return Promise.resolve(event);
|
14
|
+
}
|
15
|
+
|
16
|
+
off() {
|
17
|
+
this.setActive(false);
|
18
|
+
}
|
19
|
+
|
20
|
+
click() {
|
21
|
+
this.setActive(EventType.CLICK);
|
22
|
+
}
|
23
|
+
|
24
|
+
clickMove() {
|
25
|
+
this.setActive(EventType.CLICKMOVE);
|
26
|
+
}
|
27
|
+
|
28
|
+
drag() {
|
29
|
+
this.setActive(EventType.DRAGEVENTS);
|
30
|
+
}
|
31
|
+
|
32
|
+
all() {
|
33
|
+
this.setActive(EventType.ALL);
|
34
|
+
}
|
35
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import { CesiumMap, ObliqueMap, OpenlayersMap } from '@vcmap/core';
|
2
|
+
import { name, version, mapVersion } from '../package.json';
|
3
|
+
import EventLogger from './eventLogger.js';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @typedef {Object} DevTools
|
7
|
+
* @property {() => import("@vcmap/core").VcsApp} getApp
|
8
|
+
* @property {() => import("@vcmap/core").CesiumMap | undefined} getCesiumMap
|
9
|
+
* @property {() => import("@vcmap/core").OpenlayersMap | undefined} getOpenlayersMap
|
10
|
+
* @property {() => import("@vcmap/core").ObliqueMap | undefined} getObliqueMap
|
11
|
+
* @property {EventLogger} eventLogger
|
12
|
+
*/
|
13
|
+
|
14
|
+
/**
|
15
|
+
* @param {DevTools} plugin
|
16
|
+
* @param {VcsUiApp} app
|
17
|
+
*/
|
18
|
+
function setup(plugin, app) {
|
19
|
+
plugin.getApp = () => {
|
20
|
+
return app;
|
21
|
+
};
|
22
|
+
|
23
|
+
plugin.getCesiumMap = () => {
|
24
|
+
return app.maps.getByType(CesiumMap.className)[0];
|
25
|
+
};
|
26
|
+
|
27
|
+
plugin.getOpenlayersMap = () => {
|
28
|
+
return app.maps.getByType(OpenlayersMap.className)[0];
|
29
|
+
};
|
30
|
+
|
31
|
+
plugin.getObliqueMap = () => {
|
32
|
+
return app.maps.getByType(ObliqueMap.className)[0];
|
33
|
+
};
|
34
|
+
|
35
|
+
plugin.eventLogger = new EventLogger();
|
36
|
+
app.maps.eventHandler.addPersistentInteraction(plugin.eventLogger);
|
37
|
+
}
|
38
|
+
|
39
|
+
export default function devTools() {
|
40
|
+
return {
|
41
|
+
name,
|
42
|
+
version,
|
43
|
+
mapVersion,
|
44
|
+
initialize(app) {
|
45
|
+
if (window.vcs.devTools) {
|
46
|
+
console.error(
|
47
|
+
'dev tool already loaded! something must have gone wrong somewhere',
|
48
|
+
);
|
49
|
+
}
|
50
|
+
window.vcs.devTools = this;
|
51
|
+
setup(this, app);
|
52
|
+
},
|
53
|
+
destroy() {
|
54
|
+
if (window.vcs.devTools === this) {
|
55
|
+
window.vcs.devTools = undefined;
|
56
|
+
}
|
57
|
+
},
|
58
|
+
};
|
59
|
+
}
|
@@ -121,6 +121,16 @@ export default class SearchImpl {
|
|
121
121
|
);
|
122
122
|
}
|
123
123
|
|
124
|
+
suggest(query) {
|
125
|
+
const lowerQuery = query.toLowerCase();
|
126
|
+
return Promise.resolve(
|
127
|
+
this.lines.filter((l) => {
|
128
|
+
const lowerLine = l.toLowerCase();
|
129
|
+
return lowerLine !== lowerQuery && lowerLine.startsWith(lowerQuery);
|
130
|
+
}),
|
131
|
+
);
|
132
|
+
}
|
133
|
+
|
124
134
|
// eslint-disable-next-line class-methods-use-this
|
125
135
|
abort() {}
|
126
136
|
|
@@ -174,6 +174,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
174
174
|
readonly name?: string | undefined;
|
175
175
|
readonly checkBoxText?: string | undefined;
|
176
176
|
readonly buttonTitle?: string | undefined;
|
177
|
+
readonly secondaryButtonTitle?: string | undefined;
|
178
|
+
readonly exitCallbackOptions?: readonly {
|
179
|
+
readonly type: string;
|
180
|
+
}[] | undefined;
|
181
|
+
readonly secondaryCallbackOptions?: readonly {
|
182
|
+
readonly type: string;
|
183
|
+
}[] | undefined;
|
177
184
|
readonly menuEntry?: boolean | undefined;
|
178
185
|
readonly acceptInput?: boolean | undefined;
|
179
186
|
readonly position?: {
|
@@ -246,6 +253,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
246
253
|
* - an optional flag whether to show the Locator in the map.
|
247
254
|
*/
|
248
255
|
readonly showLocator?: boolean | undefined;
|
256
|
+
/**
|
257
|
+
* - an optional flag to hide the Rotator in the map.
|
258
|
+
*/
|
259
|
+
readonly hideRotationButton?: boolean | undefined;
|
260
|
+
/**
|
261
|
+
* - an optional flag that describes the time per rotation in seconds.
|
262
|
+
*/
|
263
|
+
readonly timePerRotation?: number | undefined;
|
249
264
|
/**
|
250
265
|
* - can be used to hide the default Header of the map
|
251
266
|
*/
|
@@ -343,6 +358,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
343
358
|
* - open the legend window, if new layer has a config
|
344
359
|
*/
|
345
360
|
readonly openLegendOnAdd?: boolean | undefined;
|
361
|
+
/**
|
362
|
+
* - can be used to apply a scale factor the the overviewMap
|
363
|
+
*/
|
364
|
+
readonly overviewMapScaleFactor?: number | undefined;
|
346
365
|
};
|
347
366
|
showFooter: import("vue").ComputedRef<boolean>;
|
348
367
|
footerHeight: import("vue").ComputedRef<number>;
|
@@ -397,6 +416,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
397
416
|
name?: string | undefined;
|
398
417
|
checkBoxText?: string | undefined;
|
399
418
|
buttonTitle?: string | undefined;
|
419
|
+
secondaryButtonTitle?: string | undefined;
|
420
|
+
exitCallbackOptions?: readonly {
|
421
|
+
readonly type: string;
|
422
|
+
}[] | undefined;
|
423
|
+
secondaryCallbackOptions?: readonly {
|
424
|
+
readonly type: string;
|
425
|
+
}[] | undefined;
|
400
426
|
menuEntry?: boolean | undefined;
|
401
427
|
acceptInput?: boolean | undefined;
|
402
428
|
position: {
|
@@ -10,13 +10,14 @@
|
|
10
10
|
fluid
|
11
11
|
absolute
|
12
12
|
>
|
13
|
-
<template v-if="
|
13
|
+
<template v-if="smAndDown">
|
14
14
|
<img
|
15
15
|
v-if="mobileLogo"
|
16
16
|
:src="mobileLogo"
|
17
17
|
alt="Logo"
|
18
18
|
draggable="false"
|
19
19
|
class="mobile-logo"
|
20
|
+
:class="{ 'mobile-logo': sm }"
|
20
21
|
/>
|
21
22
|
</template>
|
22
23
|
<!--VcsButton
|
@@ -69,7 +70,6 @@
|
|
69
70
|
left: 1rem;
|
70
71
|
z-index: 1;
|
71
72
|
}
|
72
|
-
|
73
73
|
.mobile-attribution-btn {
|
74
74
|
position: fixed;
|
75
75
|
right: 2px;
|
@@ -111,10 +111,12 @@
|
|
111
111
|
setup() {
|
112
112
|
/** @type {import("../vcsUiApp.js").default} */
|
113
113
|
const app = inject('vcsApp');
|
114
|
-
const { xs } = useDisplay();
|
114
|
+
const { smAndDown, xs, sm } = useDisplay();
|
115
115
|
return {
|
116
116
|
config: app.uiConfig.config,
|
117
|
+
smAndDown,
|
117
118
|
xs,
|
119
|
+
sm,
|
118
120
|
mobileLogo: computed(
|
119
121
|
() =>
|
120
122
|
app.uiConfig.config.mobileLogo ??
|
@@ -94,6 +94,13 @@ declare const _default: import("vue").DefineComponent<{
|
|
94
94
|
readonly name?: string | undefined;
|
95
95
|
readonly checkBoxText?: string | undefined;
|
96
96
|
readonly buttonTitle?: string | undefined;
|
97
|
+
readonly secondaryButtonTitle?: string | undefined;
|
98
|
+
readonly exitCallbackOptions?: readonly {
|
99
|
+
readonly type: string;
|
100
|
+
}[] | undefined;
|
101
|
+
readonly secondaryCallbackOptions?: readonly {
|
102
|
+
readonly type: string;
|
103
|
+
}[] | undefined;
|
97
104
|
readonly menuEntry?: boolean | undefined;
|
98
105
|
readonly acceptInput?: boolean | undefined;
|
99
106
|
readonly position?: {
|
@@ -166,6 +173,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
166
173
|
* - an optional flag whether to show the Locator in the map.
|
167
174
|
*/
|
168
175
|
readonly showLocator?: boolean | undefined;
|
176
|
+
/**
|
177
|
+
* - an optional flag to hide the Rotator in the map.
|
178
|
+
*/
|
179
|
+
readonly hideRotationButton?: boolean | undefined;
|
180
|
+
/**
|
181
|
+
* - an optional flag that describes the time per rotation in seconds.
|
182
|
+
*/
|
183
|
+
readonly timePerRotation?: number | undefined;
|
169
184
|
/**
|
170
185
|
* - can be used to hide the default Header of the map
|
171
186
|
*/
|
@@ -263,8 +278,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
263
278
|
* - open the legend window, if new layer has a config
|
264
279
|
*/
|
265
280
|
readonly openLegendOnAdd?: boolean | undefined;
|
281
|
+
/**
|
282
|
+
* - can be used to apply a scale factor the the overviewMap
|
283
|
+
*/
|
284
|
+
readonly overviewMapScaleFactor?: number | undefined;
|
266
285
|
};
|
286
|
+
smAndDown: import("vue").Ref<boolean>;
|
267
287
|
xs: import("vue").Ref<boolean>;
|
288
|
+
sm: import("vue").Ref<boolean>;
|
268
289
|
mobileLogo: import("vue").ComputedRef<any>;
|
269
290
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
270
291
|
attributionAction: {
|
@@ -14,7 +14,7 @@
|
|
14
14
|
<div class="d-flex">
|
15
15
|
<VcsActionButtonList
|
16
16
|
:actions="mapActions"
|
17
|
-
:overflow-count="3"
|
17
|
+
:overflow-count="smAndDown ? 2 : 3"
|
18
18
|
:force-overflow="false"
|
19
19
|
button="VcsToolButton"
|
20
20
|
/>
|
@@ -29,7 +29,7 @@
|
|
29
29
|
/>
|
30
30
|
<VcsActionButtonList
|
31
31
|
:actions="contentActions"
|
32
|
-
:overflow-count="
|
32
|
+
:overflow-count="smAndDown ? 2 : 3"
|
33
33
|
:force-overflow="false"
|
34
34
|
button="VcsToolButton"
|
35
35
|
/>
|
@@ -41,8 +41,9 @@
|
|
41
41
|
/>
|
42
42
|
<VcsActionButtonList
|
43
43
|
:actions="toolActions"
|
44
|
+
:overflow-count="smAndDown ? 1 : 2"
|
44
45
|
:force-overflow="false"
|
45
|
-
v-if="
|
46
|
+
v-if="smAndUp"
|
46
47
|
button="VcsToolButton"
|
47
48
|
/>
|
48
49
|
</div>
|
@@ -50,7 +51,7 @@
|
|
50
51
|
</v-col>
|
51
52
|
<v-col class="d-flex justify-center flex-grow-2 mx-2">
|
52
53
|
<div class="d-flex align-center">
|
53
|
-
<template v-if="!
|
54
|
+
<template v-if="!smAndDown">
|
54
55
|
<img class="logo" :src="logo" draggable="false" alt="Logo" />
|
55
56
|
</template>
|
56
57
|
<div
|
@@ -63,10 +64,11 @@
|
|
63
64
|
</div>
|
64
65
|
</v-col>
|
65
66
|
<v-col class="align-content-end d-flex justify-end">
|
66
|
-
<v-toolbar-items v-if="
|
67
|
+
<v-toolbar-items v-if="smAndUp">
|
67
68
|
<div class="d-flex">
|
68
69
|
<VcsActionButtonList
|
69
70
|
:actions="projectActions"
|
71
|
+
:overflow-count="smAndDown ? 1 : 2"
|
70
72
|
:force-overflow="false"
|
71
73
|
button="VcsToolButton"
|
72
74
|
/>
|
@@ -206,7 +208,7 @@
|
|
206
208
|
destroySearchAction();
|
207
209
|
});
|
208
210
|
|
209
|
-
const { xs, mdAndUp } = useDisplay();
|
211
|
+
const { xs, mdAndUp, smAndDown, smAndUp } = useDisplay();
|
210
212
|
|
211
213
|
const density = computed(() => {
|
212
214
|
return xs.value ? 'comfortable' : 'compact';
|
@@ -228,8 +230,10 @@
|
|
228
230
|
config: app.uiConfig.config,
|
229
231
|
logo,
|
230
232
|
xs,
|
233
|
+
smAndDown,
|
231
234
|
density,
|
232
235
|
mdAndUp,
|
236
|
+
smAndUp,
|
233
237
|
toolbarHeight,
|
234
238
|
};
|
235
239
|
},
|
@@ -42,8 +42,10 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
42
42
|
config: any;
|
43
43
|
logo: import("vue").ComputedRef<any>;
|
44
44
|
xs: import("vue").Ref<boolean>;
|
45
|
+
smAndDown: import("vue").Ref<boolean>;
|
45
46
|
density: import("vue").ComputedRef<"compact" | "comfortable">;
|
46
47
|
mdAndUp: import("vue").Ref<boolean>;
|
48
|
+
smAndUp: import("vue").Ref<boolean>;
|
47
49
|
toolbarHeight: import("vue").ComputedRef<number>;
|
48
50
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
49
51
|
export default _default;
|
@@ -28,36 +28,34 @@
|
|
28
28
|
</v-card-text>
|
29
29
|
|
30
30
|
<v-card-actions>
|
31
|
-
<
|
32
|
-
<
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
31
|
+
<div class="d-flex gc-2 w-100 justify-end">
|
32
|
+
<VcsFormButton
|
33
|
+
v-if="
|
34
|
+
options.secondaryButtonTitle && options.secondaryCallbackOptions
|
35
|
+
"
|
36
|
+
@click="secondaryButtonClicked"
|
37
|
+
>
|
38
|
+
{{ $st(options.secondaryButtonTitle) }}
|
39
|
+
</VcsFormButton>
|
40
|
+
<VcsFormButton
|
41
|
+
color="primary"
|
42
|
+
variant="filled"
|
43
|
+
@click="exitScreen"
|
44
|
+
:disabled="options.acceptInput && !checkBox"
|
45
|
+
>{{
|
46
|
+
$st(options.buttonTitle || 'components.splashScreen.buttonTitle')
|
47
|
+
}}</VcsFormButton
|
48
|
+
>
|
49
|
+
</div>
|
46
50
|
</v-card-actions>
|
47
51
|
</v-card>
|
48
52
|
</v-dialog>
|
49
53
|
</template>
|
50
54
|
|
51
55
|
<script>
|
52
|
-
import {
|
53
|
-
|
54
|
-
|
55
|
-
VCardText,
|
56
|
-
VCardActions,
|
57
|
-
VRow,
|
58
|
-
VCol,
|
59
|
-
} from 'vuetify/components';
|
60
|
-
import { computed, ref } from 'vue';
|
56
|
+
import { VDialog, VCard, VCardText, VCardActions } from 'vuetify/components';
|
57
|
+
import { computed, ref, inject } from 'vue';
|
58
|
+
import { executeCallbacks } from '../callback/vcsCallback.js';
|
61
59
|
import VcsFormButton from '../components/buttons/VcsFormButton.vue';
|
62
60
|
import VcsCheckbox from '../components/form-inputs-controls/VcsCheckbox.vue';
|
63
61
|
import VcsMarkdown from '../components/form-output/VcsMarkdown.vue';
|
@@ -72,8 +70,6 @@
|
|
72
70
|
VCardActions,
|
73
71
|
VcsFormButton,
|
74
72
|
VcsCheckbox,
|
75
|
-
VRow,
|
76
|
-
VCol,
|
77
73
|
VcsMarkdown,
|
78
74
|
},
|
79
75
|
props: {
|
@@ -87,13 +83,23 @@
|
|
87
83
|
},
|
88
84
|
},
|
89
85
|
setup(props, { emit }) {
|
86
|
+
const app = inject('vcsApp');
|
90
87
|
const localValue = useProxiedAtomicModel(props, 'modelValue', emit);
|
91
88
|
|
92
89
|
const checkBox = ref(false);
|
93
|
-
|
90
|
+
function exitScreen() {
|
94
91
|
localValue.value = false;
|
95
92
|
checkBox.value = false;
|
96
|
-
|
93
|
+
if (Array.isArray(props.options.exitCallbackOptions)) {
|
94
|
+
executeCallbacks(app, props.options.exitCallbackOptions);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
function secondaryButtonClicked() {
|
99
|
+
if (Array.isArray(props.options.secondaryCallbackOptions)) {
|
100
|
+
executeCallbacks(app, props.options.secondaryCallbackOptions);
|
101
|
+
}
|
102
|
+
}
|
97
103
|
|
98
104
|
const position = computed(() => ({
|
99
105
|
width: props.options.position?.width || 800,
|
@@ -105,6 +111,7 @@
|
|
105
111
|
return {
|
106
112
|
localValue,
|
107
113
|
exitScreen,
|
114
|
+
secondaryButtonClicked,
|
108
115
|
checkBox,
|
109
116
|
position,
|
110
117
|
};
|
@@ -10,6 +10,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
10
10
|
}, {
|
11
11
|
localValue: import("vue").Ref<any>;
|
12
12
|
exitScreen: () => void;
|
13
|
+
secondaryButtonClicked: () => void;
|
13
14
|
checkBox: import("vue").Ref<boolean>;
|
14
15
|
position: import("vue").ComputedRef<{
|
15
16
|
width: any;
|
@@ -0,0 +1,29 @@
|
|
1
|
+
export default AddModuleCallback;
|
2
|
+
export type AddModuleCallbackOptions = import("./vcsCallback.js").VcsCallbackOptions & {
|
3
|
+
module: import("@vcmap/core").VcsModuleConfig | string;
|
4
|
+
};
|
5
|
+
/**
|
6
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { module: import("@vcmap/core").VcsModuleConfig|string }} AddModuleCallbackOptions
|
7
|
+
* @property {import("@vcmap/core").VcsModuleConfig|string} module - config or url to a config file
|
8
|
+
*/
|
9
|
+
/**
|
10
|
+
* @class
|
11
|
+
* @extends {VcsCallback}
|
12
|
+
*/
|
13
|
+
declare class AddModuleCallback extends VcsCallback {
|
14
|
+
/**
|
15
|
+
* @param {AddModuleCallbackOptions} options
|
16
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
17
|
+
*/
|
18
|
+
constructor(options: AddModuleCallbackOptions, app: import("@src/vcsUiApp.js").default);
|
19
|
+
/**
|
20
|
+
* @type {import("@vcmap/core").VcsModuleConfig|string}
|
21
|
+
* @private
|
22
|
+
*/
|
23
|
+
private _module;
|
24
|
+
/**
|
25
|
+
* @returns {AddModuleCallbackOptions}
|
26
|
+
*/
|
27
|
+
toJSON(): AddModuleCallbackOptions;
|
28
|
+
}
|
29
|
+
import VcsCallback from './vcsCallback.js';
|
@@ -0,0 +1,61 @@
|
|
1
|
+
import { getLogger } from '@vcsuite/logger';
|
2
|
+
import { createModuleFromObjectOrUrl } from '../init.js';
|
3
|
+
import VcsCallback, { callbackClassRegistry } from './vcsCallback.js';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* @typedef {import("./vcsCallback.js").VcsCallbackOptions & { module: import("@vcmap/core").VcsModuleConfig|string }} AddModuleCallbackOptions
|
7
|
+
* @property {import("@vcmap/core").VcsModuleConfig|string} module - config or url to a config file
|
8
|
+
*/
|
9
|
+
|
10
|
+
/**
|
11
|
+
* @class
|
12
|
+
* @extends {VcsCallback}
|
13
|
+
*/
|
14
|
+
class AddModuleCallback extends VcsCallback {
|
15
|
+
/**
|
16
|
+
* @type {string}
|
17
|
+
*/
|
18
|
+
static get className() {
|
19
|
+
return 'AddModuleCallback';
|
20
|
+
}
|
21
|
+
|
22
|
+
/**
|
23
|
+
* @param {AddModuleCallbackOptions} options
|
24
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
25
|
+
*/
|
26
|
+
constructor(options, app) {
|
27
|
+
super(options, app);
|
28
|
+
/**
|
29
|
+
* @type {import("@vcmap/core").VcsModuleConfig|string}
|
30
|
+
* @private
|
31
|
+
*/
|
32
|
+
this._module = options.module;
|
33
|
+
}
|
34
|
+
|
35
|
+
callback() {
|
36
|
+
createModuleFromObjectOrUrl(this._module)
|
37
|
+
.then((module) => {
|
38
|
+
if (module) {
|
39
|
+
this._app.addModule(module);
|
40
|
+
}
|
41
|
+
})
|
42
|
+
.catch((e) => {
|
43
|
+
getLogger('addModuleCallback').error('Error adding module', e);
|
44
|
+
});
|
45
|
+
}
|
46
|
+
|
47
|
+
/**
|
48
|
+
* @returns {AddModuleCallbackOptions}
|
49
|
+
*/
|
50
|
+
toJSON() {
|
51
|
+
const config = super.toJSON();
|
52
|
+
config.module = this._module;
|
53
|
+
return config;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
export default AddModuleCallback;
|
58
|
+
callbackClassRegistry.registerClass(
|
59
|
+
AddModuleCallback.className,
|
60
|
+
AddModuleCallback,
|
61
|
+
);
|